OSDN Git Service

Rewrite code handling the keyboard macro.
[xkeymacs/xkeymacs.git] / xkeymacsdll / xkeymacsdll.h
index eed2513..bd3d7a3 100644 (file)
@@ -50,13 +50,22 @@ struct KeyName
        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
@@ -82,27 +91,31 @@ public:
        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
@@ -116,7 +129,6 @@ private:
        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
@@ -133,10 +145,11 @@ private:
        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