LPCTSTR name;\r
};\r
\r
+struct KbdMacro\r
+{\r
+ int nCode;\r
+ WPARAM wParam;\r
+ LPARAM lParam;\r
+ BOOL bOriginal;\r
+};\r
+\r
+const DWORD HOOK_ALT_LATER = 0x10000;\r
+\r
class AFX_EXT_CLASS CXkeymacsDll \r
{\r
public:\r
static BOOL SaveConfig();\r
static BOOL LoadConfig();\r
static void SetM_xTip(const TCHAR *const szPath);\r
- static void SetHookAltRelease();\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 void SetAtIbeamCursorOnly(int nApplicationID, int nCommandType, int nKey, BOOL bAtIbeamCursorOnly);\r
static void SetApplicationName(int nApplicationID, CString szApplicationName);\r
static void ReleaseHooks();\r
- static void ReleaseKeyboardHook();\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 SetHooks();\r
- static void EnableKeyboardHook();\r
- static void SetKeyboardHook();\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 DefiningMacro(BOOL bDefiningMacro);\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 BOOL IsDown(BYTE bVk, BOOL bPhysicalKey = TRUE);\r
static void Kdu(BYTE bVk, DWORD n = 1, 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 void SetKeyboardHookFlag();\r
- static void SetKeyboardHookFlag(BOOL bFlag);\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
CXkeymacsDll();\r
virtual ~CXkeymacsDll();\r
private:\r
- static BOOL m_bHookAltRelease;\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 HHOOK m_hHookCallWndRet;\r
static LRESULT CALLBACK CallWndRetProc(int nCode, WPARAM wParam, LPARAM lParam);\r
static BOOL IsMatchWindowText(CString szWindowText);\r
- static BOOL m_bEnableKeyboardHook;\r
static HHOOK m_hHookCallWnd;\r
static HHOOK m_hHookGetMessage;\r
static HHOOK m_hHookShell;\r
- static BOOL DefiningMacro();\r
static BOOL IsControl();\r
static BOOL IsMeta();\r
static void SetModifierIcons();\r
static BOOL IsDepressedShiftKeyOnly(BYTE nKey);\r
static BOOL IsDepressedModifier(int Modifier(), BOOL bPhysicalKey = TRUE);\r
static BOOL IsValidKey(BYTE bVk);\r
- static CObList m_Macro;\r
- static BOOL m_bDefiningMacro;\r
- static void Original(int nCommandType, BYTE bVk, int nOriginal);\r
- static int Original(int nCommandType, BYTE bVk);\r
+ static CList<KbdMacro, 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 CONFIG m_Config;\r
};\r
\r
+extern UINT g_ImeManipulationMessage;\r
+\r
#endif // !defined(AFX_XKEYMACS_H__88552DEC_1233_4A0A_BE62_9EF7BC618EC6__INCLUDED_)\r