summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/nigui.nim18
-rwxr-xr-xsrc/nigui/private/gtk3/platform_impl.nim4
2 files changed, 13 insertions, 9 deletions
diff --git a/src/nigui.nim b/src/nigui.nim
index 199b8e4..fd5810f 100755
--- a/src/nigui.nim
+++ b/src/nigui.nim
@@ -1951,15 +1951,15 @@ method add(container: Container, control: Control) =
container.triggerRelayout()
method remove(container: Container, control: Control) =
- discard
- # if container != control.fParentControl:
- # raiseError("control can not be removed because it is not member of the container")
- # else:
- # let startIndex = control.fIndex
- # container.childControls.del(control.fIndex)
- # for i in startIndex..container.childControls.high:
- # container.childControl[i].fIndex = i
- # control.parentControl = nil
+ if cast[Control](container) != control.fParentControl:
+ raiseError("control can not be removed because it is not member of the container")
+ else:
+ let startIndex = control.fIndex
+ container.fChildControls.del(container.fChildControls.find(control))
+ for i in startIndex..container.childControls.high:
+ container.childControls[i].fIndex = i
+ container.triggerRelayout()
+ control.fParentControl = nil
method setControlPosition(container: Container, control: Control, x, y: int) =
control.setPosition(x, y)
diff --git a/src/nigui/private/gtk3/platform_impl.nim b/src/nigui/private/gtk3/platform_impl.nim
index 28f67f8..80176be 100755
--- a/src/nigui/private/gtk3/platform_impl.nim
+++ b/src/nigui/private/gtk3/platform_impl.nim
@@ -1201,6 +1201,10 @@ method add(container: ContainerImpl, control: Control) =
gtk_container_add(container.fInnerHandle, cast[ControlImpl](control).fHandle)
procCall container.Container.add(control)
+method remove(container: ContainerImpl, control: Control) =
+ gtk_container_remove(container.fInnerHandle, cast[ControlImpl](control).fHandle)
+ procCall container.Container.remove(control)
+
method paddingLeft(container: ContainerImpl): int {.base.} = 5 # TODO
method paddingRight(container: ContainerImpl): int {.base.} = 5 # TODO
method paddingTop(container: ContainerImpl): int {.base.} = 15 # TODO