00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __CSUTIL_EVOUTLET_H__
00021 #define __CSUTIL_EVOUTLET_H__
00022
00023 #include "iutil/event.h"
00024 struct iJoystickDriver;
00025 struct iKeyboardDriver;
00026 struct iMouseDriver;
00027 struct iObjectRegistry;
00028 class csEventQueue;
00029
00033 class csEventOutlet : public iEventOutlet
00034 {
00035 private:
00036
00037 unsigned EnableMask;
00038
00039 iEventPlug *Plug;
00040
00041 csEventQueue *Queue;
00042
00043 iObjectRegistry* Registry;
00044
00045 iKeyboardDriver* KeyboardDriver;
00046
00047 iMouseDriver* MouseDriver;
00048
00049 iJoystickDriver* JoystickDriver;
00050
00051 iKeyboardDriver* GetKeyboardDriver();
00052 iMouseDriver* GetMouseDriver();
00053 iJoystickDriver* GetJoystickDriver();
00054
00055 public:
00056 SCF_DECLARE_IBASE;
00057
00058
00059 csEventOutlet (iEventPlug*, csEventQueue*, iObjectRegistry*);
00060
00061 virtual ~csEventOutlet ();
00062
00063
00064 virtual iEvent *CreateEvent ();
00065
00066 virtual void Post (iEvent*);
00067
00068 virtual void Key (int iKey, int iChar, bool iDown);
00069
00070 virtual void Mouse (int iButton, bool iDown, int x, int y);
00071
00072 virtual void Joystick (int iNumber, int iButton, bool iDown, int x, int y);
00073
00074 virtual void Broadcast (int iCode, void *iInfo);
00075
00076 virtual void ImmediateBroadcast (int iCode, void *iInfo);
00077 };
00078
00079 #endif // __CSUTIL_EVOUTLET_H__