diff options
| author | trustable-code <krauter.simon@arcor.de> | 2018-02-06 20:02:03 +0100 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2018-02-06 20:02:03 +0100 |
| commit | 679538d03e9abf17b9750ca8c1c6cb5118a12c47 (patch) | |
| tree | 53666501caa86d60d9d73a4171778a67ba919693 /src | |
| parent | 0fb2e474141dfe45a69644a3ba92fc83e65e34e7 (diff) | |
| download | NiGui-679538d03e9abf17b9750ca8c1c6cb5118a12c47.tar.gz NiGui-679538d03e9abf17b9750ca8c1c6cb5118a12c47.zip | |
Tabstops on Windows
Diffstat (limited to 'src')
| -rwxr-xr-x | src/nigui/private/windows/platform_impl.nim | 15 | ||||
| -rwxr-xr-x | src/nigui/private/windows/windows.nim | 1 |
2 files changed, 11 insertions, 5 deletions
diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim index dbe6d7c..4ca99bc 100755 --- a/src/nigui/private/windows/platform_impl.nim +++ b/src/nigui/private/windows/platform_impl.nim @@ -241,7 +241,12 @@ proc pHandleWMKEYDOWNOrWMCHAR(window: Window, control: Control, unicode: int, ke controlEvent.unicode = windowEvent.unicode controlEvent.character = windowEvent.character control.handleKeyDownEvent(controlEvent) - result = controlEvent.cancel + if controlEvent.cancel: + return true + + # Tabstop: + if windowEvent.unicode == 9: + discard SetFocus(GetNextDlgTabItem(cast[WindowImpl](window).fHandle, cast[ControlImpl](control).fHandle, true)) proc pHandleWMKEYDOWN(window: Window, control: Control, wParam, lParam: pointer): bool = if not GetKeyboardState(pKeyState): pRaiseLastOSError() @@ -1114,12 +1119,12 @@ proc pContainerWndProc(hWnd: pointer, uMsg: int32, wParam, lParam: pointer): poi proc init(container: ContainerImpl) = var dwStyle: int32 = WS_CHILD - container.fHandle = pCreateWindowExWithUserdata(pContainerWindowClass, dwStyle, 0, pDefaultParentWindow, cast[pointer](container)) + container.fHandle = pCreateWindowExWithUserdata(pContainerWindowClass, dwStyle, WS_EX_CONTROLPARENT, pDefaultParentWindow, cast[pointer](container)) # ScrollWnd: - container.fScrollWndHandle = pCreateWindowExWithUserdata(pContainerWindowClass, dwStyle, 0, container.fHandle, cast[pointer](container)) + container.fScrollWndHandle = pCreateWindowExWithUserdata(pContainerWindowClass, dwStyle, WS_EX_CONTROLPARENT, container.fHandle, cast[pointer](container)) pShowWindow(container.fScrollWndHandle, SW_SHOW) # Inner: - container.fInnerHandle = pCreateWindowExWithUserdata(pContainerWindowClass, dwStyle, 0, container.fScrollWndHandle, cast[pointer](container)) + container.fInnerHandle = pCreateWindowExWithUserdata(pContainerWindowClass, dwStyle, WS_EX_CONTROLPARENT, container.fScrollWndHandle, cast[pointer](container)) pShowWindow(container.fInnerHandle, SW_SHOW) container.Container.init() @@ -1240,7 +1245,7 @@ proc pTextBoxWndProc(hWnd: pointer, uMsg: int32, wParam, lParam: pointer): point result = pCommonControlWndProc(pTextBoxOrigWndProc, hWnd, uMsg, wParam, lParam) proc init(textBox: NativeTextBox) = - textBox.fHandle = pCreateWindowExWithUserdata("EDIT", WS_CHILD, WS_EX_CLIENTEDGE, pDefaultParentWindow, cast[pointer](textBox)) + textBox.fHandle = pCreateWindowExWithUserdata("EDIT", WS_CHILD or WS_TABSTOP, WS_EX_CLIENTEDGE, pDefaultParentWindow, cast[pointer](textBox)) pTextBoxOrigWndProc = pSetWindowLongPtr(textBox.fHandle, GWLP_WNDPROC, pTextBoxWndProc) textBox.TextBox.init() diff --git a/src/nigui/private/windows/windows.nim b/src/nigui/private/windows/windows.nim index cc70dc1..ea0bef2 100755 --- a/src/nigui/private/windows/windows.nim +++ b/src/nigui/private/windows/windows.nim @@ -132,6 +132,7 @@ const WS_TABSTOP* = 0x00010000 WS_THICKFRAME* = 0x00040000 WS_VSCROLL* = 0x00200000 + WS_EX_CONTROLPARENT* = 0x00010000 # DT_CALCRECT* = 1024 # OBJ_FONT* = 6 # SM_XVIRTUALSCREEN* = 76 |
