105 lines
1.8 KiB
Go
105 lines
1.8 KiB
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"strings"
|
|
|
|
"go.wit.com/log"
|
|
"go.wit.com/widget"
|
|
)
|
|
|
|
func splitLines(s string) []string {
|
|
var lines []string
|
|
sc := bufio.NewScanner(strings.NewReader(s))
|
|
for sc.Scan() {
|
|
lines = append(lines, sc.Text())
|
|
}
|
|
return lines
|
|
}
|
|
|
|
func (w *guiWidget) textResize() bool {
|
|
// w := n.tk
|
|
var width, height int = 0, 0
|
|
var changed bool = false
|
|
|
|
for i, s := range splitLines(w.labelN) {
|
|
log.Log(INFO, "textResize() len =", len(s), i, s)
|
|
if width < len(s) {
|
|
width = len(s)
|
|
}
|
|
height += 1
|
|
}
|
|
if w.gocuiSize.w1 != w.gocuiSize.w0+width+me.FramePadW {
|
|
w.gocuiSize.w1 = w.gocuiSize.w0 + width + me.FramePadW
|
|
changed = true
|
|
}
|
|
if w.gocuiSize.h1 != w.gocuiSize.h0+height+me.FramePadH {
|
|
w.gocuiSize.h1 = w.gocuiSize.h0 + height + me.FramePadH
|
|
changed = true
|
|
}
|
|
if changed {
|
|
// w.showWidgetPlacement("textResize() changed")
|
|
}
|
|
return changed
|
|
}
|
|
|
|
func (w *guiWidget) hideWidgets() {
|
|
if w == nil {
|
|
return
|
|
}
|
|
w.isCurrent = false
|
|
switch w.node.WidgetType {
|
|
case widget.Root:
|
|
case widget.Flag:
|
|
case widget.Window:
|
|
case widget.Box:
|
|
case widget.Grid:
|
|
default:
|
|
w.Hide()
|
|
}
|
|
for _, child := range w.children {
|
|
child.hideWidgets()
|
|
}
|
|
}
|
|
|
|
func hideFake() {
|
|
var w *guiWidget
|
|
w = me.treeRoot.TK.(*guiWidget)
|
|
w.hideFake()
|
|
}
|
|
|
|
func showFake() {
|
|
var w *guiWidget
|
|
w = me.treeRoot.TK.(*guiWidget)
|
|
w.showFake()
|
|
}
|
|
|
|
func (w *guiWidget) hideFake() {
|
|
if w.isFake {
|
|
w.Hide()
|
|
}
|
|
for _, child := range w.children {
|
|
child.hideFake()
|
|
}
|
|
}
|
|
|
|
// shows the 'fake' widgets for widgets that
|
|
// are not normally displayed (like a grid widget)
|
|
func (w *guiWidget) showFake() {
|
|
if w.isFake {
|
|
w.drawView()
|
|
w.showWidgetPlacement("showFake:")
|
|
}
|
|
for _, child := range w.children {
|
|
child.showFake()
|
|
}
|
|
}
|
|
|
|
func (w *guiWidget) showWidgets() {
|
|
w.Show()
|
|
|
|
for _, child := range w.children {
|
|
child.showWidgets()
|
|
}
|
|
}
|