aglEventHandler.h
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef EQ_AGLEVENTHANDLER_H
00019 #define EQ_AGLEVENTHANDLER_H
00020
00021 #include <eq/client/eventHandler.h>
00022 #include <eq/client/os.h>
00023
00024 namespace eq
00025 {
00026 class AGLWindowIF;
00027 class Node;
00028
00036 class AGLEventHandler : public EventHandler
00037 {
00038 public:
00040 AGLEventHandler( AGLWindowIF* window );
00041
00043 virtual ~AGLEventHandler();
00044
00051 static void initMagellan( Node* node );
00052
00057 static void exitMagellan( Node* node );
00058
00059 private:
00060 AGLWindowIF* const _window;
00061
00062 EventHandlerRef _eventHandler;
00063 EventHandlerRef _eventDispatcher;
00064
00065 static pascal OSStatus _dispatchEventUPP(
00066 EventHandlerCallRef nextHandler, EventRef event, void* userData );
00067
00068 static pascal OSStatus _handleEventUPP( EventHandlerCallRef nextHandler,
00069 EventRef event, void* userData);
00070 bool _handleEvent( EventRef event );
00071 bool _handleWindowEvent( EventRef event );
00072 bool _handleMouseEvent( EventRef event );
00073 bool _handleKeyEvent( EventRef event );
00074
00075 uint32_t _getButtonState();
00076 uint32_t _getButtonAction( EventRef event );
00077 uint32_t _getKey( EventRef event );
00078
00079 uint32_t _lastDX;
00080 uint32_t _lastDY;
00081 };
00082 }
00083
00084 #endif // EQ_AGLEVENTHANDLER_H
00085