MyGUI  3.2.1
MyGUI_Window.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef __MYGUI_WINDOW_H__
8 #define __MYGUI_WINDOW_H__
9 
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_TextBox.h"
12 #include "MyGUI_EventPair.h"
14 
15 namespace MyGUI
16 {
17 
18  // OBSOLETE
20 
23 
28  public TextBox, // FIXME пока для кэпшена вместо виджета текст (Bug #190)
29  public MemberObsolete<Window>
30  {
32 
33  public:
34  Window();
35 
37  virtual void setVisible(bool _value);
38 
40  void setVisibleSmooth(bool _value);
42  void destroySmooth();
43 
45  void setAutoAlpha(bool _value);
47  bool getAutoAlpha() const;
48 
50  virtual void setCaption(const UString& _value);
52  virtual const UString& getCaption();
53 
55  TextBox* getCaptionWidget();
56 
58  void setMinSize(const IntSize& _value);
60  void setMinSize(int _width, int _height);
62  IntSize getMinSize();
63 
65  void setMaxSize(const IntSize& _value);
67  void setMaxSize(int _width, int _height);
69  IntSize getMaxSize();
70 
72  virtual void setPosition(const IntPoint& _value);
74  virtual void setSize(const IntSize& _value);
76  virtual void setCoord(const IntCoord& _value);
77 
79  void setPosition(int _left, int _top);
81  void setSize(int _width, int _height);
83  void setCoord(int _left, int _top, int _width, int _height);
84 
86  void setSnap(bool _value);
88  bool getSnap() const;
89 
91  const IntCoord& getActionScale() const;
92 
94  void setMovable(bool _value);
96  bool getMovable() const;
97 
98  /*events:*/
105 
111 
112  protected:
113  virtual void initialiseOverride();
114  virtual void shutdownOverride();
115 
116  void onMouseChangeRootFocus(bool _focus);
117  void onKeyChangeRootFocus(bool _focus);
118  void onMouseDrag(int _left, int _top, MouseButton _id);
119  void onMouseButtonPressed(int _left, int _top, MouseButton _id);
120  void onMouseButtonReleased(int _left, int _top, MouseButton _id);
121 
122  void notifyMousePressed(MyGUI::Widget* _sender, int _left, int _top, MouseButton _id);
123  void notifyMouseReleased(MyGUI::Widget* _sender, int _left, int _top, MouseButton _id);
124  void notifyPressedButtonEvent(MyGUI::Widget* _sender);
125  void notifyMouseDrag(MyGUI::Widget* _sender, int _left, int _top, MouseButton _id);
126  void notifyMouseWheel(MyGUI::Widget* _sender, int _rel);
127 
128  // просто обновляет альфу взависимости от флагов
129  void updateAlpha();
130 
131  void animateStop(Widget* _widget, ControllerItem* _controller);
132 
133  virtual void setPropertyOverride(const std::string& _key, const std::string& _value);
134 
135  private:
136  float getAlphaVisible() const;
137  void getSnappedCoord(IntCoord& _coord);
138  IntCoord _getActionScale(Widget* _widget);
139 
140  ControllerFadeAlpha* createControllerFadeAlpha(float _alpha, float _coef, bool _enable);
141 
142  private:
143  TextBox* mWidgetCaption;
144 
145  // размеры окна перед началом его изменений
146  IntCoord mPreActionCoord;
147 
148  // наши главные фокусы
149  bool mMouseRootFocus;
150  bool mKeyRootFocus;
151 
152  // автоматическое или ручное управление альфой
153  bool mIsAutoAlpha;
154 
155  // минимальные и максимальные размеры окна
156  IntRect mMinmax;
157 
158  bool mSnap; // прилеплять ли к краям
159 
160  IntCoord mCurrentActionScale;
161  bool mAnimateSmooth;
162 
163  Widget* mClient;
164  bool mMovable;
165  };
166 
167 } // namespace MyGUI
168 
169 #endif // __MYGUI_WINDOW_H__