Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef EV_WIN32KEYBOARD_H
00022 #define EV_WIN32KEYBOARD_H
00023
00024 #include "ev_Keyboard.h"
00025 #include "ev_EditBits.h"
00026 #include "ut_iconv.h"
00027
00028 class AV_View;
00029
00030 class ABI_EXPORT ev_Win32Keyboard : public EV_Keyboard
00031 {
00032 public:
00033 ev_Win32Keyboard(EV_EditEventMapper * pEEM);
00034 virtual ~ev_Win32Keyboard();
00035
00036 void remapKeyboard(HKL hKeyboardLayout);
00037
00038 bool onKeyDown(AV_View * pView,
00039 HWND hWnd, UINT iMsg, WPARAM nVirtKey, LPARAM keyData);
00040
00041 bool onIMEChar(AV_View * pView,
00042 HWND hWnd, UINT iMsg, WPARAM nVirtKey, LPARAM keyData);
00043
00044 bool onChar(AV_View * pView,
00045 HWND hWnd, UINT iMsg, WPARAM nVirtKey, LPARAM keyData);
00046
00047 bool onUniChar(AV_View * pView,
00048 HWND hWnd, UINT iMsg, WPARAM nVirtKey, LPARAM keyData);
00049
00050 protected:
00051 EV_EditBits _getModifierState(void);
00052 void _emitChar(AV_View * pView,
00053 HWND hWnd, UINT iMsg, WPARAM nVirtKey, LPARAM keyData,
00054 UT_uint32 b, EV_EditModifierState ems);
00055 int _scanCodeToChars(UINT nVirtKey, UINT wScanCode,
00056 CONST PBYTE lpKeyState, LPWSTR pwszBuff, int cchBuff);
00057
00058 int (*m_pToUnicodeEx)(UINT wVirtKey, UINT wScanCode,
00059 CONST PBYTE lpKeyState, LPWSTR pwszBuff, int cchBuff,
00060 UINT wFlags, HKL dwhkl);
00061 HKL m_hKeyboardLayout;
00062 UT_iconv_t m_iconv;
00063 bool m_bIsUnicodeInput;
00064 bool m_bWasAnAbiCommand;
00065 };
00066
00067 #endif