// // ToyTwoStateButton.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 25.06.2017. // // #ifndef ToyTwoStateButton_h #define ToyTwoStateButton_h #include "ToySimpleButton.h" class ToyTwoStateButton : public ToySimpleButton { public: static ToyTwoStateButton* create(const std::string& inactiveImagePath, const std::string& activeImagePath); bool init(const std::string& inactiveImagePath, const std::string& activeImagePath); // virtual void onEnter() override; bool isActive() { return _active; }; void setActive(bool active); void setOnStateChangedCallback(std::function onStateChangedCallback){ _onStateChangedCallback = onStateChangedCallback; }; bool switchStates(){ _active = !_active; return _active; }; void addChild(cocos2d::Node* child) override; protected: bool _active; std::function _onStateChangedCallback; std::string _inactiveBgImagePath; std::string _activeBgImagePath; cocos2d::Sprite* _activeSprite; cocos2d::Sprite* _inactiveSprite; void configureTouchListeners() override; void adjustTextures(); }; #endif /* ToyTwoStateButton_h */