MyGUI  3.0.1
MyGUI_WidgetEvent.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_WIDGET_EVENT_H__
24 #define __MYGUI_WIDGET_EVENT_H__
25 
26 #include "MyGUI_Prerequest.h"
27 #include "MyGUI_Macros.h"
28 #include "MyGUI_WidgetDefines.h"
29 #include "MyGUI_WidgetToolTip.h"
30 #include "MyGUI_InputDefine.h"
31 
32 namespace MyGUI
33 {
34 
35  // делегаты для событий виджета
48 
74  {
75  friend class InputManager;
76 
77  public:
78  virtual ~WidgetEvent() { }
79 
80  protected:
82  mWidgetEventSender(0),
83  mRootMouseActive(false),
84  mRootKeyActive(false)
85  {
86  }
87 
88  public:
89 
96 
103 
111 
119 
126 
135 
144 
150 
156 
163 
170 
178 
185 
193 
201 
208 
216 
224 
232 
233  protected:
234 
235  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
236  virtual void onMouseLostFocus(Widget* _new)
237  {
238  eventMouseLostFocus(mWidgetEventSender, _new);
239  }
240 
241  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
242  virtual void onMouseSetFocus(Widget* _old)
243  {
244  eventMouseSetFocus(mWidgetEventSender, _old);
245  }
246 
247  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
248  virtual void onMouseDrag(int _left, int _top)
249  {
250  eventMouseDrag(mWidgetEventSender, _left, _top);
251  }
252 
253  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
254  virtual void onMouseMove(int _left, int _top)
255  {
256  eventMouseMove(mWidgetEventSender, _left, _top);
257  }
258 
259  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
260  virtual void onMouseWheel(int _rel)
261  {
262  eventMouseWheel(mWidgetEventSender, _rel);
263  }
264 
265  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
266  virtual void onMouseButtonPressed(int _left, int _top, MouseButton _id)
267  {
268  eventMouseButtonPressed(mWidgetEventSender, _left, _top, _id);
269  }
270 
271  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
272  virtual void onMouseButtonReleased(int _left, int _top, MouseButton _id)
273  {
274  eventMouseButtonReleased(mWidgetEventSender, _left, _top, _id);
275  }
276 
277  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
278  virtual void onMouseButtonClick()
279  {
280  eventMouseButtonClick(mWidgetEventSender);
281  }
282 
283  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
284  virtual void onMouseButtonDoubleClick()
285  {
286  eventMouseButtonDoubleClick(mWidgetEventSender);
287  }
288 
289  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
290  virtual void onKeyLostFocus(Widget* _new)
291  {
292  eventKeyLostFocus(mWidgetEventSender, _new);
293  }
294 
295  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
296  virtual void onKeySetFocus(Widget* _old)
297  {
298  eventKeySetFocus(mWidgetEventSender, _old);
299  }
300 
301  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
302  virtual void onKeyButtonPressed(KeyCode _key, Char _char)
303  {
304  eventKeyButtonPressed(mWidgetEventSender, _key, _char);
305  }
306 
307  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
308  virtual void onKeyButtonReleased(KeyCode _key)
309  {
310  eventKeyButtonReleased(mWidgetEventSender, _key);
311  }
312 
313  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
314  virtual void onMouseChangeRootFocus(bool _focus)
315  {
316  eventRootMouseChangeFocus(mWidgetEventSender, _focus);
317  }
318 
319  // !!! ОБЯЗАТЕЛЬНО в родительском классе вызывать последним
320  virtual void onKeyChangeRootFocus(bool _focus)
321  {
322  eventRootKeyChangeFocus(mWidgetEventSender, _focus);
323  }
324 
325  // от чьего имени мы посылаем сообщения
327 
328  private:
329  bool mRootMouseActive;
330  bool mRootKeyActive;
331  };
332 
333 } // namespace MyGUI
334 
335 #endif // __MYGUI_WIDGET_EVENT_H__