diff options
| author | trustable-code <krauter.simon@arcor.de> | 2019-09-02 23:02:14 +0200 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2019-09-02 23:02:14 +0200 |
| commit | 77c16099f12e76ef7dddaf4270e0ec5c177c429f (patch) | |
| tree | 85b04a5607ed5790126bbd36734658e87285d854 /src | |
| parent | f4d06121e7de9092727af0cc7c7a588b45e97e39 (diff) | |
| download | NiGui-77c16099f12e76ef7dddaf4270e0ec5c177c429f.tar.gz NiGui-77c16099f12e76ef7dddaf4270e0ec5c177c429f.zip | |
Implement more keys #55
Diffstat (limited to 'src')
| -rwxr-xr-x | src/nigui.nim | 50 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 63 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_impl.nim | 11 | ||||
| -rwxr-xr-x | src/nigui/private/windows/windows.nim | 7 |
4 files changed, 126 insertions, 5 deletions
diff --git a/src/nigui.nim b/src/nigui.nim index 018513d..6107d81 100755 --- a/src/nigui.nim +++ b/src/nigui.nim @@ -72,9 +72,10 @@ type Key_Backspace = 8 Key_Tab = 9 Key_Return = 13 + Key_Pause = 19 Key_Escape = 27 Key_Space = 32 - Key_Asterisk = 42 + Key_NumberSign = 35 Key_Plus = 43 Key_Comma = 44 Key_Minus = 45 @@ -89,6 +90,7 @@ type Key_Number7 = 55 Key_Number8 = 56 Key_Number9 = 57 + Key_Less = 60 Key_A = 65 Key_B = 66 Key_C = 67 @@ -115,7 +117,52 @@ type Key_X = 88 Key_Y = 89 Key_Z = 90 + Key_SuperL = 91 + Key_SuperR = 92 + Key_ContextMenu = 93 Key_Circumflex = 94 + Key_Numpad0 = 96 + Key_Numpad1 = 97 + Key_Numpad2 = 98 + Key_Numpad3 = 99 + Key_Numpad4 = 100 + Key_Numpad5 = 101 + Key_Numpad6 = 102 + Key_Numpad7 = 103 + Key_Numpad8 = 104 + Key_Numpad9 = 105 + Key_NumpadMultiply = 106 + Key_NumpadAdd = 107 + Key_NumpadSeparator = 108 + Key_NumpadSubtract = 109 + Key_NumpadDecimal = 110 + Key_NumpadDivide = 111 + Key_F1 = 112 + Key_F2 = 113 + Key_F3 = 114 + Key_F4 = 115 + Key_F5 = 116 + Key_F6 = 117 + Key_F7 = 118 + Key_F8 = 119 + Key_F9 = 120 + Key_F10 = 121 + Key_F11 = 122 + Key_F12 = 123 + Key_F13 = 124 + Key_F14 = 125 + Key_F15 = 126 + Key_F16 = 127 + Key_F17 = 128 + Key_F18 = 129 + Key_F19 = 130 + Key_F20 = 131 + Key_F21 = 132 + Key_F22 = 133 + Key_F23 = 134 + Key_F24 = 135 + Key_NumLock = 144 + Key_ScrollLock = 145 Key_AE = 196 Key_OE = 214 Key_UE = 220 @@ -137,6 +184,7 @@ type Key_AltR Key_ShiftL Key_ShiftR + Key_Print const inactiveTimer* = 0 diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index 39b75a3..7bb13c3 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -63,6 +63,14 @@ proc pWindowConfigureSignal(windowHandle, event, data: pointer): bool {.cdecl.} proc pKeyvalToKey(keyval: cint): Key = result = case keyval + + # the following block is probably only correct for german keyboard layout + of 39: Key_NumberSign + of 42: Key_Plus + of 58: Key_Point + of 59: Key_Comma + of 95: Key_Minus + of 97: Key_A of 98: Key_B of 99: Key_C @@ -93,26 +101,73 @@ proc pKeyvalToKey(keyval: cint): Key = of 246: Key_OE of 252: Key_UE of 65106: Key_Circumflex + of 65288: Key_Backspace of 65289: Key_Tab of 65293: Key_Return + of 65299: Key_Pause + of 65300: Key_ScrollLock of 65307: Key_Escape of 65379: Key_Insert - of 65535: Key_Delete - of 65288: Key_Backspace + of 65360: Key_Home of 65361: Key_Left of 65362: Key_Up of 65363: Key_Right of 65364: Key_Down - of 65360: Key_Home - of 65367: Key_End of 65365: Key_PageUp of 65366: Key_PageDown + of 65367: Key_End + of 65377: Key_Print + of 65383: Key_ContextMenu + of 65407: Key_NumLock + of 65450: Key_NumpadMultiply + of 65451: Key_NumpadAdd + of 65452: Key_NumpadSeparator + of 65453: Key_NumpadSubtract + of 65454: Key_NumpadDecimal + of 65455: Key_NumpadDivide + of 65456: Key_Numpad0 + of 65457: Key_Numpad1 + of 65458: Key_Numpad2 + of 65459: Key_Numpad3 + of 65460: Key_Numpad4 + of 65461: Key_Numpad5 + of 65462: Key_Numpad6 + of 65463: Key_Numpad7 + of 65464: Key_Numpad8 + of 65465: Key_Numpad9 + of 65470: Key_F1 + of 65471: Key_F2 + of 65472: Key_F3 + of 65473: Key_F4 + of 65474: Key_F5 + of 65475: Key_F6 + of 65476: Key_F7 + of 65477: Key_F8 + of 65478: Key_F9 + of 65479: Key_F10 + of 65480: Key_F11 + of 65481: Key_F12 + of 65482: Key_F13 + of 65483: Key_F14 + of 65484: Key_F15 + of 65485: Key_F16 + of 65486: Key_F17 + of 65487: Key_F18 + of 65488: Key_F19 + of 65489: Key_F20 + of 65490: Key_F21 + of 65491: Key_F22 + of 65492: Key_F23 + of 65493: Key_F24 of 65505: Key_ShiftL of 65506: Key_ShiftR of 65507: Key_ControlL of 65508: Key_ControlR of 65513: Key_AltL of 65514: Key_AltR + of 65515: Key_SuperL + of 65516: Key_SuperR + of 65535: Key_Delete else: cast[Key](keyval) proc pWindowKeyPressSignal(widget: pointer, event: var GdkEventKey, data: pointer): bool {.cdecl.} = diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim index 0f7ffaf..1687cd8 100755 --- a/src/nigui/private/windows/platform_impl.nim +++ b/src/nigui/private/windows/platform_impl.nim @@ -222,7 +222,18 @@ proc pWMParamsToKey(wParam, lParam: pointer): Key = of VK_DOWN: result = Key_Down of VK_INSERT: result = Key_Insert of VK_DELETE: result = Key_Delete + of VK_SNAPSHOT: result = Key_Print + of VK_OEM_PLUS: result = Key_Plus + of VK_OEM_PERIOD: result = Key_Point + of VK_OEM_COMMA: result = Key_Comma + of VK_OEM_MINUS: result = Key_Minus + + # the following block is probably only correct for german keyboard layout + of VK_OEM_2: result = Key_NumberSign + of VK_OEM_4: result = Key_SharpS of VK_OEM_5: result = Key_Circumflex + of VK_OEM_102: result = Key_Less + else: result = cast[Key](cast[int32](wParam)) proc pHandleWMKEYDOWNOrWMCHAR(window: Window, control: Control, unicode: int): bool = diff --git a/src/nigui/private/windows/windows.nim b/src/nigui/private/windows/windows.nim index 709bdc3..ec04f01 100755 --- a/src/nigui/private/windows/windows.nim +++ b/src/nigui/private/windows/windows.nim @@ -110,7 +110,14 @@ const VK_RCONTROL* = 163 VK_LMENU* = 164 VK_RMENU* = 165 + VK_OEM_PLUS* = 187 + VK_OEM_COMMA* = 188 + VK_OEM_MINUS* = 189 + VK_OEM_PERIOD* = 190 + VK_OEM_2* = 191 + VK_OEM_4* = 219 VK_OEM_5* = 220 + VK_OEM_102* = 226 WM_ACTIVATE* = 0x0006 WM_CHANGEUISTATE* = 0x0127 WM_CHAR* = 258 |
