summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrustable-code <krauter.simon@arcor.de>2019-06-19 11:37:04 +0200
committertrustable-code <krauter.simon@arcor.de>2019-06-19 11:37:04 +0200
commit9ed05e7cb2da960c732aa14149a4e2e5bcbed675 (patch)
tree437593791111ee81a01458ec9f2b3d0f289bcc99 /src
parent8b88552444215852f5fe999091d55dc12bd4313f (diff)
downloadNiGui-9ed05e7cb2da960c732aa14149a4e2e5bcbed675.tar.gz
NiGui-9ed05e7cb2da960c732aa14149a4e2e5bcbed675.zip
Eliminate multi methods
Fix #42
Diffstat (limited to 'src')
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim10
-rwxr-xr-xsrc/nigui/private/windows/platform_impl.nim15
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)