1 #ifndef OIS_MacMouse_H 2 #define OIS_MacMouse_H 3 4 #include "OISMouse.h" 5 #include "mac/MacHelpers.h" 6 #include "mac/MacPrereqs.h" 7 8 #include <Carbon/Carbon.h> 9 10 namespace OIS 11 { 12 class MacMouse : public Mouse 13 { 14 public: 15 MacMouse( InputManager* creator, bool buffered ); 16 virtual ~MacMouse(); 17 18 /** @copydoc Object::setBuffered */ 19 virtual void setBuffered(bool buffered); 20 21 /** @copydoc Object::capture */ 22 virtual void capture(); 23 24 /** @copydoc Object::queryInterface */ queryInterface(Interface::IType type)25 virtual Interface* queryInterface(Interface::IType type) {return 0;} 26 27 /** @copydoc Object::_initialize */ 28 virtual void _initialize(); 29 30 public: 31 void _mouseCallback( EventRef theEvent ); 32 33 protected: 34 static OSStatus WindowFocusChanged(EventHandlerCallRef nextHandler, EventRef event, void* macMouse); 35 36 // "universal procedure pointers" - required reference for callbacks 37 EventHandlerUPP mouseUPP; 38 EventHandlerRef mouseEventRef; 39 40 EventHandlerUPP mWindowFocusListener; 41 EventHandlerRef mWindowFocusHandler; 42 43 bool mNeedsToRegainFocus; 44 bool mMouseWarped; 45 46 MouseState mTempState; 47 }; 48 } 49 50 51 #endif // OIS_MacMouse_H 52