00001 00032 #ifndef LL_LLKEYBOARDMACOSX_H 00033 #define LL_LLKEYBOARDMACOSX_H 00034 00035 #include "llkeyboard.h" 00036 00037 class LLKeyboardMacOSX : public LLKeyboard 00038 { 00039 public: 00040 LLKeyboardMacOSX(); 00041 /*virtual*/ ~LLKeyboardMacOSX() {}; 00042 00043 /*virtual*/ BOOL handleKeyUp(const U16 key, MASK mask); 00044 /*virtual*/ BOOL handleKeyDown(const U16 key, MASK mask); 00045 /*virtual*/ void resetMaskKeys(); 00046 /*virtual*/ MASK currentMask(BOOL for_mouse_event); 00047 /*virtual*/ void scanKeyboard(); 00048 00049 protected: 00050 MASK updateModifiers(const U32 mask); 00051 void setModifierKeyLevel( KEY key, BOOL new_state ); 00052 BOOL translateNumpadKey( const U16 os_key, KEY *translated_key ); 00053 U16 inverseTranslateNumpadKey(const KEY translated_key); 00054 private: 00055 std::map<U16, KEY> mTranslateNumpadMap; // special map for translating OS keys to numpad keys 00056 std::map<KEY, U16> mInvTranslateNumpadMap; // inverse of the above 00057 }; 00058 00059 #endif