4 // Graphical User Interface button class
14 //Apparently this approach doesn't work for inheritance... D'oh!
15 //class Element; // Forward declaration
17 class Button: public Element
20 Button(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0, Element * parent = NULL);
21 Button(uint32 x, uint32 y, uint32 w, uint32 h, SDL_Surface * upImg, Element * parent = NULL);
22 Button(uint32 x, uint32 y, SDL_Surface * bU, SDL_Surface * bH = NULL, SDL_Surface * bD = NULL, Element * parent = NULL);
23 Button(uint32 x, uint32 y, uint32 w, uint32 h, std::string s, Element * parent = NULL);
24 Button(uint32 x, uint32 y, std::string s, Element * parent = NULL);
26 virtual void HandleKey(SDLKey key);
27 virtual void HandleMouseMove(uint32 x, uint32 y);
28 virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown);
29 virtual void Draw(void);
30 virtual void Notify(Element *);
31 bool ButtonClicked(void);
32 void SaveStateVariables(void);
33 void CheckStateAndRedrawIfNeeded(void);
36 bool activated, clicked, inside;
37 SDL_Surface * buttonUp, * buttonDown, * buttonHover;
40 bool surfacesAreLocal;
41 bool activatedSave, clickedSave, insideSave;
44 #endif // __BUTTON_H__