#pragma once\r
#endif // _MSC_VER > 1000\r
\r
-#include <list>\r
+#include "KbdMacro.h"\r
#include "ClipboardSnap.h"\r
-\r
-enum { MAX_APP = 64 };\r
-enum { NONE = 0x0, SHIFT = 0x1, CONTROL = 0x2, META = 0x4, CONTROLX = 0x8,\r
- MAX_COMMAND_TYPE = NONE + SHIFT + CONTROL + META + CONTROLX + 1 };\r
-enum { /* WIN_SHIFT = 0x100, */ WIN_CTRL = 0x200, WIN_ALT = 0x400, WIN_WIN = 0x800 };\r
-enum { MAX_KEY = 256 };\r
-enum { MAX_FUNCTION = 64 };\r
-enum { MAX_DEFINITION = 256 };\r
-\r
-enum { WINDOW_NAME_LENGTH = 128 };\r
-enum { CLASS_NAME_LENGTH = 128 };\r
-enum { SUB_KEY_NAME_LENGTH = 128 };\r
-enum { WINDOW_TEXT_LENGTH = 128 + 128 + 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 { ON_ICON, OFF_ICON }; // alias of status\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
-enum { EXTENDED_KEY = 0x01000000 };\r
-enum { REPEATED_KEY = 0x40000000 };\r
-enum { BEING_RELEASED = 0x80000000 };\r
-\r
+#include "defs.h"\r
#include "ipc.h"\r
-\r
-struct KeyBind\r
-{\r
- int nCommandType;\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 SetM_xTip(const TCHAR *const szPath);\r
- static BOOL Get326Compatible();\r
- static void Set326Compatible(int nApplicationID, BOOL b326Compatible);\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 SetWindowText(int nApplicationID, CString szWindowText);\r
- static void SetKillRingMax(int nApplicationID, int nKillRingMax);\r
- static void Clear(int nApplicationID);\r
- static BOOL IsKeyboardHook();\r
- static void SetCommandID(int nApplicationID, int nCommandType, int nKey, int nCommandID);\r
- static void SetApplicationName(int nApplicationID, CString szApplicationName);\r
- static void ReleaseHooks();\r
- static void SetEnableCUA(int nApplicationID, BOOL bEnableCUA);\r
- static void SetIgnoreUndefinedC_x(int nApplicationID, BOOL bIgnoreUndefinedC_x);\r
- static void SetIgnoreUndefinedMetaCtrl(int nApplicationID, BOOL bIgnoreUndefinedMetaCtrl);\r
+ static void SetConfig(const Config& config);\r
static void SetHooks();\r
static void ResetHooks();\r
- static void SetSettingStyle(int nApplicationID, int nSettingStyle);\r
- static void SetUseDialogSetting(int nApplicationID, BOOL bUseDialogSetting);\r
- static void AddKillRing(BOOL bNewData = TRUE);\r
- static void CallMacro();\r
- static void ClearFunctionDefinition();\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(const UINT before, const 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 void SetFunctionDefinition(int nFunctionID, CString szDefinition);\r
- static void SetFunctionKey(int nFunctionID, int nApplicationID, int nCommandType, int nKey);\r
- static BOOL Is106Keyboard();\r
- static void Set106Keyboard(BOOL b106Keyboard);\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 DWORD m_nHookAltRelease;\r
- static TCHAR m_M_xTip[128];\r
- static void InvokeM_x(const TCHAR* const 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(const LPCSTR szName, const 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 nFunctionID);\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 int IsPassThrough(BYTE nKey);\r
- static BOOL IsDepressedShiftKeyOnly(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 BYTE m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];\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 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 void SetOriginal(UINT nCommandType, BYTE bVk);\r
- static int CheckOriginal(UINT nCommandType, BYTE bVk);\r
- static void InitKeyboardProc(BOOL bImeComposition);\r
- static int m_nApplicationID;\r
- static int m_nOriginal[MAX_COMMAND_TYPE][MAX_KEY];\r
- static int m_nKillRing;\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
-extern UINT g_ImeManipulationMessage;\r
-\r
#endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r