MyGUI  3.0.1
MyGUI_Button.h
Go to the documentation of this file.
1 
7 /*
8  This file is part of MyGUI.
9 
10  MyGUI is free software: you can redistribute it and/or modify
11  it under the terms of the GNU Lesser General Public License as published by
12  the Free Software Foundation, either version 3 of the License, or
13  (at your option) any later version.
14 
15  MyGUI is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU Lesser General Public License for more details.
19 
20  You should have received a copy of the GNU Lesser General Public License
21  along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
22 */
23 #ifndef __MYGUI_BUTTON_H__
24 #define __MYGUI_BUTTON_H__
25 
26 #include "MyGUI_Prerequest.h"
27 #include "MyGUI_StaticText.h"
28 
29 namespace MyGUI
30 {
31 
33  public StaticText
34  {
36 
37  public:
38  Button();
39 
41  void setButtonPressed(bool _value) { setStateCheck(_value); }
43  bool getButtonPressed() { return getStateCheck(); }
44 
46  void setStateCheck(bool _value);
47 
49  bool getStateCheck() { return mIsStateCheck; }
50 
52  void setImageIndex(size_t _value);
54  size_t getImageIndex();
55 
60  void setModeImage(bool _value);
62  bool getModeImage() { return mModeImage; }
63 
65  StaticImage* getStaticImage() { return mImage; }
66 
68  virtual void setProperty(const std::string& _key, const std::string& _value);
69 
70  /*internal:*/
71  virtual void _initialise(WidgetStyle _style, const IntCoord& _coord, Align _align, ResourceSkin* _info, Widget* _parent, ICroppedRectangle * _croppedParent, IWidgetCreator * _creator, const std::string& _name);
72 
73  void _setMouseFocus(bool _focus);
74 
75  protected:
76  virtual ~Button();
77 
78  virtual void baseChangeWidgetSkin(ResourceSkin* _info);
79 
80  virtual void onMouseLostFocus(Widget* _new);
81  virtual void onMouseSetFocus(Widget* _old);
82  virtual void onMouseButtonPressed(int _left, int _top, MouseButton _id);
83  virtual void onMouseButtonReleased(int _left, int _top, MouseButton _id);
84 
85  virtual void baseUpdateEnable();
86 
87  bool _setState(const std::string& _value);
88  void setImageResource(const std::string& _name);
89 
90  private:
91  void updateButtonState();
92 
93  void shutdownWidgetSkin();
94  void initialiseWidgetSkin(ResourceSkin* _info);
95 
96  private:
97  // нажата ли кнопка
98  bool mIsMousePressed;
99  // в фокусе ли кнопка
100  bool mIsMouseFocus;
101  // статус кнопки нажата или нет
102  bool mIsStateCheck;
103 
104  StaticImage* mImage;
105  bool mModeImage;
106 
107  };
108 
109 } // namespace MyGUI
110 
111 #endif // __MYGUI_BUTTON_H__