00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef OIS_MacHelpers_H
00024 #define OIS_MacHelpers_H
00025
00026 #include "mac/MacPrereqs.h"
00027 #include "OISEvents.h"
00028 #include "OISKeyboard.h"
00029 #include "OISMouse.h"
00030
00031 #include <Carbon/Carbon.h>
00032
00033
00034
00035
00036
00037
00038 OSStatus KeyDownWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass );
00039
00040 OSStatus KeyUpWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass );
00041
00042 OSStatus KeyModWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass );
00043
00044 OSStatus MouseMoveWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass );
00045
00046 OSStatus MouseButtonWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass );
00047
00048 OSStatus MouseScrollWrapper( EventHandlerCallRef nextHandler, EventRef theEvent, void* callClass );
00049
00050
00051
00052 namespace OIS
00053 {
00054
00055
00056 enum Mac_EventType { MAC_KEYUP = 0,
00057 MAC_KEYDOWN = 1,
00058 MAC_KEYREPEAT,
00059 MAC_MOUSEDOWN,
00060 MAC_MOUSEUP,
00061 MAC_MOUSEMOVED,
00062 MAC_MOUSESCROLL};
00063 typedef enum Mac_EventType MacEventType;
00064
00065
00066
00067 typedef class Mac_KeyStackEvent
00068 {
00069 friend class MacKeyboard;
00070
00071
00072 private:
00073 Mac_KeyStackEvent( KeyEvent event, MacEventType type ) : Event(event), Type(type) {}
00074
00075 MacEventType Type;
00076 KeyEvent Event;
00077 } MacKeyStackEvent;
00078
00079
00080
00081
00082 typedef class Mac_MouseStackEvent
00083 {
00084 friend class MacMouse;
00085
00086 private:
00087 Mac_MouseStackEvent( MacEventType type, unsigned int time ) : Type(type), Time(time) {}
00088
00089 unsigned int Time;
00090 MacEventType Type;
00091 MouseButtonID button;
00092 Axis axis;
00093
00094 } MacMouseStackEvent;
00095
00096 }
00097
00098
00099 #endif