diff options
| author | Jeff Carr <[email protected]> | 2023-04-03 10:26:47 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2023-04-03 10:26:47 -0500 |
| commit | 4b6207743b90968d6b822032a4355e43b6ce6da9 (patch) | |
| tree | 2cb9f13d5e95f14e165f8e41e8484320b7454177 /toolkit/gocui/tab.go | |
| parent | 0320ebe4bb49ea80761d77af80fa208157ffdb89 (diff) | |
gocui: working towards correct layout
make a gocui widget binary tree
more debugging cleanups
sample button app displays in gocui
geometry logic closer to correct
improvements in gocui layout
continued attempts to clean up tabs
dump binary tree
moving towards proper chan callback()
deprecate Widget.Name
Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit/gocui/tab.go')
| -rw-r--r-- | toolkit/gocui/tab.go | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/toolkit/gocui/tab.go b/toolkit/gocui/tab.go new file mode 100644 index 0000000..42e5127 --- /dev/null +++ b/toolkit/gocui/tab.go @@ -0,0 +1,88 @@ +package main + +// implements widgets 'Window' and 'Tab' + +import ( + "git.wit.org/wit/gui/toolkit" +// "github.com/awesome-gocui/gocui" +) + +func (w *cuiWidget) hideWidgets() { + switch w.widgetType { + case toolkit.Root: + case toolkit.Flag: + case toolkit.Window: + case toolkit.Tab: + case toolkit.Box: + case toolkit.Grid: + default: + if (w.v != nil) { + me.baseGui.DeleteView(w.cuiName) + w.v = nil + } + } + for _, child := range w.children { + child.hideWidgets() + } +} + +func (w *cuiWidget) showWidgets() { + w.drawView() + for _, child := range w.children { + child.showWidgets() + } +} + +func (w *cuiWidget) redoTabs(draw bool) { + log(logNow, "redoTabs() START", w.name) + if (w == nil) { + return + } + if (w.widgetType == toolkit.Root) { + w.logicalSize.w0 = 0 + w.logicalSize.h0 = 0 + w.logicalSize.w1 = 0 + w.logicalSize.h1 = 0 + + w.nextW = 2 + w.nextH = 2 + } + + log(logNow, "redoTabs() about to check for window and tab ", w.name) + w.text = w.name + t := len(w.text) + if ((w.widgetType == toolkit.Window) || (w.widgetType == toolkit.Tab)) { + log(logNow, "redoTabs() in Window and Tab", w.name) + w.realWidth = t + 2 + w.realHeight = me.defaultHeight + + w.realSize.w0 = me.rootNode.logicalSize.w1 + w.realSize.h0 = 0 + w.realSize.w1 = w.realSize.w0 + w.realWidth + w.realSize.h1 = w.realHeight + + w.logicalSize.w0 = 0 + w.logicalSize.h0 = 0 + w.logicalSize.w1 = 0 + w.logicalSize.h1 = w.realHeight + + // spaces right 1 space to next tab widget + // spaces down 1 line to the next widget + w.nextW = 2 + w.nextH = w.realHeight + 1 + + me.rootNode.logicalSize.w1 = w.realSize.w1 + 1 + me.rootNode.logicalSize.h1 = 0 + + me.baseGui.DeleteView(w.cuiName) + w.v = nil + w.drawView() + w.showWidgetPlacement(logNow, "redoTabs()") + } + + log(logNow, "redoTabs() about to for loop children", w.name) + for _, child := range w.children { + log(logNow, "redoTabs() got to child", child.name) + child.redoTabs(draw) + } +} |
