diff options
| author | trustable-code <krauter.simon@arcor.de> | 2017-09-20 20:35:42 +0200 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2017-09-20 20:35:42 +0200 |
| commit | 17c5e0b4024c5741d22257e706f2af2efb7595ad (patch) | |
| tree | b400d9b4c33accc5dc7d6fd3c061f63f13b3147c /src/nigui/private/gtk3/platform_impl.nim | |
| parent | dc62b597a99b8bc1866400366a340347b8fc12b9 (diff) | |
| download | NiGui-17c5e0b4024c5741d22257e706f2af2efb7595ad.tar.gz NiGui-17c5e0b4024c5741d22257e706f2af2efb7595ad.zip | |
Dispose, CloseClick, Minimize
* Changed "Dispose" events
* Added "CloseClick" event
* Added "Window.minimize()" and "Window.minimized"
Use "Window.show()" to unminimize the window.
Diffstat (limited to 'src/nigui/private/gtk3/platform_impl.nim')
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index ec8a2da..ac4bf2d 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -42,7 +42,7 @@ proc pGdkRGBAToColor(rgba: var GdkRGBA): Color = proc pWindowDeleteSignal(widgetHandle, event, data: pointer): bool {.cdecl.} = let window = cast[WindowImpl](data) - window.dispose() + window.closeClick() return true proc pWindowConfigureSignal(windowHandle, event, data: pointer): bool {.cdecl.} = @@ -580,6 +580,10 @@ proc pMainScrollbarDraw(widget: pointer, cr: pointer, data: pointer): bool {.cde gtk_scrolled_window_set_policy(widget, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC) fScrollbarSize = allocation.height +proc pWindowStateEventSignal(widget: pointer, event: var GdkEventWindowState, user_data: pointer): bool {.cdecl.} = + let window = cast[WindowImpl](user_data) + window.fMinimized = (event.new_window_state and GDK_WINDOW_STATE_ICONIFIED) == GDK_WINDOW_STATE_ICONIFIED + proc init(window: WindowImpl) = if pClipboardPtr == nil: gtk_init(nil, nil) @@ -592,6 +596,7 @@ proc init(window: WindowImpl) = discard g_signal_connect_data(window.fHandle, "delete-event", pWindowDeleteSignal, cast[pointer](window)) discard g_signal_connect_data(window.fHandle, "configure-event", pWindowConfigureSignal, cast[pointer](window)) discard g_signal_connect_data(window.fHandle, "key-press-event", pWindowKeyPressSignal, cast[pointer](window)) + discard g_signal_connect_data(window.fHandle, "window-state-event", pWindowStateEventSignal, cast[pointer](window)) # Enable drag and drop of files: pSetDragDest(window.fHandle) @@ -610,7 +615,9 @@ method destroy(window: WindowImpl) = method `visible=`(window: WindowImpl, visible: bool) = procCall window.Window.`visible=`(visible) if visible: - gtk_widget_show(window.fHandle) + # gtk_window_deiconify(window.fHandle) + # gtk_widget_show(window.fHandle) + gtk_window_present(window.fHandle) while fScrollbarSize == -1: discard gtk_main_iteration() else: @@ -622,6 +629,10 @@ method showModal(window, parent: WindowImpl) = gtk_window_set_transient_for(window.fHandle, parent.fHandle) window.visible = true +method minimize(window: WindowImpl) = + procCall window.Window.minimize() + gtk_window_iconify(window.fHandle) + method `width=`*(window: WindowImpl, width: int) = procCall window.Window.`width=`(width) gtk_window_resize(window.fHandle, window.width.cint, window.height.cint) |
