llkeyboardwin32.h

Go to the documentation of this file.
00001 
00032 #ifndef LL_LLKEYBOARDWIN32_H
00033 #define LL_LLKEYBOARDWIN32_H
00034 
00035 #include "llkeyboard.h"
00036 
00037 // this mask distinguishes extended keys, which include non-numpad arrow keys 
00038 // (and, curiously, the num lock and numpad '/')
00039 const MASK MASK_EXTENDED =  0x0100;
00040 
00041 class LLKeyboardWin32 : public LLKeyboard
00042 {
00043 public:
00044         LLKeyboardWin32();
00045         /*virtual*/ ~LLKeyboardWin32() {};
00046 
00047         /*virtual*/ BOOL        handleKeyUp(const U16 key, MASK mask);
00048         /*virtual*/ BOOL        handleKeyDown(const U16 key, MASK mask);
00049         /*virtual*/ void        resetMaskKeys();
00050         /*virtual*/ MASK        currentMask(BOOL for_mouse_event);
00051         /*virtual*/ void        scanKeyboard();
00052         BOOL                            translateExtendedKey(const U16 os_key, const MASK mask, KEY *translated_key);
00053         U16                                     inverseTranslateExtendedKey(const KEY translated_key);
00054 
00055 protected:
00056         MASK    updateModifiers();
00057         //void  setModifierKeyLevel( KEY key, BOOL new_state );
00058 private:
00059         std::map<U16, KEY> mTranslateNumpadMap;
00060         std::map<KEY, U16> mInvTranslateNumpadMap;
00061 };
00062 
00063 #endif

Generated on Thu Jul 1 06:08:47 2010 for Second Life Viewer by  doxygen 1.4.7