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