From 051ad00de366fa9c419d63ebf851e8688976d097 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 26 Apr 2023 12:18:08 -0500 Subject: [PATCH] gocli: close to working tabs Signed-off-by: Jeff Carr --- toolkit/gocui/add.go | 1 - toolkit/gocui/click.go | 31 ++++++++++++++++++++++++++----- 2 files changed, 26 insertions(+), 6 deletions(-) diff --git a/toolkit/gocui/add.go b/toolkit/gocui/add.go index dc81130..1282081 100644 --- a/toolkit/gocui/add.go +++ b/toolkit/gocui/add.go @@ -46,7 +46,6 @@ func (w *cuiWidget) addWidget() { case toolkit.Window: w.setTabWH() w.drawView() - // w.frame = false return case toolkit.Tab: w.setTabWH() diff --git a/toolkit/gocui/click.go b/toolkit/gocui/click.go index 6f9aa06..214ef0b 100644 --- a/toolkit/gocui/click.go +++ b/toolkit/gocui/click.go @@ -10,6 +10,15 @@ import ( "git.wit.org/wit/gui/toolkit" ) +// set isCurrent = false everywhere +func UnsetCurrent(w *cuiWidget) { + w.isCurrent = false + + for _, child := range w.children { + UnsetCurrent(child) + } +} + func (w *cuiWidget) doWidgetClick() { switch w.widgetType { case toolkit.Root: @@ -18,20 +27,32 @@ func (w *cuiWidget) doWidgetClick() { me.rootNode.nextH = 0 me.rootNode.redoTabs(true) case toolkit.Flag: - me.rootNode.redoColor(true) + // me.rootNode.redoColor(true) + me.rootNode.dumpTree(true) case toolkit.Window: + UnsetCurrent(me.rootNode) me.rootNode.hideWidgets() + + me.rootNode.nextW = 0 + me.rootNode.nextH = 0 + me.rootNode.redoTabs(true) + + w.isCurrent = true if w.hasTabs { - // w.isCurrent = false - w.isCurrent = true - } else { - w.isCurrent = true + // set isCurrent = true on the first tab + for _, child := range w.children { + child.isCurrent = true + break + } } + w.placeWidgets() w.showWidgets() + // THIS IS THE BEGINING OF THE LAYOUT case toolkit.Tab: me.rootNode.hideWidgets() w.isCurrent = true + w.parent.isCurrent = true w.placeWidgets() w.showWidgets() case toolkit.Group: