summaryrefslogtreecommitdiff
path: root/toolkit/gocui/tab.go
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/gocui/tab.go')
-rw-r--r--toolkit/gocui/tab.go88
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)
+ }
+}