source:
orxonox.OLD/trunk/src/lib/gui/gl/glgui_button.h
@
10673
Last change on this file since 10673 was 9869, checked in by bensch, 18 years ago | |
---|---|
File size: 1.5 KB |
Rev | Line | |
---|---|---|
[4838] | 1 | /*! |
[5363] | 2 | * @file glgui_button.h |
3 | * The gl_BUTTON widget of th openglGUI | |
[5360] | 4 | * |
5 | */ | |
[1853] | 6 | |
[5363] | 7 | #ifndef _GLGUI_BUTTON_H |
8 | #define _GLGUI_BUTTON_H | |
[1853] | 9 | |
[5363] | 10 | #include "glgui_widget.h" |
[1853] | 11 | |
[7919] | 12 | #include "text.h" |
[7779] | 13 | |
14 | namespace OrxGui | |
[5363] | 15 | { |
[7779] | 16 | typedef enum |
17 | { | |
18 | Button_Active, | |
19 | Button_Inactive, | |
20 | Button_Pressed, | |
21 | Button_Released, | |
22 | Button_Activating, | |
23 | Button_Deactivating, | |
[5363] | 24 | |
[7779] | 25 | } ButtonState; |
[5363] | 26 | |
[7779] | 27 | //! This is part of the openglGUI class |
28 | /** | |
[7919] | 29 | * The Button is an Abstract class, that can be pushed to Toggle its state. |
[7779] | 30 | */ |
31 | class GLGuiButton : public GLGuiWidget | |
32 | { | |
[9869] | 33 | ObjectListDeclaration(GLGuiButton); |
[8035] | 34 | public: |
35 | GLGuiButton(const std::string& label); | |
36 | virtual ~GLGuiButton(); | |
[3543] | 37 | |
[8619] | 38 | const std::string& label() const { return this->_label.text(); }; |
[8035] | 39 | void setLabel(const std::string& label); |
[2036] | 40 | |
[8035] | 41 | virtual void draw() const; |
[8717] | 42 | virtual bool processEvent(const Event& event); |
[7919] | 43 | |
[9406] | 44 | sigslot::signal0<> clicked; |
45 | sigslot::signal0<> released; | |
[1853] | 46 | |
[8717] | 47 | |
[8035] | 48 | protected: |
[8448] | 49 | virtual void updateFrontColor(); |
50 | ||
[8035] | 51 | virtual void clicking(const Vector2D& pos); |
[8717] | 52 | virtual void releasing(const Vector2D& pos, bool focused); |
[8115] | 53 | virtual void hiding(); |
54 | virtual void showing(); | |
[8035] | 55 | |
[8115] | 56 | /** @returns the Text. (the physical Text) */ |
57 | Text& labelText() { return this->_label; } | |
58 | /** @returns the constant Text. (the physical Text) */ | |
59 | const Text& labelText() const { return this->_label; } | |
60 | ||
[7919] | 61 | private: |
62 | void init(); | |
63 | ||
64 | ||
[8035] | 65 | private: |
[8115] | 66 | Text _label; |
[8035] | 67 | ButtonState state; |
[7779] | 68 | }; |
69 | } | |
[5360] | 70 | #endif /* _GLGUI__H */ |
Note: See TracBrowser
for help on using the repository browser.