summaryrefslogtreecommitdiff
path: root/src/nigui
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2018-05-07 20:23:02 +0200
committertrustable-code <krauter.simon@arcor.de>2018-05-07 20:23:02 +0200
commit37e0248d2832c9be9731246b936f3cccfff12cf0 (patch)
tree51ba45e99ed0f376d36c2fa4924e2fa08c33a853 /src/nigui
parent84d751b21c76312f1da4dd282505277126cd1f52 (diff)
downloadNiGui-37e0248d2832c9be9731246b936f3cccfff12cf0.tar.gz
NiGui-37e0248d2832c9be9731246b936f3cccfff12cf0.zip
Combine WindowKeyEvent and ControlKeyEvent types to KeyboardEvent
Should be simpler now.
Diffstat (limited to 'src/nigui')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim8
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim11
2 files changed, 6 insertions, 13 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index c1adf55..1b050a7 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -90,7 +90,7 @@ proc pWindowKeyPressSignal(widget: pointer, event: var GdkEventKey, data: pointe
window.fKeyPressed = pKeyvalToKey(event.keyval)
if gtk_im_context_filter_keypress(window.fIMContext, event) and window.fKeyPressed == Key_None:
return
- var evt = new WindowKeyEvent
+ var evt = new KeyboardEvent
evt.window = window
evt.key = window.fKeyPressed
if evt.key == Key_None:
@@ -109,7 +109,7 @@ proc pControlKeyPressSignal(widget: pointer, event: var GdkEventKey, data: point
control.fKeyPressed = pKeyvalToKey(event.keyval)
if gtk_im_context_filter_keypress(control.fIMContext, event) and control.fKeyPressed == Key_None:
return
- var evt = new ControlKeyEvent
+ var evt = new KeyboardEvent
evt.control = control
evt.key = control.fKeyPressed
if evt.key == Key_None:
@@ -125,7 +125,7 @@ proc pControlKeyPressSignal(widget: pointer, event: var GdkEventKey, data: point
proc pWindowIMContextCommitSignal(context: pointer, str: cstring, data: pointer) {.cdecl.} =
let window = cast[WindowImpl](data)
- var evt = new WindowKeyEvent
+ var evt = new KeyboardEvent
evt.window = window
evt.character = $str
evt.unicode = evt.character.runeAt(0).toUpper().int
@@ -138,7 +138,7 @@ proc pWindowIMContextCommitSignal(context: pointer, str: cstring, data: pointer)
proc pControlIMContextCommitSignal(context: pointer, str: cstring, data: pointer) {.cdecl.} =
let control = cast[ControlImpl](data)
- var evt = new ControlKeyEvent
+ var evt = new KeyboardEvent
evt.control = control
evt.character = $str
evt.unicode = evt.character.runeAt(0).toUpper().int
diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim
index 6cff721..47b776c 100755
--- a/src/nigui/private/windows/platform_impl.nim
+++ b/src/nigui/private/windows/platform_impl.nim
@@ -232,7 +232,7 @@ proc pVirtualKeyToKey(keyval, scancode: int32): Key =
else: result = cast[Key](keyval.unicodeToUpper)
proc pHandleWMKEYDOWNOrWMCHAR(window: Window, control: Control, unicode: int): bool =
- var windowEvent = new WindowKeyEvent
+ var windowEvent = new KeyboardEvent
windowEvent.window = window
windowEvent.key = pKeyDownKey
if windowEvent.key == Key_None:
@@ -247,7 +247,7 @@ proc pHandleWMKEYDOWNOrWMCHAR(window: Window, control: Control, unicode: int): b
return true
if control != nil:
- var controlEvent = new ControlKeyEvent
+ var controlEvent = new KeyboardEvent
controlEvent.control = control
controlEvent.key = windowEvent.key
controlEvent.unicode = windowEvent.unicode
@@ -265,14 +265,7 @@ proc pHandleWMKEYDOWN(window: Window, control: Control, wParam, lParam: pointer)
# Save the key for WM_CHAR, because WM_CHAR only gets the key combined with the dead key state
var widestring = newString(2)
let scancode = (cast[int32](lParam) and 0x00FF0000) shr 16
-
- # echo scancode
- # echo cast[int](wParam)
-
-
pKeyDownKey = pVirtualKeyToKey(cast[int32](wParam), scancode)
-
-
if cast[int](wParam) == VK_OEM_5:
# When the dead key "^" on German keyboard is pressed, don't call ToUnicode(), because this would destroy the dead key state
pKeyDownKey = Key_Circumflex