#pragma once #include #include #include "gui_button.h" #include "gui_iselectable.h" namespace Gui { class MultiStateImageButton : public Button, public ISelectable { public: MultiStateImageButton(void); virtual void Draw(void); virtual ~MultiStateImageButton(void); virtual void GetSizeRequested(float size[2]); void AddState(int state, const char* filename); int GetState(void) { return m_states[m_curState].state; } void StateNext(void); void StatePrev(void); virtual void OnActivate(void); sigc::signal onClick; virtual void SetSelected(bool state); private: struct State { int state; Image* image; }; std::vector m_states; int m_curState; bool m_isSelected; }; }