diff options
| author | trustable-code <krauter.simon@arcor.de> | 2019-06-19 11:37:04 +0200 |
|---|---|---|
| committer | trustable-code <krauter.simon@arcor.de> | 2019-06-19 11:37:04 +0200 |
| commit | 9ed05e7cb2da960c732aa14149a4e2e5bcbed675 (patch) | |
| tree | 437593791111ee81a01458ec9f2b3d0f289bcc99 | |
| parent | 8b88552444215852f5fe999091d55dc12bd4313f (diff) | |
| download | NiGui-9ed05e7cb2da960c732aa14149a4e2e5bcbed675.tar.gz NiGui-9ed05e7cb2da960c732aa14149a4e2e5bcbed675.zip | |
Eliminate multi methods
Fix #42
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 10 | ||||
| -rwxr-xr-x | src/nigui/private/windows/platform_impl.nim | 15 |
2 files changed, 15 insertions, 10 deletions
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim index 3d65a28..0e3a420 100755 --- a/src/nigui/private/gtk3/platform_impl.nim +++ b/src/nigui/private/gtk3/platform_impl.nim @@ -749,9 +749,10 @@ method `visible=`(window: WindowImpl, visible: bool) = gtk_widget_hide(window.fHandle) app.processEvents() -method showModal(window, parent: WindowImpl) = +method showModal(window: WindowImpl, parent: Window) = + # Overwrite base method gtk_window_set_modal(window.fHandle, 1) - gtk_window_set_transient_for(window.fHandle, parent.fHandle) + gtk_window_set_transient_for(window.fHandle, cast[WindowImpl](parent).fHandle) window.visible = true method minimize(window: WindowImpl) = @@ -1103,8 +1104,9 @@ method `frame=`(container: ContainerImpl, frame: Frame) = gtk_container_add(container.fHandle, frame.fHandle) container.pUpdateScrollWnd() -method add(container: ContainerImpl, control: ControlImpl) = - gtk_container_add(container.fInnerHandle, control.fHandle) +method add(container: ContainerImpl, control: Control) = + # Overwrite base method + gtk_container_add(container.fInnerHandle, cast[ControlImpl](control).fHandle) procCall container.Container.add(control) method paddingLeft(container: ContainerImpl): int = 5 # TODO diff --git a/src/nigui/private/windows/platform_impl.nim b/src/nigui/private/windows/platform_impl.nim index 7d02f1e..017f122 100755 --- a/src/nigui/private/windows/platform_impl.nim +++ b/src/nigui/private/windows/platform_impl.nim @@ -815,17 +815,19 @@ method `visible=`(window: WindowImpl, visible: bool) = else: pShowWindow(window.fHandle, SW_HIDE) -method showModal(window, parent: WindowImpl) = +method showModal(window: WindowImpl, parent: Window) = + # Overwrite base method + # Set window owner, to hide it from the taskbar - discard pSetWindowLongPtr(window.fHandle, GWL_HWNDPARENT, parent.fHandle) + discard pSetWindowLongPtr(window.fHandle, GWL_HWNDPARENT, cast[WindowImpl](parent).fHandle) # Hide minimize and maximize buttons: pSetWindowLong(window.fHandle, GWL_STYLE, WS_CAPTION or WS_THICKFRAME or WS_SYSMENU) # pSetWindowLong(window.fHandle, GWL_EXSTYLE, WS_EX_TOOLWINDOW) # does not look good - window.fModalParent = parent + window.fModalParent = cast[WindowImpl](parent) window.visible = true - discard EnableWindow(parent.fHandle, false) + discard EnableWindow(cast[WindowImpl](parent).fHandle, false) method minimize(window: WindowImpl) = procCall window.Window.minimize() @@ -1267,9 +1269,10 @@ method `frame=`(container: ContainerImpl, frame: Frame) = pSetParent(frame.fHandle, container.fHandle) container.pUpdateScrollWnd() -method add(container: ContainerImpl, control: ControlImpl) = +method add(container: ContainerImpl, control: Control) = + # Overwrite base method procCall container.Container.add(control) - pSetParent(control.fHandle, container.fInnerHandle) + pSetParent(cast[ControlImpl](control).fHandle, container.fInnerHandle) method remove(container: ContainerImpl, control: ControlImpl) = procCall container.Container.remove(control) |
