Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members

IEventReceiver.h

Go to the documentation of this file.
00001 // Copyright (C) 2002-2007 Nikolaus Gebhardt
00002 // This file is part of the "Irrlicht Engine".
00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
00004 
00005 #ifndef __I_EVENT_RECEIVER_H_INCLUDED__
00006 #define __I_EVENT_RECEIVER_H_INCLUDED__
00007 
00008 #include "ILogger.h"
00009 #include "position2d.h"
00010 #include "Keycodes.h"
00011 
00012 namespace irr
00013 {
00015         enum EEVENT_TYPE
00016         {
00018 
00022                 EET_GUI_EVENT = 0,
00023 
00025 
00030                 EET_MOUSE_INPUT_EVENT,
00031 
00033 
00035                 EET_KEY_INPUT_EVENT,
00036 
00038 
00040                 EET_LOG_TEXT_EVENT,
00041 
00044                 EET_USER_EVENT
00045         };
00046 
00048         enum EMOUSE_INPUT_EVENT
00049         {
00051                 EMIE_LMOUSE_PRESSED_DOWN = 0,
00052 
00054                 EMIE_RMOUSE_PRESSED_DOWN,
00055 
00057                 EMIE_MMOUSE_PRESSED_DOWN,
00058 
00060                 EMIE_LMOUSE_LEFT_UP,
00061 
00063                 EMIE_RMOUSE_LEFT_UP,
00064 
00066                 EMIE_MMOUSE_LEFT_UP,
00067 
00069                 EMIE_MOUSE_MOVED,
00070 
00073                 EMIE_MOUSE_WHEEL,
00074 
00076                 EMIE_COUNT
00077         };
00078 
00079         namespace gui
00080         {
00081 
00082                 class IGUIElement;
00083 
00085                 enum EGUI_EVENT_TYPE
00086                 {
00090                         EGET_ELEMENT_FOCUS_LOST = 0,
00091 
00094                         EGET_ELEMENT_FOCUSED,
00095 
00097                         EGET_ELEMENT_HOVERED,
00098 
00100                         EGET_ELEMENT_LEFT,
00101 
00105                         EGET_ELEMENT_CLOSED,
00106 
00108                         EGET_BUTTON_CLICKED,
00109 
00111                         EGET_SCROLL_BAR_CHANGED,
00112 
00114                         EGET_CHECKBOX_CHANGED,
00115 
00117                         EGET_LISTBOX_CHANGED, 
00118 
00120                         EGET_LISTBOX_SELECTED_AGAIN, 
00121 
00123                         EGET_FILE_SELECTED,
00124 
00126                         EGET_FILE_CHOOSE_DIALOG_CANCELLED,
00127 
00129                         EGET_MESSAGEBOX_YES,
00130 
00132                         EGET_MESSAGEBOX_NO,
00133 
00135                         EGET_MESSAGEBOX_OK,
00136 
00138                         EGET_MESSAGEBOX_CANCEL,
00139 
00141                         EGET_EDITBOX_ENTER,
00142 
00144                         EGET_TAB_CHANGED,
00145 
00147                         EGET_MENU_ITEM_SELECTED,
00148 
00150                         EGET_COMBO_BOX_CHANGED,
00151 
00153                         EGET_SPINBOX_CHANGED,
00154 
00156                         EGET_TABLE_CHANGED,
00157                         EGET_TABLE_HEADER_CHANGED,
00158                         EGET_TABLE_SELECTED_AGAIN
00159 
00160                 };
00161         } // end namespace gui
00162 
00163 
00165 struct SEvent
00166 {
00167         struct SGUIEvent
00168         {
00170                 gui::IGUIElement* Caller;
00171 
00173                 gui::IGUIElement* Element;
00174 
00176                 gui::EGUI_EVENT_TYPE EventType;
00177 
00178         };
00179 
00180         struct SMouseInput
00181         {
00183                 s32 X;
00184 
00186                 s32 Y;
00187 
00189 
00190                 f32 Wheel; 
00191 
00193                 EMOUSE_INPUT_EVENT Event;
00194         };
00195 
00196         struct SKeyInput
00197         {
00199                 wchar_t Char; 
00200 
00202                 EKEY_CODE Key; 
00203 
00205                 bool PressedDown; 
00206 
00208                 bool Shift; 
00209 
00211                 bool Control; 
00212         };
00213 
00214         struct SLogEvent
00215         {
00217                 const c8* Text;
00218 
00220                 ELOG_LEVEL Level;
00221         };
00222 
00223         struct SUserEvent
00224         {
00226                 s32 UserData1; 
00227 
00229                 s32 UserData2; 
00230 
00232                 f32 UserData3; 
00233         };
00234 
00235         EEVENT_TYPE EventType;
00236         union
00237         {
00238                 struct SGUIEvent GUIEvent;
00239                 struct SMouseInput MouseInput;
00240                 struct SKeyInput KeyInput;
00241                 struct SLogEvent LogEvent;
00242                 struct SUserEvent UserEvent;
00243         };
00244 
00245 };
00246 
00248 
00253 class IEventReceiver
00254 {
00255 public:
00256 
00257         virtual ~IEventReceiver() {}
00258 
00261         virtual bool OnEvent(const SEvent& event) = 0;
00262 };
00263 
00264 
00265 } // end namespace irr
00266 
00267 #endif
00268 
00269 
00270 
00271 

The NUSoftware Game Engine
The NUSoftware Game Engine Documentation © 2007-2008 by Tomer Nosrati. Generated on Sat Apr 26 16:52:34 2008 by Doxygen (1.5.5)