MyGUI 3.2.2

- Main Page
- Related Pages
- Namespaces
- Data Structures
- Files
- Examples

- File List
- Globals

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"
13 #include "MyGUI_ControllerFadeAlpha.h"
14
15 namespace MyGUI
16 {
17
18 // OBSOLETE
19 typedef delegates::CMultiDelegate2<Widget*, const std::string&> EventHandle_WidgetString;
20
21 typedef delegates::CMultiDelegate2<Window*, const std::string&> EventHandle_WindowPtrCStringRef;
22 typedef delegates::CMultiDelegate1<Window*> EventHandle_WindowPtr;
23
27 class MYGUI_EXPORT Window :
28 public TextBox, // FIXME пока для кэпшена вместо виджета текст (Bug #190)
29 public MemberObsolete<Window>
30 {
31 MYGUI_RTTI_DERIVED( Window )
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:*/
104 EventPair<EventHandle_WidgetString, EventHandle_WindowPtrCStringRef> eventWindowButtonPressed;
105
110 EventPair<EventHandle_WidgetVoid, EventHandle_WindowPtr> eventWindowChangeCoord;
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_
MyGUI::types::TCoord< int >
MyGUI::Widget
Widget properties. Widget_skin_childs Skin childs. Widget widget description should be here...
Definition: MyGUI_Widget.h:29
MyGUI::types::TPoint< int >
MyGUI_Prerequest.h
MyGUI::EventHandle_WindowPtrCStringRef
delegates::CMultiDelegate2< Window *, const std::string & > EventHandle_WindowPtrCStringRef
Definition: MyGUI_Window.h:21
MyGUI::types::TSize< int >
MyGUI::MouseButton
Definition: MyGUI_MouseButton.h:15
MyGUI::EventHandle_WindowPtr
delegates::CMultiDelegate1< Window * > EventHandle_WindowPtr
Definition: MyGUI_Window.h:22
MyGUI
Definition: MyGUI_ActionController.h:14
MYGUI_RTTI_DERIVED
#define MYGUI_RTTI_DERIVED(DerivedType)
Definition: MyGUI_RTTI.h:65
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition: MyGUI_Platform.h:103
MyGUI::types::TRect< int >
MyGUI::EventPair
Definition: MyGUI_EventPair.h:16
MyGUI_ControllerFadeAlpha.h
MyGUI::delegates::CMultiDelegate2
Definition: MyGUI_Delegate.h:203
MyGUI::EventHandle_WidgetString
delegates::CMultiDelegate2< Widget *, const std::string & > EventHandle_WidgetString
Definition: MyGUI_Window.h:19
MyGUI::ControllerFadeAlpha
Definition: MyGUI_ControllerFadeAlpha.h:18
MyGUI::UString
A UTF-16 string with implicit conversion to/from std::string and std::wstring.
Definition: MyGUI_UString.h:168
MyGUI::ControllerItem
Definition: MyGUI_ControllerItem.h:25
MyGUI::TextBox
TextBox properties. TextBox_skin_childs Skin childs. TextBox widget description should be here...
Definition: MyGUI_TextBox.h:19
MyGUI::MemberObsolete
Definition: MyGUI_DeprecatedTypes.h:13
MyGUI_EventPair.h
MyGUI::Window
Window properties. Window_skin_childs Skin childs. Window widget description should be here...
Definition: MyGUI_Window.h:27
MyGUI::delegates::CMultiDelegate1
Definition: MyGUI_Delegate.h:203
MyGUI_TextBox.h