Irrlicht 3D Engine
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
IEventReceiver.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2012 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_EVENT_RECEIVER_H_INCLUDED__
6 #define __I_EVENT_RECEIVER_H_INCLUDED__
7 
8 #include "ILogger.h"
9 #include "Keycodes.h"
10 #include "irrString.h"
11 
12 namespace irr
13 {
16  {
18 
23 
25 
31 
33 
36 
38 
46 
48 
51 
53 
66 
69  EGUIET_FORCE_32_BIT = 0x7fffffff
70 
71  };
72 
75  {
78 
81 
84 
87 
90 
93 
96 
100 
104 
108 
112 
116 
120 
124 
127  };
128 
131  {
132  EMBSM_LEFT = 0x01,
133  EMBSM_RIGHT = 0x02,
134  EMBSM_MIDDLE = 0x04,
135 
137  EMBSM_EXTRA1 = 0x08,
138 
140  EMBSM_EXTRA2 = 0x10,
141 
142  EMBSM_FORCE_32_BIT = 0x7fffffff
143  };
144 
145  namespace gui
146  {
147 
148  class IGUIElement;
149 
152  {
154 
157 
159 
161 
163 
165 
167 
169 
171 
174 
177 
180 
183 
185 
187 
189 
191 
194 
197 
200 
203 
206 
209 
212 
215 
218 
221 
224 
227 
230 
233 
238 
241 
244 
247 
250 
254 
257  };
258  } // end namespace gui
259 
260 
262 struct SEvent
263 {
265  struct SGUIEvent
266  {
269 
272 
275 
276  };
277 
279  struct SMouseInput
280  {
283 
286 
288 
290 
292  bool Shift:1;
293 
295  bool Control:1;
296 
301 
303  bool isLeftPressed() const { return 0 != ( ButtonStates & EMBSM_LEFT ); }
304 
306  bool isRightPressed() const { return 0 != ( ButtonStates & EMBSM_RIGHT ); }
307 
309  bool isMiddlePressed() const { return 0 != ( ButtonStates & EMBSM_MIDDLE ); }
310 
313  };
314 
316  struct SKeyInput
317  {
319  wchar_t Char;
320 
323 
325  bool PressedDown:1;
326 
328  bool Shift:1;
329 
331  bool Control:1;
332  };
333 
335 
343  {
344  enum
345  {
347 
348  AXIS_X = 0, // e.g. analog stick 1 left to right
349  AXIS_Y, // e.g. analog stick 1 top to bottom
350  AXIS_Z, // e.g. throttle, or analog 2 stick 2 left to right
351  AXIS_R, // e.g. rudder, or analog 2 stick 2 top to bottom
355  };
356 
360 
370 
377 
379 
382 
384  bool IsButtonPressed(u32 button) const
385  {
386  if(button >= (u32)NUMBER_OF_BUTTONS)
387  return false;
388 
389  return (ButtonStates & (1 << button)) ? true : false;
390  }
391  };
392 
393 
395  struct SLogEvent
396  {
398  const c8* Text;
399 
402  };
403 
405  struct SUserEvent
406  {
409 
412  };
413 
415  union
416  {
423  };
424 
425 };
426 
428 
434 {
435 public:
436 
438  virtual ~IEventReceiver() {}
439 
441 
446  virtual bool OnEvent(const SEvent& event) = 0;
447 };
448 
449 
452 {
454 
458 
461 
464 
466 
469 
471 
473  enum
474  {
477 
480 
483  } PovHat;
484 }; // struct SJoystickInfo
485 
486 
487 } // end namespace irr
488 
489 #endif
490