#pragma once\r
#endif // _MSC_VER > 1000\r
\r
-#include <list>\r
+#include "KbdMacro.h"\r
#include "ClipboardSnap.h"\r
-\r
-const int MAX_APP = 64;\r
-const int NONE = 0x0, SHIFT = 0x1, CONTROL = 0x2, META = 0x4, CONTROLX = 0x8,\r
- MAX_COMMAND_TYPE = NONE + SHIFT + CONTROL + META + CONTROLX + 1;\r
-const int /* WIN_SHIFT = 0x100, */ WIN_CTRL = 0x200, WIN_ALT = 0x400, WIN_WIN = 0x800;\r
-const int MAX_KEY = 256;\r
-const int MAX_FUNCTION = 64;\r
-const int MAX_DEFINITION = 256;\r
-\r
-const int WINDOW_NAME_LENGTH = 128;\r
-const int CLASS_NAME_LENGTH = 128;\r
-const int SUB_KEY_NAME_LENGTH = 128;\r
-const int WINDOW_TEXT_LENGTH = WINDOW_NAME_LENGTH * 2 + 3;\r
-\r
-enum ICON_TYPE { MAIN_ICON, CX_ICON, MX_ICON, META_ICON, SHIFT_ICON, CTRL_ICON, ALT_ICON, MAX_ICON_TYPE };\r
-enum XKEYMACS_STATUS { STATUS_ENABLE, STATUS_DISABLE_TMP, STATUS_DISABLE_WOCQ, STATUS_DISABLE, MAX_STATUS };\r
-enum { OFF_ICON, ON_ICON };\r
-\r
-enum GOTO { GOTO_DO_NOTHING, GOTO_HOOK, GOTO_RECURSIVE, GOTO_HOOKX, GOTO_HOOK0_9, CONTINUE };\r
-enum SETTING_STYLE { SETTING_DEFAULT, SETTING_SPECIFIC, SETTING_DISABLE, SETTING_UNDEFINED };\r
-\r
+#include "defs.h"\r
#include "ipc.h"\r
-\r
-struct KeyBind\r
-{\r
- int nType;\r
- BYTE bVk;\r
- int nControlID;\r
-};\r
-\r
-struct KeyName\r
-{\r
- BYTE bVk;\r
- LPCTSTR name;\r
-};\r
-\r
-struct KbdMacro\r
-{\r
- int nCode;\r
- WPARAM wParam;\r
- LPARAM lParam;\r
- BOOL bOriginal;\r
-};\r
+#include <list>\r
\r
const DWORD HOOK_ALT_LATER = 0x10000;\r
\r
public:\r
static BOOL SaveConfig();\r
static BOOL LoadConfig();\r
- static void SetConfig(const CONFIG& config);\r
- static void SetM_xTip(LPCTSTR szPath);\r
- static BOOL Get326Compatible();\r
- static void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
- static unsigned int GetMaxKeyInterval(void);\r
- static void SetKeyboardSpeed(int nKeyboardSpeed);\r
- static int GetAccelerate(void);\r
- static void SetAccelerate(int nAccelerate);\r
- static void Clear(int nAppID);\r
- static BOOL IsKeyboardHook();\r
- static void ReleaseHooks();\r
- static void ReleaseKeyboardHook();\r
+ static void SetConfig(const Config& config);\r
static void SetHooks();\r
- static void SetKeyboardHook();\r
static void ResetHooks();\r
- static void AddKillRing(BOOL bNewData = TRUE);\r
- static void CallMacro();\r
- static void StartRecordMacro();\r
- static void EndRecordMacro();\r
- static void DepressKey(BYTE bVk, BOOL bOriginal = TRUE);\r
- static BOOL GetEnableCUA();\r
- static CClipboardSnap* GetKillRing(CClipboardSnap *pSnap, BOOL bForce = TRUE);\r
- static void IncreaseKillRingIndex(int nKillRing = 1);\r
- static UINT GetModifierState(BOOL bPhysicalKey = TRUE);\r
- static void SetModifierState(UINT before, UINT after);\r
+ static void ReleaseHooks();\r
+ static void ReleaseKeyboardHook();\r
+ static void SetHookStateDirect(bool enable);\r
+ static void ToggleHookState();\r
+ static bool GetHookState();\r
+ static void ShowHookState();\r
+ static void SetIMEState(bool on);\r
+ static void SetM_xTip(LPCTSTR szPath);\r
+ static void SendIconMessage(IconState *state, int num);\r
static BOOL IsDown(BYTE bVk, BOOL bPhysicalKey = TRUE);\r
static void Kdu(BYTE bVk, DWORD n = 1, BOOL bOriginal = TRUE);\r
+ static void DepressKey(BYTE bVk, BOOL bOriginal = TRUE);\r
static void ReleaseKey(BYTE bVk);\r
- static BOOL Is106Keyboard();\r
- static void ToggleKeyboardHookState();\r
- static void ShowKeyboardHookState();\r
- static BOOL SendIconMessage(ICONMSG *pMsg, DWORD num);\r
+ static UINT GetModifierState(BOOL bPhysicalKey = TRUE);\r
+ static void SetModifierState(UINT before, UINT after);\r
+ static void AddKillRing(BOOL bNewData = TRUE);\r
+ static CClipboardSnap* GetKillRing(CClipboardSnap *pSnap, BOOL bForce = TRUE);\r
+ static void IncreaseKillRingIndex(int nKillRing = 1);\r
+ static bool GetEnableCUA();\r
+ static bool Get326Compatible();\r
+ static bool Is106Keyboard();\r
+ static void SetKbMacro(KbdMacro* kbdMacro);\r
+ static SHORT ConvVkey(SHORT in, int mode);\r
+ static int GetAccelerate(void);\r
+ static void SetAccelerate(int nAccelerate);\r
+ static void SetKeyboardSpeed(int nKeyboardSpeed);\r
+ static unsigned int GetMaxKeyInterval(void);\r
+ static void SetCursorData(HCURSOR hEnable, HCURSOR hDisableTMP, HCURSOR hDisableWOCQ, HICON hDisable, BOOL bEnable);\r
\r
private:\r
- static bool m_bEnableKeyboardHook;\r
- static DWORD m_nHookAltRelease;\r
- static TCHAR m_M_xTip[128];\r
- static void InvokeM_x(LPCTSTR szPath);\r
- static BOOL UpdateKeyboardState(BYTE bVK, BYTE bState);\r
- static void LogCallWndProcMessage(WPARAM wParam, LPARAM lParam);\r
- static void DoSetCursor();\r
- static HCURSOR m_hCurrentCursor;\r
- static BOOL m_bCursor;\r
- static HCURSOR m_hCursor[MAX_STATUS];\r
- static int m_nKeyboardSpeed;\r
- static int m_nAccelerate;\r
- static HHOOK m_hHookCallWndRet;\r
- static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
- static BOOL IsMatchWindowText(CString szWindowText);\r
+ static Config m_Config;\r
+ static AppConfig* m_CurrentConfig;\r
+ static BYTE (*m_CmdID)[MAX_KEY];\r
+ static char (*m_FuncID)[MAX_KEY];\r
static HHOOK m_hHookCallWnd;\r
+ static HHOOK m_hHookCallWndRet;\r
static HHOOK m_hHookGetMessage;\r
static HHOOK m_hHookShell;\r
- static BOOL IsControl();\r
- static BOOL IsMeta();\r
- static void SetModifierIcons();\r
- static void DoKeybd_event(BYTE bVk, DWORD dwFlags);\r
- static LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);\r
+ static bool m_bEnableKeyboardHook;\r
+ static void SetKeyboardHook(DWORD threadId = 0);\r
+ static bool m_bHook;\r
+ static void SetHookState(bool enable);\r
+ static DWORD m_nHookAltRelease;\r
static LRESULT CALLBACK CallWndProc(int nCode, WPARAM wParam, LPARAM lParam);\r
+ static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
static LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam);\r
static LRESULT CALLBACK ShellProc(int nCode, WPARAM wParam, LPARAM lParam);\r
- static int GetAppID(LPCSTR szName, int fallback);\r
- static KeyBind ParseKey(LPCTSTR& def);\r
- static BYTE a2v(TCHAR nAscii);\r
- static BOOL IsShift(TCHAR nAscii);\r
- static void CallFunction(int nFuncID);\r
- static int IsPassThrough(BYTE nKey);\r
+ static void InitKeyboardProc();\r
+ static AppConfig* GetAppConfig(LPCTSTR szName, AppConfig* fallback);\r
+ static BOOL m_bRightShift;\r
+ static BOOL m_bRightControl;\r
+ static BOOL m_bRightAlt;\r
+ static LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);\r
static void CancelMarkWithShift(BYTE nKey, bool bRelease);\r
- static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);\r
- static BOOL IsValidKey(BYTE bVk);\r
- static std::list<KbdMacro> m_Macro;\r
- static BOOL m_bRecordingMacro;\r
- static BOOL m_bDown[MAX_KEY];\r
+ static int IsPassThrough(BYTE nKey);\r
+ static void InvokeM_x(LPCTSTR szPath);\r
+ static TCHAR m_M_xTip[128];\r
+ static void SetModifierIcons();\r
+ static void DoKeybd_event(BYTE bVk, DWORD dwFlags);\r
static void SetOriginal(UINT nType, BYTE bVk);\r
- static int CheckOriginal(UINT nType, BYTE bVk);\r
- static void InitKeyboardProc(BOOL bImeComposition);\r
- static int m_nAppID;\r
static BYTE m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];\r
- static int m_nKillRing;\r
+ static int CheckOriginal(UINT nType, BYTE bVk);\r
+ static BOOL UpdateKeyboardState(BYTE bVK, BYTE bState);\r
+ static BOOL IsControl();\r
+ static BOOL IsMeta();\r
+ static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);\r
static CList<CClipboardSnap *, CClipboardSnap *> m_oKillRing;\r
- static BOOL m_bHook;\r
- static BOOL m_bRightShift;\r
- static BOOL m_bRightAlt;\r
- static BOOL m_bRightControl;\r
- static CONFIG m_Config;\r
+ static int m_nKillRing;\r
+ static KbdMacro* m_kbdMacro;\r
+ static void CallFunction(int id);\r
+ static int m_nAccelerate;\r
+ static int m_nKeyboardSpeed;\r
+ static HCURSOR m_hCurrentCursor;\r
+ static BOOL m_bCursor;\r
+ static HCURSOR m_hCursor[MAX_STATUS];\r
+ static void DoSetCursor();\r
};\r
\r
#endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r