32 lines
808 B
C++
32 lines
808 B
C++
#pragma once
|
|
#include <vector>
|
|
#include <string>
|
|
#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<void, MultiStateImageButton*> onClick;
|
|
virtual void SetSelected(bool state);
|
|
private:
|
|
struct State {
|
|
int state;
|
|
Image* image;
|
|
};
|
|
std::vector<State> m_states;
|
|
int m_curState;
|
|
bool m_isSelected;
|
|
};
|
|
}
|
|
|