// // TwoStateButton.h // SteveMaggieCpp // // Created by Katarzyna Kalinowska-Górska on 25.06.2017. // // #ifndef TwoStateButton_h #define TwoStateButton_h #include "SimpleButton.h" class TwoStateButton : public SimpleButton { public: static TwoStateButton* 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 /* TwoStateButton_h */