diff options
| author | chr <chr@cybre.space> | 2020-01-19 18:17:10 -0800 |
|---|---|---|
| committer | chr <chr@cybre.space> | 2020-01-19 18:17:10 -0800 |
| commit | f99f829acedc0c77bc91a0369f1bdbcc4120d6a9 (patch) | |
| tree | 9d21735dd35bc7f0a2d51c44cf449a71ae0f6146 /src | |
| parent | 6c41e5b06c372dc621c34157c86fb60d627f7c95 (diff) | |
| download | NiGui-f99f829acedc0c77bc91a0369f1bdbcc4120d6a9.tar.gz NiGui-f99f829acedc0c77bc91a0369f1bdbcc4120d6a9.zip | |
Implement remove method for GTK3
Diffstat (limited to 'src')
| -rwxr-xr-x | src/nigui.nim | 18 | ||||
| -rwxr-xr-x | src/nigui/private/gtk3/platform_impl.nim | 4 |
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 |
