summaryrefslogtreecommitdiff
path: root/view.go
diff options
context:
space:
mode:
Diffstat (limited to 'view.go')
-rw-r--r--view.go104
1 files changed, 49 insertions, 55 deletions
diff --git a/view.go b/view.go
index 7e6dfd4..7a26105 100644
--- a/view.go
+++ b/view.go
@@ -21,12 +21,12 @@ func splitLines(s string) []string {
return lines
}
-func (n *node) textResize() bool {
- w := n.tk
+func (w *guiWidget) textResize() bool {
+ // w := n.tk
var width, height int = 0, 0
var changed bool = false
- for i, s := range splitLines(n.tk.label) {
+ for i, s := range splitLines(w.label) {
log.Log(INFO, "textResize() len =", len(s), i, s)
if width < len(s) {
width = len(s)
@@ -42,78 +42,76 @@ func (n *node) textResize() bool {
changed = true
}
if changed {
- n.showWidgetPlacement(true, "textResize() changed")
+ showWidgetPlacement(w.node, true, "textResize() changed")
}
return changed
}
-func (n *node) hideView() {
- n.SetVisible(false)
+func (w *guiWidget) hideView() {
+ SetVisible(w.node, false)
}
// display's the text of the widget in gocui
// will create a new gocui view if there isn't one or if it has been moved
-func (n *node) showView() {
+func (w *guiWidget) showView() {
var err error
- w := n.tk
if w.cuiName == "" {
log.Log(ERROR, "showView() w.cuiName was not set for widget", w)
- w.cuiName = string(n.WidgetId)
+ w.cuiName = string(w.node.WidgetId)
}
// if the gocui element doesn't exist, create it
if w.v == nil {
- n.recreateView()
+ w.recreateView()
}
x0, y0, x1, y1, err := me.baseGui.ViewPosition(w.cuiName)
- log.Log(INFO, "showView() w.v already defined for widget", n.progname, err)
+ log.Log(INFO, "showView() w.v already defined for widget", w.String(), err)
// n.smartGocuiSize()
- changed := n.textResize()
+ changed := w.textResize()
if changed {
log.Log(NOW, "showView() textResize() changed. Should recreateView here wId =", w.cuiName)
} else {
log.Log(NOW, "showView() Clear() and Fprint() here wId =", w.cuiName)
w.v.Clear()
- fmt.Fprint(w.v, n.tk.label)
- n.SetVisible(false)
- n.SetVisible(true)
+ fmt.Fprint(w.v, w.label)
+ w.SetVisible(false)
+ w.SetVisible(true)
return
}
// if the gocui element has changed where it is supposed to be on the screen
// recreate it
if x0 != w.gocuiSize.w0 {
- n.recreateView()
+ w.recreateView()
return
}
if y0 != w.gocuiSize.h0 {
log.Log(ERROR, "showView() start hight mismatch id=", w.cuiName, "gocui h vs computed h =", w.gocuiSize.h0, y0)
- n.recreateView()
+ w.recreateView()
return
}
if x1 != w.gocuiSize.w1 {
log.Log(ERROR, "showView() too wide", w.cuiName, "w,w", w.gocuiSize.w1, x1)
- n.recreateView()
+ w.recreateView()
return
}
if y1 != w.gocuiSize.h1 {
log.Log(ERROR, "showView() too high", w.cuiName, "h,h", w.gocuiSize.h1, y1)
- n.recreateView()
+ w.recreateView()
return
}
- n.SetVisible(true)
+ w.SetVisible(true)
}
// create or recreate the gocui widget visible
// deletes the old view if it exists and recreates it
-func (n *node) recreateView() {
+func (w *guiWidget) recreateView() {
var err error
- w := n.tk
- log.Log(ERROR, "recreateView() START", n.WidgetType, n.progname)
+ log.Log(ERROR, "recreateView() START", w.WidgetType, w.String())
if me.baseGui == nil {
log.Log(ERROR, "recreateView() ERROR: me.baseGui == nil", w)
return
@@ -123,11 +121,11 @@ func (n *node) recreateView() {
me.baseGui.DeleteView(w.cuiName)
w.v = nil
- if n.progname == "CLOUDFLARE_EMAIL" {
- n.showWidgetPlacement(true, "n.progname="+n.progname+" n.tk.label="+n.tk.label+" "+w.cuiName)
- n.dumpWidget("jwc")
- n.textResize()
- n.showWidgetPlacement(true, "n.progname="+n.progname+" n.tk.label="+n.tk.label+" "+w.cuiName)
+ if w.String() == "CLOUDFLARE_EMAIL" {
+ w.showWidgetPlacement(true, "n.String()="+w.String()+" n.tk.label="+w.label+" "+w.cuiName)
+ // w.dumpWidget("jwc")
+ w.textResize()
+ w.showWidgetPlacement(true, "n.String()="+w.String()+" n.tk.label="+w.label+" "+w.cuiName)
}
a := w.gocuiSize.w0
@@ -137,12 +135,12 @@ func (n *node) recreateView() {
w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0)
if err == nil {
- n.showWidgetPlacement(true, "recreateView()")
+ showWidgetPlacement(w.node, true, "recreateView()")
log.Log(ERROR, "recreateView() internal plugin error err = nil")
return
}
if !errors.Is(err, gocui.ErrUnknownView) {
- n.showWidgetPlacement(true, "recreateView()")
+ showWidgetPlacement(w.node, true, "recreateView()")
log.Log(ERROR, "recreateView() internal plugin error error.IS()", err)
return
}
@@ -161,8 +159,8 @@ func (n *node) recreateView() {
w.v.Wrap = true
w.v.Frame = w.frame
w.v.Clear()
- fmt.Fprint(w.v, n.tk.label)
- // n.showWidgetPlacement(true, "n.progname=" + n.progname + " n.tk.label=" + n.tk.label + " " + w.cuiName)
+ fmt.Fprint(w.v, w.label)
+ // n.showWidgetPlacement(true, "n.String()=" + n.String() + " n.tk.label=" + n.tk.label + " " + w.cuiName)
// n.dumpWidget("jwc 2")
// if you don't do this here, it will be black & white only
@@ -173,61 +171,57 @@ func (n *node) recreateView() {
w.v.SelFgColor = w.color.selFg
w.v.SelBgColor = w.color.selBg
}
- if n.progname == "CLOUDFLARE_EMAIL" {
- n.showWidgetPlacement(true, "n.progname="+n.progname+" n.tk.label="+n.tk.label+" "+w.cuiName)
- n.dumpTree(true)
+ if w.String() == "CLOUDFLARE_EMAIL" {
+ w.showWidgetPlacement(true, "w.String()="+w.String()+" w.label="+w.label+" "+w.cuiName)
+ dumpTree(w.node, true)
}
log.Log(ERROR, "recreateView() END")
}
-func (n *node) hideWidgets() {
- w := n.tk
+func (w *guiWidget) hideWidgets() {
w.isCurrent = false
- switch n.WidgetType {
+ switch w.node.WidgetType {
case widget.Root:
case widget.Flag:
case widget.Window:
case widget.Box:
case widget.Grid:
default:
- n.hideView()
+ w.hideView()
}
- for _, child := range n.children {
+ for _, child := range w.children {
child.hideWidgets()
}
}
-func (n *node) hideFake() {
- w := n.tk
+func (w *guiWidget) hideFake() {
if w.isFake {
- n.hideView()
+ w.hideView()
}
- for _, child := range n.children {
+ for _, child := range w.children {
child.hideFake()
}
}
-func (n *node) showFake() {
- w := n.tk
+func (w *guiWidget) showFake() {
if w.isFake {
- n.setFake()
- n.showWidgetPlacement(true, "showFake:")
- n.showView()
+ // w.setFake()
+ w.showWidgetPlacement(true, "showFake:")
+ w.showView()
}
- for _, child := range n.children {
+ for _, child := range w.children {
child.showFake()
}
}
-func (n *node) showWidgets() {
- w := n.tk
+func (w *guiWidget) showWidgets() {
if w.isFake {
// don't display by default
} else {
- n.showWidgetPlacement(true, "current:")
- n.showView()
+ w.showWidgetPlacement(true, "current:")
+ w.showView()
}
- for _, child := range n.children {
+ for _, child := range w.children {
child.showWidgets()
}
}