// // CustomLayerView.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 19.05.2017. // // #ifndef CustomLayerView_h #define CustomLayerView_h #include "ScenarioObject.h" #include "LayoutParser.h" #include "ActionSequenceHandler.h" class CustomLayerView : public cocos2d::Layer, public LayoutViewInterface, public ScenarioObject { public: static CustomLayerView* create(std::string layoutFilePath, std::string scenarioFilePath = ""); virtual bool init(std::string layoutFilePath, std::string scenarioFilePath = ""); virtual ~CustomLayerView(); virtual void onEnter() override; virtual void onExit() override; virtual void loadLayout(bool forceLoad); virtual void layoutLoaded(); virtual void resetActionSequence(); virtual bool touchHandlerForWidget(std::string objectName, cocos2d::ui::Widget::TouchEventType touchEventType) override; virtual void setWidgetTouchEventCallback(std::function widgetTouchEventCallback); //LayoutViewInterface virtual void addLayer(cocos2d::Layer* layer) override; virtual void addObject(std::string objectName, cocos2d::Node* object) override; virtual void addScenarioObject(std::string objectName, ScenarioObject* object) override; //ScenarioObject - for ActionSequenceHandler virtual ScenarioObject* getScenarioObjectByName(std::string name) override; protected: std::string _layoutFilePath; ActionSequenceHandler* _actionSequenceHandler; bool _layoutLoaded; std::vector _layers; std::map _objects; std::map _scenarioObjects; bool _loadFromAssets; std::function _widgetTouchEventCallback; }; #endif /* CustomLayerView_h */