OSDN Git Service

Make all member functions of CXkeymacsDll static.
[xkeymacs/xkeymacs.git] / xkeymacsdll / xkeymacsdll.h
1 // xkeymacs.h: interface for the CXkeymacsDll class.\r
2 //\r
3 //////////////////////////////////////////////////////////////////////\r
4 \r
5 #if !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r
6 #define AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_\r
7 \r
8 #if _MSC_VER > 1000\r
9 #pragma once\r
10 #endif // _MSC_VER > 1000\r
11 \r
12 #include "ClipboardSnap.h"\r
13 \r
14 enum { MAX_APP = 64 };\r
15 enum { NONE = 0x0, SHIFT = 0x1, CONTROL = 0x2, META = 0x4, CONTROLX = 0x8,\r
16            MAX_COMMAND_TYPE = NONE + SHIFT + CONTROL + META + CONTROLX + 1 };\r
17 enum { /* WIN_SHIFT = 0x100, */ WIN_CTRL = 0x200, WIN_ALT = 0x400, WIN_WIN = 0x800 };\r
18 enum { MAX_KEY = 256 };\r
19 enum { MAX_FUNCTION = 64 };\r
20 enum { MAX_DEFINITION = 256 };\r
21 \r
22 enum { WINDOW_NAME_LENGTH       = 128 };\r
23 enum { CLASS_NAME_LENGTH        = 128 };\r
24 enum { SUB_KEY_NAME_LENGTH      = 128 };\r
25 enum { WINDOW_TEXT_LENGTH   = 128 + 128 + 3};\r
26 \r
27 enum ICON_TYPE { MAIN_ICON, CX_ICON, MX_ICON, META_ICON, SHIFT_ICON, CTRL_ICON, ALT_ICON, MAX_ICON_TYPE };\r
28 enum XKEYMACS_STATUS { STATUS_ENABLE, STATUS_DISABLE_TMP, STATUS_DISABLE_WOCQ, STATUS_DISABLE, MAX_STATUS };\r
29 enum { ON_ICON, OFF_ICON };     // alias of status\r
30 \r
31 enum GOTO { GOTO_DO_NOTHING, GOTO_HOOK, GOTO_RECURSIVE, GOTO_HOOKX, GOTO_HOOK0_9, CONTINUE };\r
32 enum SETTING_STYLE { SETTING_DEFAULT, SETTING_SPECIFIC, SETTING_DISABLE, SETTING_UNDEFINED };\r
33 \r
34 enum { EXTENDED_KEY = 0x01000000 };\r
35 enum { REPEATED_KEY = 0x40000000 };\r
36 enum { BEING_RELEASED = 0x80000000 };\r
37 \r
38 struct KeyBind\r
39 {\r
40         int nCommandType;\r
41         BYTE bVk;\r
42         int nControlID;\r
43 };\r
44 \r
45 struct KeyName\r
46 {\r
47         BYTE bVk;\r
48         LPCTSTR name;\r
49 };\r
50 \r
51 class AFX_EXT_CLASS CXkeymacsDll  \r
52 {\r
53 public:\r
54         static void ModifyM_xTip(const TCHAR *const szPath);\r
55         static BOOL Get326Compatible();\r
56         static void Set326Compatible(int nApplicationID, BOOL b326Compatible);\r
57         static void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
58         static unsigned int GetMaxKeyInterval(void);\r
59         static void SetKeyboardSpeed(int nKeyboardSpeed);\r
60         static int GetAccelerate(void);\r
61         static void SetAccelerate(int nAccelerate);\r
62         static void SetWindowText(int nApplicationID, CString szWindowText);\r
63         static void AddAllShell_NotifyIcon();\r
64         static void DeleteAllShell_NotifyIcon();\r
65         static void SetKillRingMax(int nApplicationID, int nKillRingMax);\r
66         static void EnableShell_NotifyIcon(ICON_TYPE icon, BOOL bEnable);\r
67         static void SetNotifyIconData(ICON_TYPE icon, NOTIFYICONDATA stNtfyIcon, HICON hEnable, HICON hDisableTMP, HICON hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
68         static void SetNotifyIconData(ICON_TYPE icon, NOTIFYICONDATA stNtfyIcon, HICON hOn, HICON hOff, BOOL bEnable);\r
69         static void Clear(int nApplicationID);\r
70         static BOOL IsKeyboardHook();\r
71         static void SetCommandID(int nApplicationID, int nCommandType, int nKey, int nCommandID);\r
72         static void SetAtIbeamCursorOnly(int nApplicationID, int nCommandType, int nKey, BOOL bAtIbeamCursorOnly);\r
73         static void SetApplicationName(int nApplicationID, CString szApplicationName);\r
74         static void ReleaseHooks();\r
75         static void ReleaseKeyboardHook();\r
76         static void SetEnableCUA(int nApplicationID, BOOL bEnableCUA);\r
77         static void SetIgnoreUndefinedC_x(int nApplicationID, BOOL bIgnoreUndefinedC_x);\r
78         static void SetIgnoreUndefinedMetaCtrl(int nApplicationID, BOOL bIgnoreUndefinedMetaCtrl);\r
79         static void SetHooks();\r
80         static void SetKeyboardHook();\r
81         static void SetSettingStyle(int nApplicationID, int nSettingStyle);\r
82         static void SetUseDialogSetting(int nApplicationID, BOOL bUseDialogSetting);\r
83         static void AddKillRing(BOOL bNewData = TRUE);\r
84         static void CallMacro();\r
85         static void ClearFunctionDefinition();\r
86         static void DefiningMacro(BOOL bDefiningMacro);\r
87         static void DepressKey(BYTE bVk, BOOL bOriginal = TRUE);\r
88         static BOOL GetEnableCUA();\r
89         static CClipboardSnap* GetKillRing(CClipboardSnap *pSnap, BOOL bForce = TRUE);\r
90         static void IncreaseKillRingIndex(int nKillRing = 1);\r
91         static BOOL IsDown(BYTE bVk, BOOL bPhysicalKey = TRUE);\r
92         static void Kdu(BYTE bVk, DWORD n = 1, BOOL bOriginal = TRUE);\r
93         static int ModifyShell_NotifyIcon(ICON_TYPE icon, BOOL bNewStatus, BOOL bForce = TRUE);\r
94         static void ReleaseKey(BYTE bVk);\r
95         static void SetFunctionDefinition(int nFunctionID, CString szDefinition);\r
96         static void SetFunctionKey(int nFunctionID, int nApplicationID, int nCommandType, int nKey);\r
97         static void SetKeyboardHookFlag();\r
98         static void SetKeyboardHookFlag(BOOL bFlag);\r
99         static BOOL Is106Keyboard();\r
100         static void Set106Keyboard(BOOL b106Keyboard);\r
101         CXkeymacsDll();\r
102         virtual ~CXkeymacsDll();\r
103 private:\r
104         static void InvokeM_x(const TCHAR* const szPath);\r
105         static BOOL m_b326Compatible[MAX_APP];\r
106         static void LogCallWndProcMessage(WPARAM wParam, LPARAM lParam);\r
107         static void DoSetCursor();\r
108         static HCURSOR m_hCurrentCursor;\r
109         static BOOL m_bCursor;\r
110         static HCURSOR m_hCursor[MAX_STATUS];\r
111         static int m_nKeyboardSpeed;\r
112         static int m_nAccelerate;\r
113         static HHOOK m_hHookCallWndRet;\r
114         static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
115         static BOOL IsMatchWindowText(CString szWindowText);\r
116         static TCHAR m_szWindowText[MAX_APP][WINDOW_TEXT_LENGTH];\r
117         static BOOL m_bEnableKeyboardHook;\r
118         static HHOOK m_hHookCallWnd;\r
119         static HHOOK m_hHookGetMessage;\r
120         static HHOOK m_hHookShell;\r
121         static void AddShell_NotifyIcon(ICON_TYPE icon);\r
122         static void DeleteShell_NotifyIcon(ICON_TYPE icon);\r
123         static BOOL DefiningMacro();\r
124         static BOOL IsControl();\r
125         static BOOL IsMeta();\r
126         static void DoKeybd_event(BYTE bVk, DWORD dwFlags);\r
127         static LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);\r
128         static LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam);\r
129         static LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam);\r
130         static LRESULT CALLBACK ShellProc(int nCode, WPARAM wParam, LPARAM lParam);\r
131         static KeyBind ParseKey(const int nFunctionID, unsigned int &i);\r
132         static BYTE a2v(TCHAR nAscii);\r
133         static BOOL IsShift(TCHAR nAscii);\r
134         static TCHAR m_szFunctionDefinition[MAX_FUNCTION][MAX_DEFINITION];\r
135         static void CallFunction(int nFunctionID);\r
136         static int m_nFunctionID[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
137         static BOOL m_bEnableCUA[MAX_APP];\r
138         static TCHAR m_szOldApplicationName[MAX_PATH];\r
139         static TCHAR m_szApplicationName[MAX_PATH];\r
140         static int IsPassThrough(BYTE nKey);\r
141         static BOOL IsDepressedShiftKeyOnly(BYTE nKey);\r
142         static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);\r
143         static BOOL IsValidKey(BYTE bVk);\r
144         static CObList m_Macro;\r
145         static BOOL m_bDefiningMacro;\r
146         static void Original(int nCommandType, BYTE bVk, int nOriginal);\r
147         static int Original(int nCommandType, BYTE bVk);\r
148         static HICON m_hIcon[MAX_ICON_TYPE][MAX_STATUS];\r
149         static BOOL m_bUseDialogSetting[MAX_APP];\r
150         static void InitKeyboardProc(BOOL bImeComposition);\r
151         static BOOL m_bIgnoreUndefinedC_x[MAX_APP];\r
152         static BOOL m_bIgnoreUndefinedMetaCtrl[MAX_APP];\r
153         static int m_nSettingStyle[MAX_APP];\r
154         static int m_nApplicationID;\r
155         static int m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];\r
156         static int m_nKillRing;\r
157         static CList<CClipboardSnap *, CClipboardSnap *> m_oKillRing;\r
158         static int m_nKillRingMax[MAX_APP];\r
159         static int GetMickey(int nDifferential, int nThreshold1, int nThreshold2, int nAcceleration, int nSpeed);\r
160         static BOOL DoShell_NotifyIcon(ICON_TYPE icon, DWORD dwMessage);\r
161         static BOOL m_bIcon[MAX_ICON_TYPE];\r
162         static DWORD m_dwOldMessage[MAX_ICON_TYPE];\r
163         static NOTIFYICONDATA m_stNtfyIcon[MAX_ICON_TYPE];\r
164         static NOTIFYICONDATA m_stOldNtfyIcon[MAX_ICON_TYPE];\r
165         static BOOL m_bHook;\r
166         static BOOL m_bRightShift;\r
167         static BOOL m_bRightAlt;\r
168         static BOOL m_bRightControl;\r
169         static TCHAR m_szSpecialApp[MAX_APP][CLASS_NAME_LENGTH];\r
170         static int m_nCommandID[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
171         static BOOL m_bAtIbeamCursorOnly[MAX_APP][MAX_COMMAND_TYPE][MAX_KEY];\r
172         static BOOL m_b106Keyboard;\r
173 };\r
174 \r
175 #endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r