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/windowSystem.h>
00023
00024 namespace eq
00025 {
00026 class AGLWindowIF;
00027 class Node;
00028 class X11Connection;
00029
00033 class AGLEventHandler : public EventHandler
00034 {
00035 public:
00037 AGLEventHandler( AGLWindowIF* window );
00038
00040 virtual ~AGLEventHandler();
00041
00042 static void initMagellan( Node* node );
00043 static void exitMagellan( Node* node );
00044
00045 private:
00046 AGLWindowIF* const _window;
00047
00048 EventHandlerRef _eventHandler;
00049 EventHandlerRef _eventDispatcher;
00050
00051 static pascal OSStatus _dispatchEventUPP(
00052 EventHandlerCallRef nextHandler, EventRef event, void* userData );
00053
00054 static pascal OSStatus _handleEventUPP( EventHandlerCallRef nextHandler,
00055 EventRef event, void* userData);
00056 bool _handleEvent( EventRef event );
00057 bool _handleWindowEvent( EventRef event );
00058 bool _handleMouseEvent( EventRef event );
00059 bool _handleKeyEvent( EventRef event );
00060
00061 uint32_t _getButtonState();
00062 uint32_t _getButtonAction( EventRef event );
00063 uint32_t _getKey( EventRef event );
00064
00065 uint32_t _lastDX;
00066 uint32_t _lastDY;
00067 };
00068 }
00069
00070 #endif // EQ_AGLEVENTHANDLER_H
00071