// // AniLayoutObject.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 16.05.2017. // // #ifndef AniLayoutObject_h #define AniLayoutObject_h #include "json/document.h" #include "ui/CocosGUI.h" #include "AniScenarioObject.h" #include "AniJSONParseUtils.h" class AniLayoutViewInterface; class AniLayoutObject : public AniScenarioObject { public: std::string className; std::string objectName; cocos2d::Point originalPosition; virtual ~AniLayoutObject(); virtual void loadPropertiesFromJSON(const rapidjson::Value& jsonValue, AniLayoutViewInterface* scene = NULL, const std::string resFolder = "", const std::string altResFolder = "") = 0; virtual void loadCommonPropertiesFromJSON(const rapidjson::Value& jsonValue, AniLayoutViewInterface* scene = NULL, const std::string resFolder = "", const std::string altResFolder = ""); virtual void prepareSize(const rapidjson::Value& jsonValue, float& width, float& height); virtual bool isWidget() { return false; }; // for widgets virtual void setOnTouchBeganCallback(std::function callback){}; virtual void setOnTouchEndedCallback(std::function callback){}; virtual void setOnTouchCancelledCallback(std::function callback){}; // AniScenarioObject virtual std::string getObjectName(){ return objectName; }; virtual std::string getClassName(){ return className; }; virtual std::string getPropertyAsString(std::string propertyName = ""){ if(propertyName == "objectName"){ return objectName; } return "NULL"; }; // virtual void animate(){ // if(_activationAnimation != nullptr){ // animate(_activationAnimation); // } // } protected: rapidjson::Value* _activationAnimation; }; #endif /* AniLayoutObject_h */