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-2008 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 
00043 
00045                 EET_USER_EVENT
00046         };
00047 
00049         enum EMOUSE_INPUT_EVENT
00050         {
00052                 EMIE_LMOUSE_PRESSED_DOWN = 0,
00053 
00055                 EMIE_RMOUSE_PRESSED_DOWN,
00056 
00058                 EMIE_MMOUSE_PRESSED_DOWN,
00059 
00061                 EMIE_LMOUSE_LEFT_UP,
00062 
00064                 EMIE_RMOUSE_LEFT_UP,
00065 
00067                 EMIE_MMOUSE_LEFT_UP,
00068 
00070                 EMIE_MOUSE_MOVED,
00071 
00074                 EMIE_MOUSE_WHEEL,
00075 
00077                 EMIE_COUNT
00078         };
00079 
00080         namespace gui
00081         {
00082 
00083                 class IGUIElement;
00084 
00086                 enum EGUI_EVENT_TYPE
00087                 {
00089 
00091                         EGET_ELEMENT_FOCUS_LOST = 0,
00092 
00094 
00095                         EGET_ELEMENT_FOCUSED,
00096 
00098                         EGET_ELEMENT_HOVERED,
00099 
00101                         EGET_ELEMENT_LEFT,
00102 
00104 
00106                         EGET_ELEMENT_CLOSED,
00107 
00109                         EGET_BUTTON_CLICKED,
00110 
00112                         EGET_SCROLL_BAR_CHANGED,
00113 
00115                         EGET_CHECKBOX_CHANGED,
00116 
00118                         EGET_LISTBOX_CHANGED,
00119 
00121                         EGET_LISTBOX_SELECTED_AGAIN,
00122 
00124                         EGET_FILE_SELECTED,
00125 
00127                         EGET_FILE_CHOOSE_DIALOG_CANCELLED,
00128 
00130                         EGET_MESSAGEBOX_YES,
00131 
00133                         EGET_MESSAGEBOX_NO,
00134 
00136                         EGET_MESSAGEBOX_OK,
00137 
00139                         EGET_MESSAGEBOX_CANCEL,
00140 
00142                         EGET_EDITBOX_ENTER,
00143 
00145                         EGET_TAB_CHANGED,
00146 
00148                         EGET_MENU_ITEM_SELECTED,
00149 
00151                         EGET_COMBO_BOX_CHANGED,
00152 
00154                         EGET_SPINBOX_CHANGED
00155                 };
00156         } // end namespace gui
00157 
00158 
00160 struct SEvent
00161 {
00163         struct SGUIEvent
00164         {
00166                 gui::IGUIElement* Caller;
00167 
00169                 gui::IGUIElement* Element;
00170 
00172                 gui::EGUI_EVENT_TYPE EventType;
00173 
00174         };
00175 
00177         struct SMouseInput
00178         {
00180                 s32 X;
00181 
00183                 s32 Y;
00184 
00186 
00187                 f32 Wheel;
00188 
00190                 EMOUSE_INPUT_EVENT Event;
00191         };
00192 
00194         struct SKeyInput
00195         {
00197                 wchar_t Char;
00198 
00200                 EKEY_CODE Key;
00201 
00203                 bool PressedDown;
00204 
00206                 bool Shift;
00207 
00209                 bool Control;
00210         };
00211 
00213         struct SLogEvent
00214         {
00216                 const c8* Text;
00217 
00219                 ELOG_LEVEL Level;
00220         };
00221 
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 
00258         virtual ~IEventReceiver() {}
00259 
00261 
00262         virtual bool OnEvent(const SEvent& event) = 0;
00263 };
00264 
00265 
00266 } // end namespace irr
00267 
00268 #endif
00269 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2008 by Nikolaus Gebhardt. Generated on Sun Jun 1 07:59:07 2008 by Doxygen (1.4.2)