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