2023-04-03 10:26:47 -05:00
|
|
|
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:
|
2023-04-03 11:52:54 -05:00
|
|
|
w.deleteView()
|
2023-04-03 10:26:47 -05:00
|
|
|
}
|
|
|
|
for _, child := range w.children {
|
|
|
|
child.hideWidgets()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-03 11:52:54 -05:00
|
|
|
func (w *cuiWidget) hideFake() {
|
|
|
|
if (w.isFake) {
|
|
|
|
w.deleteView()
|
|
|
|
}
|
|
|
|
for _, child := range w.children {
|
|
|
|
child.hideFake()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func (w *cuiWidget) showFake() {
|
|
|
|
if (w.isFake) {
|
|
|
|
w.drawView()
|
|
|
|
}
|
|
|
|
for _, child := range w.children {
|
|
|
|
child.showFake()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-03 10:26:47 -05:00
|
|
|
func (w *cuiWidget) showWidgets() {
|
2023-04-06 00:13:28 -05:00
|
|
|
if (w.isFake) {
|
|
|
|
// don't display by default
|
|
|
|
} else {
|
|
|
|
w.drawView()
|
|
|
|
}
|
2023-04-03 10:26:47 -05:00
|
|
|
for _, child := range w.children {
|
|
|
|
child.showWidgets()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-04-05 17:29:52 -05:00
|
|
|
func (w *cuiWidget) setTabWH() {
|
|
|
|
t := len(w.text)
|
|
|
|
|
2023-04-05 19:03:01 -05:00
|
|
|
w.gocuiSize.width = t + me.buttonPadding
|
|
|
|
w.gocuiSize.height = me.defaultHeight
|
2023-04-05 17:29:52 -05:00
|
|
|
|
2023-04-05 19:03:01 -05:00
|
|
|
w.gocuiSize.startW = me.rootNode.startW
|
|
|
|
w.gocuiSize.startH = me.rootNode.startH
|
2023-04-05 17:29:52 -05:00
|
|
|
|
2023-04-06 00:13:28 -05:00
|
|
|
w.startW = me.rawW
|
|
|
|
w.startH = me.rawH
|
2023-04-05 21:15:05 -05:00
|
|
|
|
2023-04-06 00:13:28 -05:00
|
|
|
var f func (widget *cuiWidget)
|
|
|
|
|
|
|
|
// find buttons that are below where the mouse button click
|
|
|
|
f = func(widget *cuiWidget) {
|
|
|
|
if (widget == w) {
|
2023-04-05 17:29:52 -05:00
|
|
|
return
|
|
|
|
}
|
2023-04-06 00:13:28 -05:00
|
|
|
if ((widget.widgetType == toolkit.Window) || (widget.widgetType == toolkit.Tab)) {
|
|
|
|
w.gocuiSize.startW += widget.gocuiSize.width + me.padW
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, child := range widget.children {
|
|
|
|
f(child)
|
|
|
|
}
|
2023-04-05 17:29:52 -05:00
|
|
|
}
|
2023-04-06 00:13:28 -05:00
|
|
|
f(me.rootNode)
|
2023-04-05 19:03:01 -05:00
|
|
|
|
2023-04-05 17:29:52 -05:00
|
|
|
w.setWH()
|
|
|
|
w.showWidgetPlacement(logNow, "setTabWH:")
|
|
|
|
}
|
|
|
|
|
2023-04-03 10:26:47 -05:00
|
|
|
func (w *cuiWidget) redoTabs(draw bool) {
|
|
|
|
if ((w.widgetType == toolkit.Window) || (w.widgetType == toolkit.Tab)) {
|
2023-04-03 11:52:54 -05:00
|
|
|
w.deleteView()
|
2023-04-03 10:26:47 -05:00
|
|
|
w.drawView()
|
|
|
|
}
|
|
|
|
|
|
|
|
for _, child := range w.children {
|
|
|
|
child.redoTabs(draw)
|
|
|
|
}
|
|
|
|
}
|