use "go.wit.com/log"
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
2a9724d7a8
commit
3c2da3f096
|
@ -13,3 +13,14 @@ objdump:
|
||||||
log:
|
log:
|
||||||
reset
|
reset
|
||||||
tail -f /tmp/witgui.* /tmp/guilogfile
|
tail -f /tmp/witgui.* /tmp/guilogfile
|
||||||
|
|
||||||
|
cleanbuild:
|
||||||
|
go build -v -x -buildmode=plugin -o ../nocui.so
|
||||||
|
|
||||||
|
check-git-clean:
|
||||||
|
@git diff-index --quiet HEAD -- || (echo "Git repository is dirty, please commit your changes first"; exit 1)
|
||||||
|
|
||||||
|
redomod:
|
||||||
|
rm -f go.*
|
||||||
|
GO111MODULE= go mod init
|
||||||
|
GO111MODULE= go mod tidy
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
log "go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -19,7 +20,7 @@ func (n *node) setFake() {
|
||||||
fakeStartHeight = me.TabH
|
fakeStartHeight = me.TabH
|
||||||
fakeStartWidth += me.FakeW
|
fakeStartWidth += me.FakeW
|
||||||
}
|
}
|
||||||
if (logInfo) {
|
if (true) {
|
||||||
n.showView()
|
n.showView()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,10 +28,10 @@ func (n *node) setFake() {
|
||||||
// set the widget start width & height
|
// set the widget start width & height
|
||||||
func (n *node) addWidget() {
|
func (n *node) addWidget() {
|
||||||
nw := n.tk
|
nw := n.tk
|
||||||
log(logInfo, "setStartWH() w.id =", n.WidgetId, "n.name", n.Name)
|
log.Log(INFO, "setStartWH() w.id =", n.WidgetId, "n.name", n.Name)
|
||||||
switch n.WidgetType {
|
switch n.WidgetType {
|
||||||
case widget.Root:
|
case widget.Root:
|
||||||
log(logInfo, "setStartWH() rootNode w.id =", n.WidgetId, "w.name", n.Name)
|
log.Log(INFO, "setStartWH() rootNode w.id =", n.WidgetId, "w.name", n.Name)
|
||||||
nw.color = &colorRoot
|
nw.color = &colorRoot
|
||||||
n.setFake()
|
n.setFake()
|
||||||
return
|
return
|
||||||
|
@ -74,5 +75,5 @@ func (n *node) addWidget() {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
n.showWidgetPlacement(logInfo, "addWidget()")
|
n.showWidgetPlacement(true, "addWidget()")
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
package main
|
||||||
|
|
||||||
|
/*
|
||||||
|
this enables command line options from other packages like 'gui' and 'log'
|
||||||
|
*/
|
||||||
|
|
||||||
|
import (
|
||||||
|
log "go.wit.com/log"
|
||||||
|
)
|
||||||
|
|
||||||
|
var outputS []string
|
||||||
|
|
||||||
|
var NOW log.LogFlag
|
||||||
|
var INFO log.LogFlag
|
||||||
|
|
||||||
|
var SPEW log.LogFlag
|
||||||
|
var WARN log.LogFlag
|
||||||
|
|
||||||
|
var ERROR log.LogFlag
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
full := "toolkit/nocui"
|
||||||
|
short := "nocui"
|
||||||
|
|
||||||
|
NOW.NewFlag( "NOW", true, full, short, "temp debugging stuff")
|
||||||
|
INFO.NewFlag("INFO", false, full, short, "normal debugging stuff")
|
||||||
|
|
||||||
|
WARN.NewFlag("WARN", true, full, short, "bad things")
|
||||||
|
SPEW.NewFlag("SPEW", false, full, short, "spew stuff")
|
||||||
|
|
||||||
|
ERROR.NewFlag("ERROR", false, full, short, "toolkit errors")
|
||||||
|
}
|
|
@ -3,6 +3,7 @@ package main
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -25,7 +26,7 @@ func unsetCurrent(n *node) {
|
||||||
// of the current widgets if that widget is supposed
|
// of the current widgets if that widget is supposed
|
||||||
// to be in current display
|
// to be in current display
|
||||||
func (n *node) updateCurrent() {
|
func (n *node) updateCurrent() {
|
||||||
log(true, "updateCurrent()", n.Name)
|
log.Log(NOW, "updateCurrent()", n.Name)
|
||||||
if n.WidgetType == widget.Tab {
|
if n.WidgetType == widget.Tab {
|
||||||
if n.IsCurrent() {
|
if n.IsCurrent() {
|
||||||
// n.tk.color = &colorActiveT
|
// n.tk.color = &colorActiveT
|
||||||
|
@ -83,18 +84,18 @@ func setCurrentTab(n *node) {
|
||||||
w.isCurrent = true
|
w.isCurrent = true
|
||||||
p := n.parent.tk
|
p := n.parent.tk
|
||||||
p.isCurrent = true
|
p.isCurrent = true
|
||||||
log(true, "setCurrent()", n.Name)
|
log.Log(NOW, "setCurrent()", n.Name)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) doWidgetClick() {
|
func (n *node) doWidgetClick() {
|
||||||
switch n.WidgetType {
|
switch n.WidgetType {
|
||||||
case widget.Root:
|
case widget.Root:
|
||||||
// THIS IS THE BEGINING OF THE LAYOUT
|
// THIS IS THE BEGINING OF THE LAYOUT
|
||||||
log(true, "doWidgetClick()", n.Name)
|
log.Log(NOW, "doWidgetClick()", n.Name)
|
||||||
redoWindows(0,0)
|
redoWindows(0,0)
|
||||||
case widget.Flag:
|
case widget.Flag:
|
||||||
log(true, "doWidgetClick() FLAG widget name =", n.Name)
|
log.Log(NOW, "doWidgetClick() FLAG widget name =", n.Name)
|
||||||
log(true, "doWidgetClick() if this is the dropdown menu, handle it here?")
|
log.Log(NOW, "doWidgetClick() if this is the dropdown menu, handle it here?")
|
||||||
case widget.Window:
|
case widget.Window:
|
||||||
if (me.currentWindow == n) {
|
if (me.currentWindow == n) {
|
||||||
return
|
return
|
||||||
|
@ -111,7 +112,7 @@ func (n *node) doWidgetClick() {
|
||||||
n.redoTabs(me.TabW, me.TabH)
|
n.redoTabs(me.TabW, me.TabH)
|
||||||
for _, child := range n.children {
|
for _, child := range n.children {
|
||||||
if (child.currentTab == true) {
|
if (child.currentTab == true) {
|
||||||
log(true, "FOUND CURRENT TAB", child.Name)
|
log.Log(NOW, "FOUND CURRENT TAB", child.Name)
|
||||||
setCurrentTab(child)
|
setCurrentTab(child)
|
||||||
child.placeWidgets(me.RawW, me.RawH)
|
child.placeWidgets(me.RawW, me.RawH)
|
||||||
child.showWidgets()
|
child.showWidgets()
|
||||||
|
@ -166,16 +167,16 @@ func (n *node) doWidgetClick() {
|
||||||
case widget.Box:
|
case widget.Box:
|
||||||
// w.showWidgetPlacement(logNow, "drawTree()")
|
// w.showWidgetPlacement(logNow, "drawTree()")
|
||||||
if (n.horizontal) {
|
if (n.horizontal) {
|
||||||
log(true, "BOX IS HORIZONTAL", n.Name)
|
log.Log(NOW, "BOX IS HORIZONTAL", n.Name)
|
||||||
} else {
|
} else {
|
||||||
log(true, "BOX IS VERTICAL", n.Name)
|
log.Log(NOW, "BOX IS VERTICAL", n.Name)
|
||||||
}
|
}
|
||||||
// n.placeWidgets()
|
// n.placeWidgets()
|
||||||
n.toggleTree()
|
n.toggleTree()
|
||||||
case widget.Button:
|
case widget.Button:
|
||||||
n.doUserEvent()
|
n.doUserEvent()
|
||||||
case widget.Dropdown:
|
case widget.Dropdown:
|
||||||
log(true, "do the dropdown here")
|
log.Log(NOW, "do the dropdown here")
|
||||||
if (me.ddview == nil) {
|
if (me.ddview == nil) {
|
||||||
me.ddview = addDropdown()
|
me.ddview = addDropdown()
|
||||||
tk := me.ddview.tk
|
tk := me.ddview.tk
|
||||||
|
@ -198,7 +199,7 @@ func (n *node) doWidgetClick() {
|
||||||
me.ddview.SetVisible(true)
|
me.ddview.SetVisible(true)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
log(true, "doWidgetClick() visible =", me.ddview.Visible())
|
log.Log(NOW, "doWidgetClick() visible =", me.ddview.Visible())
|
||||||
if (me.ddview.Visible()) {
|
if (me.ddview.Visible()) {
|
||||||
me.ddview.SetVisible(false)
|
me.ddview.SetVisible(false)
|
||||||
me.baseGui.DeleteView("ddview")
|
me.baseGui.DeleteView("ddview")
|
||||||
|
@ -206,17 +207,17 @@ func (n *node) doWidgetClick() {
|
||||||
} else {
|
} else {
|
||||||
var dnsList string
|
var dnsList string
|
||||||
for i, s := range n.vals {
|
for i, s := range n.vals {
|
||||||
log(logNow, "AddText()", n.Name, i, s)
|
log.Log(NOW, "AddText()", n.Name, i, s)
|
||||||
dnsList += s + "\n"
|
dnsList += s + "\n"
|
||||||
}
|
}
|
||||||
me.ddNode = n
|
me.ddNode = n
|
||||||
log(logNow, "new dns list should be set to:", dnsList)
|
log.Log(NOW, "new dns list should be set to:", dnsList)
|
||||||
me.ddview.Text = dnsList
|
me.ddview.Text = dnsList
|
||||||
me.ddview.SetText(dnsList)
|
me.ddview.SetText(dnsList)
|
||||||
me.ddview.SetVisible(true)
|
me.ddview.SetVisible(true)
|
||||||
}
|
}
|
||||||
for i, s := range n.vals {
|
for i, s := range n.vals {
|
||||||
log(logNow, "AddText()", n.Name, i, s)
|
log.Log(NOW, "AddText()", n.Name, i, s)
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
|
@ -240,7 +241,7 @@ func (n *node) drawTree(draw bool) {
|
||||||
if (w == nil) {
|
if (w == nil) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n.showWidgetPlacement(logNow, "drawTree()")
|
n.showWidgetPlacement(true, "drawTree()")
|
||||||
if (draw) {
|
if (draw) {
|
||||||
// w.textResize()
|
// w.textResize()
|
||||||
n.showView()
|
n.showView()
|
||||||
|
@ -257,27 +258,27 @@ func click(g *gocui.Gui, v *gocui.View) error {
|
||||||
// var l string
|
// var l string
|
||||||
// var err error
|
// var err error
|
||||||
|
|
||||||
log(logVerbose, "click() START", v.Name())
|
log.Log(INFO, "click() START", v.Name())
|
||||||
// n := me.rootNode.findWidgetName(v.Name())
|
// n := me.rootNode.findWidgetName(v.Name())
|
||||||
n := findUnderMouse()
|
n := findUnderMouse()
|
||||||
if (n != nil) {
|
if (n != nil) {
|
||||||
log(logNow, "click() Found widget =", n.WidgetId, n.Name, ",", n.Text)
|
log.Log(NOW, "click() Found widget =", n.WidgetId, n.Name, ",", n.Text)
|
||||||
if (n.Name == "DropBox") {
|
if (n.Name == "DropBox") {
|
||||||
log(logNow, "click() this is the dropdown menu. set a flag here what did I click? where is the mouse?")
|
log.Log(NOW, "click() this is the dropdown menu. set a flag here what did I click? where is the mouse?")
|
||||||
log(logNow, "click() set a global dropdown clicked flag=true here")
|
log.Log(NOW, "click() set a global dropdown clicked flag=true here")
|
||||||
me.ddClicked = true
|
me.ddClicked = true
|
||||||
}
|
}
|
||||||
n.doWidgetClick()
|
n.doWidgetClick()
|
||||||
} else {
|
} else {
|
||||||
log(logNow, "click() could not find node name =", v.Name())
|
log.Log(NOW, "click() could not find node name =", v.Name())
|
||||||
}
|
}
|
||||||
|
|
||||||
if _, err := g.SetCurrentView(v.Name()); err != nil {
|
if _, err := g.SetCurrentView(v.Name()); err != nil {
|
||||||
log(logNow, "click() END err =", err)
|
log.Log(NOW, "click() END err =", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
log(logVerbose, "click() END")
|
log.Log(NOW, "click() END")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,14 +300,14 @@ func findUnderMouse() *node {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (n == me.ddview) {
|
if (n == me.ddview) {
|
||||||
log(true, "findUnderMouse() found ddview")
|
log.Log(NOW, "findUnderMouse() found ddview")
|
||||||
if n.Visible() {
|
if n.Visible() {
|
||||||
log(true, "findUnderMouse() and ddview is visable. hide it here. TODO: find highlighted row")
|
log.Log(NOW, "findUnderMouse() and ddview is visable. hide it here. TODO: find highlighted row")
|
||||||
found = n
|
found = n
|
||||||
// find the actual value here and set the dropdown widget
|
// find the actual value here and set the dropdown widget
|
||||||
me.baseGui.DeleteView("ddview")
|
me.baseGui.DeleteView("ddview")
|
||||||
} else {
|
} else {
|
||||||
log(true, "findUnderMouse() I was lying, actually it's not found")
|
log.Log(NOW, "findUnderMouse() I was lying, actually it's not found")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -319,7 +320,7 @@ func findUnderMouse() *node {
|
||||||
// TODO: pop up menu with a list of them
|
// TODO: pop up menu with a list of them
|
||||||
for _, n := range widgets {
|
for _, n := range widgets {
|
||||||
//log(logNow, "ctrlDown() FOUND widget", widget.id, widget.name)
|
//log(logNow, "ctrlDown() FOUND widget", widget.id, widget.name)
|
||||||
n.showWidgetPlacement(logNow, "findUnderMouse() FOUND")
|
n.showWidgetPlacement(true, "findUnderMouse() FOUND")
|
||||||
}
|
}
|
||||||
return found
|
return found
|
||||||
}
|
}
|
||||||
|
@ -351,6 +352,6 @@ func ctrlDown(g *gocui.Gui, v *gocui.View) error {
|
||||||
} else {
|
} else {
|
||||||
me.ctrlDown.showView()
|
me.ctrlDown.showView()
|
||||||
}
|
}
|
||||||
me.ctrlDown.showWidgetPlacement(logNow, "ctrlDown:")
|
me.ctrlDown.showWidgetPlacement(true, "ctrlDown:")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,8 @@ package main
|
||||||
import (
|
import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
//w.v.SelBgColor = gocui.ColorCyan
|
//w.v.SelBgColor = gocui.ColorCyan
|
||||||
|
@ -73,10 +75,10 @@ func (n *node) setColor(newColor *colorT) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (tk.color == nil) {
|
if (tk.color == nil) {
|
||||||
log(true, "Set the node to color = nil")
|
log.Log(NOW, "Set the node to color = nil")
|
||||||
tk.color = &colorNone
|
tk.color = &colorNone
|
||||||
}
|
}
|
||||||
log(true, "Set the node to color =", tk.color.name)
|
log.Log(NOW, "Set the node to color =", tk.color.name)
|
||||||
n.recreateView()
|
n.recreateView()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,7 +89,7 @@ func (n *node) setDefaultWidgetColor() {
|
||||||
func (n *node) setDefaultHighlight() {
|
func (n *node) setDefaultHighlight() {
|
||||||
w := n.tk
|
w := n.tk
|
||||||
if (w.v == nil) {
|
if (w.v == nil) {
|
||||||
log(logError, "SetColor() failed on view == nil")
|
log.Log(ERROR, "SetColor() failed on view == nil")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
w.v.SelBgColor = gocui.ColorGreen
|
w.v.SelBgColor = gocui.ColorGreen
|
||||||
|
@ -97,7 +99,7 @@ func (n *node) setDefaultHighlight() {
|
||||||
func randColor() gocui.Attribute {
|
func randColor() gocui.Attribute {
|
||||||
colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"}
|
colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"}
|
||||||
i := rand.Intn(len(colors))
|
i := rand.Intn(len(colors))
|
||||||
log(true, "randColor() i =", i)
|
log.Log(NOW, "randColor() i =", i)
|
||||||
return gocui.GetColor(colors[i])
|
return gocui.GetColor(colors[i])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -107,7 +109,7 @@ func (n *node) redoColor(draw bool) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
sleep(.05)
|
log.Sleep(.05)
|
||||||
n.setDefaultHighlight()
|
n.setDefaultHighlight()
|
||||||
n.setDefaultWidgetColor()
|
n.setDefaultWidgetColor()
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -10,7 +11,7 @@ func (n *node) dumpTree(draw bool) {
|
||||||
if (w == nil) {
|
if (w == nil) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n.showWidgetPlacement(logNow, "dumpTree()")
|
n.showWidgetPlacement(true, "dumpTree()")
|
||||||
|
|
||||||
for _, child := range n.children {
|
for _, child := range n.children {
|
||||||
child.dumpTree(draw)
|
child.dumpTree(draw)
|
||||||
|
@ -19,7 +20,7 @@ func (n *node) dumpTree(draw bool) {
|
||||||
|
|
||||||
func (n *node) showWidgetPlacement(b bool, s string) {
|
func (n *node) showWidgetPlacement(b bool, s string) {
|
||||||
if (n == nil) {
|
if (n == nil) {
|
||||||
log(logError, "WTF w == nil")
|
log.Log(ERROR, "WTF w == nil")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
w := n.tk
|
w := n.tk
|
||||||
|
@ -27,7 +28,7 @@ func (n *node) showWidgetPlacement(b bool, s string) {
|
||||||
var s1 string
|
var s1 string
|
||||||
var pId int
|
var pId int
|
||||||
if (n.parent == nil) {
|
if (n.parent == nil) {
|
||||||
log(logVerbose, "showWidgetPlacement() parent == nil", n.WidgetId, w.cuiName)
|
log.Log(INFO, "showWidgetPlacement() parent == nil", n.WidgetId, w.cuiName)
|
||||||
pId = 0
|
pId = 0
|
||||||
} else {
|
} else {
|
||||||
pId = n.parent.WidgetId
|
pId = n.parent.WidgetId
|
||||||
|
@ -46,11 +47,11 @@ func (n *node) showWidgetPlacement(b bool, s string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
tmp := "." + n.Name + "."
|
tmp := "." + n.Name + "."
|
||||||
log(b, s1, s, n.WidgetType, ",", tmp) // , "text=", w.text)
|
log.Log(INFO, s1, s, n.WidgetType, ",", tmp) // , "text=", w.text)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) dumpWidget(pad string) {
|
func (n *node) dumpWidget(pad string) {
|
||||||
log(true, "node:", pad, n.WidgetId, "At(", n.AtW, n.AtH, ") ,", n.WidgetType, ", n.Name =", n.Name, ", n.Text =", n.Text)
|
log.Log(NOW, "node:", pad, n.WidgetId, "At(", n.AtW, n.AtH, ") ,", n.WidgetType, ", n.Name =", n.Name, ", n.Text =", n.Text)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) listWidgets() {
|
func (n *node) listWidgets() {
|
||||||
|
|
|
@ -7,6 +7,8 @@ package main
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// This initializes the gocui package
|
// This initializes the gocui package
|
||||||
|
@ -47,21 +49,21 @@ func gocuiMain() {
|
||||||
func gocuiEvent(g *gocui.Gui) error {
|
func gocuiEvent(g *gocui.Gui) error {
|
||||||
maxX, maxY := g.Size()
|
maxX, maxY := g.Size()
|
||||||
mx, my := g.MousePosition()
|
mx, my := g.MousePosition()
|
||||||
log(logVerbose, "handleEvent() START", maxX, maxY, mx, my, msgMouseDown)
|
log.Log(NOW, "handleEvent() START", maxX, maxY, mx, my, msgMouseDown)
|
||||||
if _, err := g.View("msg"); msgMouseDown && err == nil {
|
if _, err := g.View("msg"); msgMouseDown && err == nil {
|
||||||
moveMsg(g)
|
moveMsg(g)
|
||||||
}
|
}
|
||||||
if widgetView, _ := g.View("msg"); widgetView == nil {
|
if widgetView, _ := g.View("msg"); widgetView == nil {
|
||||||
log(logNow, "handleEvent() create output widget now", maxX, maxY, mx, my)
|
log.Log(NOW, "handleEvent() create output widget now", maxX, maxY, mx, my)
|
||||||
makeOutputWidget(g, "this is a create before a mouse click")
|
makeOutputWidget(g, "this is a create before a mouse click")
|
||||||
if (me.logStdout != nil) {
|
if (me.logStdout != nil) {
|
||||||
// setOutput(me.logStdout)
|
// setOutput(me.logStdout)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
log(logInfo, "output widget already exists", maxX, maxY, mx, my)
|
log.Log(INFO, "output widget already exists", maxX, maxY, mx, my)
|
||||||
}
|
}
|
||||||
mouseMove(g)
|
mouseMove(g)
|
||||||
log(logVerbose, "handleEvent() END ", maxX, maxY, mx, my, msgMouseDown)
|
log.Log(INFO, "handleEvent() END ", maxX, maxY, mx, my, msgMouseDown)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -74,7 +76,7 @@ func setFrame(b bool) {
|
||||||
// what is this do? I made it just 2 lines for now. Is this useful for something?
|
// what is this do? I made it just 2 lines for now. Is this useful for something?
|
||||||
v := SetView("global", 5, 10, 5, 10, 0) // x0, x1, y1, y2, overlap
|
v := SetView("global", 5, 10, 5, 10, 0) // x0, x1, y1, y2, overlap
|
||||||
if (v == nil) {
|
if (v == nil) {
|
||||||
log(logError, "setFrame() global failed")
|
log.Log(ERROR, "setFrame() global failed")
|
||||||
}
|
}
|
||||||
v.Frame = b
|
v.Frame = b
|
||||||
}
|
}
|
||||||
|
@ -85,14 +87,14 @@ func quit(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
|
||||||
func SetView(name string, x0, y0, x1, y1 int, overlaps byte) *gocui.View {
|
func SetView(name string, x0, y0, x1, y1 int, overlaps byte) *gocui.View {
|
||||||
if (me.baseGui == nil) {
|
if (me.baseGui == nil) {
|
||||||
log(logError, "SetView() ERROR: me.baseGui == nil")
|
log.Log(ERROR, "SetView() ERROR: me.baseGui == nil")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
v, err := me.baseGui.SetView(name, x0, y0, x1, y1, overlaps)
|
v, err := me.baseGui.SetView(name, x0, y0, x1, y1, overlaps)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if !errors.Is(err, gocui.ErrUnknownView) {
|
if !errors.Is(err, gocui.ErrUnknownView) {
|
||||||
log(logError, "SetView() global failed on name =", name)
|
log.Log(ERROR, "SetView() global failed on name =", name)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,8 +5,9 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -117,12 +118,13 @@ func addDebugKeys(g *gocui.Gui) {
|
||||||
// log to output window
|
// log to output window
|
||||||
g.SetKeybinding("", 'o', gocui.ModNone,
|
g.SetKeybinding("", 'o', gocui.ModNone,
|
||||||
func(g *gocui.Gui, v *gocui.View) error {
|
func(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
log.Log(ERROR, "TODO: re-implement this")
|
||||||
if me.logStdout.Visible() {
|
if me.logStdout.Visible() {
|
||||||
me.logStdout.SetVisible(false)
|
me.logStdout.SetVisible(false)
|
||||||
setOutput(os.Stdout)
|
// setOutput(os.Stdout)
|
||||||
} else {
|
} else {
|
||||||
me.logStdout.SetVisible(true)
|
me.logStdout.SetVisible(true)
|
||||||
setOutput(me.logStdout.tk)
|
// setOutput(me.logStdout.tk)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
@ -145,23 +147,11 @@ func addDebugKeys(g *gocui.Gui) {
|
||||||
a.B = true
|
a.B = true
|
||||||
a.ActionType = widget.EnableDebug
|
a.ActionType = widget.EnableDebug
|
||||||
callback <- a
|
callback <- a
|
||||||
logInfo = true
|
|
||||||
logVerbose = true
|
|
||||||
} else {
|
|
||||||
logInfo = false
|
|
||||||
logVerbose = false
|
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
g.SetKeybinding("", gocui.KeyCtrlV, gocui.ModNone,
|
g.SetKeybinding("", gocui.KeyCtrlV, gocui.ModNone,
|
||||||
func(g *gocui.Gui, v *gocui.View) error {
|
func(g *gocui.Gui, v *gocui.View) error {
|
||||||
if (logVerbose) {
|
|
||||||
logInfo = false
|
|
||||||
logVerbose = false
|
|
||||||
} else {
|
|
||||||
logInfo = true
|
|
||||||
logVerbose = true
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -6,24 +6,26 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
// sets defaults and establishes communication
|
// sets defaults and establishes communication
|
||||||
// to this toolkit from the wit/gui golang package
|
// to this toolkit from the wit/gui golang package
|
||||||
func init() {
|
func init() {
|
||||||
log(logInfo, "Init() of awesome-gocui")
|
log.Log(INFO, "Init() of awesome-gocui")
|
||||||
|
|
||||||
// init the config struct default values
|
// init the config struct default values
|
||||||
Set(&me, "default")
|
Set(&me, "default")
|
||||||
|
|
||||||
pluginChan = make(chan widget.Action)
|
pluginChan = make(chan widget.Action)
|
||||||
|
|
||||||
log(logNow, "Init() start pluginChan")
|
log.Log(NOW, "Init() start pluginChan")
|
||||||
go catchActionChannel()
|
go catchActionChannel()
|
||||||
sleep(.1) // probably not needed, but in here for now under development
|
log.Sleep(.1) // probably not needed, but in here for now under development
|
||||||
go main()
|
go main()
|
||||||
sleep(.1) // probably not needed, but in here for now under development
|
log.Sleep(.1) // probably not needed, but in here for now under development
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -33,17 +35,17 @@ recieves requests from the program to do things like:
|
||||||
* etc..
|
* etc..
|
||||||
*/
|
*/
|
||||||
func catchActionChannel() {
|
func catchActionChannel() {
|
||||||
log(logInfo, "catchActionChannel() START")
|
log.Log(INFO, "catchActionChannel() START")
|
||||||
for {
|
for {
|
||||||
log(logInfo, "catchActionChannel() infinite for() loop restarted select on channel")
|
log.Log(INFO, "catchActionChannel() infinite for() loop restarted select on channel")
|
||||||
select {
|
select {
|
||||||
case a := <-pluginChan:
|
case a := <-pluginChan:
|
||||||
if (me.baseGui == nil) {
|
if (me.baseGui == nil) {
|
||||||
// something went wrong initializing the gocui
|
// something went wrong initializing the gocui
|
||||||
log(logError,"ERROR: console did not initialize")
|
log.Log(ERROR, "ERROR: console did not initialize")
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
log(logInfo, "catchActionChannel()", a.WidgetId, a.ActionType, a.WidgetType, a.Name)
|
log.Log(INFO, "catchActionChannel()", a.WidgetId, a.ActionType, a.WidgetType, a.Name)
|
||||||
action(&a)
|
action(&a)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,23 +53,23 @@ func catchActionChannel() {
|
||||||
|
|
||||||
func Exit() {
|
func Exit() {
|
||||||
// TODO: what should actually happen here?
|
// TODO: what should actually happen here?
|
||||||
log(true, "Exit() here. doing standardExit()")
|
log.Log(NOW, "Exit() here. doing standardExit()")
|
||||||
standardExit()
|
standardExit()
|
||||||
}
|
}
|
||||||
|
|
||||||
func standardExit() {
|
func standardExit() {
|
||||||
log(true, "standardExit() doing baseGui.Close()")
|
log.Log(NOW, "standardExit() doing baseGui.Close()")
|
||||||
me.baseGui.Close()
|
me.baseGui.Close()
|
||||||
log(true, "standardExit() doing outf.Close()")
|
log.Log(NOW, "standardExit() doing outf.Close()")
|
||||||
outf.Close()
|
outf.Close()
|
||||||
// log(true, "standardExit() setOutput(os.Stdout)")
|
// log(true, "standardExit() setOutput(os.Stdout)")
|
||||||
// setOutput(os.Stdout)
|
// setOutput(os.Stdout)
|
||||||
log(true, "standardExit() send back Quit()")
|
log.Log(NOW, "standardExit() send back Quit()")
|
||||||
go sendBackQuit() // don't stall here in case the
|
go sendBackQuit() // don't stall here in case the
|
||||||
// induces a delay in case the callback channel is broken
|
// induces a delay in case the callback channel is broken
|
||||||
sleep(1)
|
log.Sleep(1)
|
||||||
log(true, "standardExit() exit()")
|
log.Log(NOW, "standardExit() exit()")
|
||||||
exit()
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
func sendBackQuit() {
|
func sendBackQuit() {
|
||||||
// send 'Quit' back to the program (?)
|
// send 'Quit' back to the program (?)
|
||||||
|
@ -80,11 +82,12 @@ var outf *os.File
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var err error
|
var err error
|
||||||
log(logInfo, "main() start Init()")
|
log.Log(INFO, "main() start Init()")
|
||||||
|
|
||||||
outf, err = os.OpenFile("/tmp/witgui.log", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
outf, err = os.OpenFile("/tmp/witgui.log", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
exit("error opening file: %v", err)
|
log.Error(err, "error opening file: %v")
|
||||||
|
os.Exit(0)
|
||||||
}
|
}
|
||||||
os.Stdout = outf
|
os.Stdout = outf
|
||||||
defer outf.Close()
|
defer outf.Close()
|
||||||
|
@ -96,6 +99,6 @@ func main() {
|
||||||
os.Stderr = ferr
|
os.Stderr = ferr
|
||||||
gocuiMain()
|
gocuiMain()
|
||||||
|
|
||||||
log(true, "MouseMain() closed")
|
log.Log(NOW, "MouseMain() closed")
|
||||||
standardExit()
|
standardExit()
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@ import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// this function uses the mouse position to highlight & unhighlight things
|
// this function uses the mouse position to highlight & unhighlight things
|
||||||
|
@ -24,7 +26,7 @@ func mouseMove(g *gocui.Gui) {
|
||||||
|
|
||||||
func msgDown(g *gocui.Gui, v *gocui.View) error {
|
func msgDown(g *gocui.Gui, v *gocui.View) error {
|
||||||
initialMouseX, initialMouseY = g.MousePosition()
|
initialMouseX, initialMouseY = g.MousePosition()
|
||||||
log(true, "msgDown() X,Y", initialMouseX, initialMouseY)
|
log.Log(NOW, "msgDown() X,Y", initialMouseX, initialMouseY)
|
||||||
if vx, vy, _, _, err := g.ViewPosition("msg"); err == nil {
|
if vx, vy, _, _, err := g.ViewPosition("msg"); err == nil {
|
||||||
xOffset = initialMouseX - vx
|
xOffset = initialMouseX - vx
|
||||||
yOffset = initialMouseY - vy
|
yOffset = initialMouseY - vy
|
||||||
|
@ -35,7 +37,7 @@ func msgDown(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
|
||||||
func hideDDview() error {
|
func hideDDview() error {
|
||||||
w, h := me.baseGui.MousePosition()
|
w, h := me.baseGui.MousePosition()
|
||||||
log(true, "hide dropdown menu() view msgMouseDown (w,h) =", w, h)
|
log.Log(NOW, "hide dropdown menu() view msgMouseDown (w,h) =", w, h)
|
||||||
if (me.ddview == nil) {
|
if (me.ddview == nil) {
|
||||||
return gocui.ErrUnknownView
|
return gocui.ErrUnknownView
|
||||||
}
|
}
|
||||||
|
@ -48,7 +50,7 @@ func hideDDview() error {
|
||||||
|
|
||||||
func showDDview() error {
|
func showDDview() error {
|
||||||
w, h := me.baseGui.MousePosition()
|
w, h := me.baseGui.MousePosition()
|
||||||
log(true, "show dropdown menu() view msgMouseDown (w,h) =", w, h)
|
log.Log(NOW, "show dropdown menu() view msgMouseDown (w,h) =", w, h)
|
||||||
if (me.ddview == nil) {
|
if (me.ddview == nil) {
|
||||||
return gocui.ErrUnknownView
|
return gocui.ErrUnknownView
|
||||||
}
|
}
|
||||||
|
@ -61,23 +63,23 @@ func showDDview() error {
|
||||||
|
|
||||||
func mouseUp(g *gocui.Gui, v *gocui.View) error {
|
func mouseUp(g *gocui.Gui, v *gocui.View) error {
|
||||||
w, h := g.MousePosition()
|
w, h := g.MousePosition()
|
||||||
log(true, "mouseUp() view msgMouseDown (check here for dropdown menu click) (w,h) =", w, h)
|
log.Log(NOW, "mouseUp() view msgMouseDown (check here for dropdown menu click) (w,h) =", w, h)
|
||||||
if (me.ddClicked) {
|
if (me.ddClicked) {
|
||||||
me.ddClicked = false
|
me.ddClicked = false
|
||||||
log(true, "mouseUp() ddview is the thing that was clicked", w, h)
|
log.Log(NOW, "mouseUp() ddview is the thing that was clicked", w, h)
|
||||||
log(true, "mouseUp() find out what the string is here", w, h, me.ddview.tk.gocuiSize.h1)
|
log.Log(NOW, "mouseUp() find out what the string is here", w, h, me.ddview.tk.gocuiSize.h1)
|
||||||
|
|
||||||
var newZone string = ""
|
var newZone string = ""
|
||||||
if (me.ddNode != nil) {
|
if (me.ddNode != nil) {
|
||||||
value := h - me.ddview.tk.gocuiSize.h0 - 1
|
value := h - me.ddview.tk.gocuiSize.h0 - 1
|
||||||
log(true, "mouseUp() me.ddview.tk.gocuiSize.h1 =", me.ddview.tk.gocuiSize.h1)
|
log.Log(NOW, "mouseUp() me.ddview.tk.gocuiSize.h1 =", me.ddview.tk.gocuiSize.h1)
|
||||||
log(true, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
log.Log(NOW, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
||||||
valsLen := len(me.ddNode.vals)
|
valsLen := len(me.ddNode.vals)
|
||||||
log(true, "mouseUp() value =", value, "valsLen =", valsLen)
|
log.Log(NOW, "mouseUp() value =", value, "valsLen =", valsLen)
|
||||||
log(true, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
log.Log(NOW, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
||||||
if ((value >= 0) && (value < valsLen)) {
|
if ((value >= 0) && (value < valsLen)) {
|
||||||
newZone = me.ddNode.vals[value]
|
newZone = me.ddNode.vals[value]
|
||||||
log(true, "mouseUp() value =", value, "newZone =", newZone)
|
log.Log(NOW, "mouseUp() value =", value, "newZone =", newZone)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
hideDDview()
|
hideDDview()
|
||||||
|
@ -124,10 +126,10 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
|
||||||
msg := fmt.Sprintf("Mouse really down at: %d,%d", mx, my) + "foobar"
|
msg := fmt.Sprintf("Mouse really down at: %d,%d", mx, my) + "foobar"
|
||||||
if (test == me.ddview) {
|
if (test == me.ddview) {
|
||||||
if (me.ddview.Visible()) {
|
if (me.ddview.Visible()) {
|
||||||
log(true, "hide DDview() Mouse really down at:", mx, my)
|
log.Log(NOW, "hide DDview() Mouse really down at:", mx, my)
|
||||||
hideDDview()
|
hideDDview()
|
||||||
} else {
|
} else {
|
||||||
log(true, "show DDview() Mouse really down at:", mx, my)
|
log.Log(NOW, "show DDview() Mouse really down at:", mx, my)
|
||||||
showDDview()
|
showDDview()
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -138,7 +140,7 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
|
||||||
} else if x+len(msg)+1 > maxX-1 {
|
} else if x+len(msg)+1 > maxX-1 {
|
||||||
x = maxX - 1 - len(msg) - 1
|
x = maxX - 1 - len(msg) - 1
|
||||||
}
|
}
|
||||||
log(true, "mouseDown() about to write out message to 'globalDown' view. msg =", msg)
|
log.Log(NOW, "mouseDown() about to write out message to 'globalDown' view. msg =", msg)
|
||||||
if v, err := g.SetView("globalDown", x, my-1, x+len(msg)+1, my+1, 0); err != nil {
|
if v, err := g.SetView("globalDown", x, my-1, x+len(msg)+1, my+1, 0); err != nil {
|
||||||
if !errors.Is(err, gocui.ErrUnknownView) {
|
if !errors.Is(err, gocui.ErrUnknownView) {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -2,6 +2,8 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -9,7 +11,7 @@ func (n *node) placeBox(startW int, startH int) {
|
||||||
if (n.WidgetType != widget.Box) {
|
if (n.WidgetType != widget.Box) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n.showWidgetPlacement(logNow, "boxS()")
|
n.showWidgetPlacement(true, "boxS()")
|
||||||
|
|
||||||
newW := startW
|
newW := startW
|
||||||
newH := startH
|
newH := startH
|
||||||
|
@ -20,11 +22,11 @@ func (n *node) placeBox(startW int, startH int) {
|
||||||
w := newR.w1 - newR.w0
|
w := newR.w1 - newR.w0
|
||||||
h := newR.h1 - newR.h0
|
h := newR.h1 - newR.h0
|
||||||
if (n.horizontal) {
|
if (n.horizontal) {
|
||||||
log(logNow, "BOX IS HORIZONTAL", n.Name, "newWH()", newW, newH, "child()", w, h, child.Name)
|
log.Log(NOW, "BOX IS HORIZONTAL", n.Name, "newWH()", newW, newH, "child()", w, h, child.Name)
|
||||||
// expand based on the child width
|
// expand based on the child width
|
||||||
newW += w
|
newW += w
|
||||||
} else {
|
} else {
|
||||||
log(logNow, "BOX IS VERTICAL ", n.Name, "newWH()", newW, newH, "child()", w, h, child.Name)
|
log.Log(NOW, "BOX IS VERTICAL ", n.Name, "newWH()", newW, newH, "child()", w, h, child.Name)
|
||||||
// expand based on the child height
|
// expand based on the child height
|
||||||
newH += h
|
newH += h
|
||||||
}
|
}
|
||||||
|
@ -33,7 +35,7 @@ func (n *node) placeBox(startW int, startH int) {
|
||||||
// just compute this every time?
|
// just compute this every time?
|
||||||
// newR := n.realGocuiSize()
|
// newR := n.realGocuiSize()
|
||||||
|
|
||||||
n.showWidgetPlacement(logNow, "boxE()")
|
n.showWidgetPlacement(true, "boxE()")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) placeWidgets(startW int, startH int) {
|
func (n *node) placeWidgets(startW int, startH int) {
|
||||||
|
@ -62,7 +64,7 @@ func (n *node) placeWidgets(startW int, startH int) {
|
||||||
case widget.Group:
|
case widget.Group:
|
||||||
// move the group to the parent's next location
|
// move the group to the parent's next location
|
||||||
n.gocuiSetWH(startW, startH)
|
n.gocuiSetWH(startW, startH)
|
||||||
n.showWidgetPlacement(logNow, "group()")
|
n.showWidgetPlacement(true, "group()")
|
||||||
|
|
||||||
newW := startW + me.GroupPadW
|
newW := startW + me.GroupPadW
|
||||||
newH := startH + 3 // normal hight of the group label
|
newH := startH + 3 // normal hight of the group label
|
||||||
|
@ -84,7 +86,7 @@ func (n *node) placeWidgets(startW int, startH int) {
|
||||||
|
|
||||||
func (n *node) placeGrid(startW int, startH int) {
|
func (n *node) placeGrid(startW int, startH int) {
|
||||||
w := n.tk
|
w := n.tk
|
||||||
n.showWidgetPlacement(logInfo, "grid0:")
|
n.showWidgetPlacement(true, "grid0:")
|
||||||
if (n.WidgetType != widget.Grid) {
|
if (n.WidgetType != widget.Grid) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -103,12 +105,12 @@ func (n *node) placeGrid(startW int, startH int) {
|
||||||
w.heights[child.AtH] = childH
|
w.heights[child.AtH] = childH
|
||||||
}
|
}
|
||||||
// child.showWidgetPlacement(logInfo, "grid: ")
|
// child.showWidgetPlacement(logInfo, "grid: ")
|
||||||
log(logVerbose, "placeGrid:", child.Name, "child()", childW, childH, "At()", child.AtW, child.AtH)
|
log.Log(INFO, "placeGrid:", child.Name, "child()", childW, childH, "At()", child.AtW, child.AtH)
|
||||||
}
|
}
|
||||||
|
|
||||||
// find the width and height offset of the grid for AtW,AtH
|
// find the width and height offset of the grid for AtW,AtH
|
||||||
for _, child := range n.children {
|
for _, child := range n.children {
|
||||||
child.showWidgetPlacement(logInfo, "grid1:")
|
child.showWidgetPlacement(true, "grid1:")
|
||||||
|
|
||||||
var totalW, totalH int
|
var totalW, totalH int
|
||||||
for i, w := range w.widths {
|
for i, w := range w.widths {
|
||||||
|
@ -126,11 +128,11 @@ func (n *node) placeGrid(startW int, startH int) {
|
||||||
newW := startW + totalW
|
newW := startW + totalW
|
||||||
newH := startH + totalH
|
newH := startH + totalH
|
||||||
|
|
||||||
log(logVerbose, "placeGrid:", child.Name, "new()", newW, newH, "At()", child.AtW, child.AtH)
|
log.Log(INFO, "placeGrid:", child.Name, "new()", newW, newH, "At()", child.AtW, child.AtH)
|
||||||
child.placeWidgets(newW, newH)
|
child.placeWidgets(newW, newH)
|
||||||
child.showWidgetPlacement(logInfo, "grid2:")
|
child.showWidgetPlacement(true, "grid2:")
|
||||||
}
|
}
|
||||||
n.showWidgetPlacement(logInfo, "grid3:")
|
n.showWidgetPlacement(true, "grid3:")
|
||||||
}
|
}
|
||||||
|
|
||||||
// computes the real, actual size of all the gocli objects in a widget
|
// computes the real, actual size of all the gocli objects in a widget
|
||||||
|
|
|
@ -3,11 +3,12 @@ package main
|
||||||
import (
|
import (
|
||||||
// if you include more than just this import
|
// if you include more than just this import
|
||||||
// then your plugin might be doing something un-ideal (just a guess from 2023/02/27)
|
// then your plugin might be doing something un-ideal (just a guess from 2023/02/27)
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
func action(a *widget.Action) {
|
func action(a *widget.Action) {
|
||||||
log(logInfo, "action() START", a.WidgetId, a.ActionType, a.WidgetType, a.Name)
|
log.Log(INFO, "action() START", a.WidgetId, a.ActionType, a.WidgetType, a.Name)
|
||||||
n := me.rootNode.findWidgetId(a.WidgetId)
|
n := me.rootNode.findWidgetId(a.WidgetId)
|
||||||
var w *guiWidget
|
var w *guiWidget
|
||||||
if (n != nil) {
|
if (n != nil) {
|
||||||
|
@ -22,7 +23,7 @@ func action(a *widget.Action) {
|
||||||
} else {
|
} else {
|
||||||
// this is done to protect the plugin being 'refreshed' with the
|
// this is done to protect the plugin being 'refreshed' with the
|
||||||
// widget binary tree. TODO: find a way to keep them in sync
|
// widget binary tree. TODO: find a way to keep them in sync
|
||||||
log(logError, "action() Add ignored for already defined widget",
|
log.Log(ERROR, "action() Add ignored for already defined widget",
|
||||||
a.WidgetId, a.ActionType, a.WidgetType, a.Name)
|
a.WidgetId, a.ActionType, a.WidgetType, a.Name)
|
||||||
}
|
}
|
||||||
case widget.Show:
|
case widget.Show:
|
||||||
|
@ -33,12 +34,12 @@ func action(a *widget.Action) {
|
||||||
}
|
}
|
||||||
case widget.Set:
|
case widget.Set:
|
||||||
if a.WidgetType == widget.Flag {
|
if a.WidgetType == widget.Flag {
|
||||||
log(logNow, "TODO: set flag here", a.ActionType, a.WidgetType, a.Name)
|
log.Log(NOW, "TODO: set flag here", a.ActionType, a.WidgetType, a.Name)
|
||||||
log(logNow, "TODO: n.WidgetType =", n.WidgetType, "n.Name =", a.Name)
|
log.Log(NOW, "TODO: n.WidgetType =", n.WidgetType, "n.Name =", a.Name)
|
||||||
} else {
|
} else {
|
||||||
if (a.A == nil) {
|
if (a.A == nil) {
|
||||||
log(logError, "TODO: Set here. a == nil id =", a.WidgetId, "type =", a.WidgetType, "Name =", a.Name)
|
log.Log(ERROR, "TODO: Set here. a == nil id =", a.WidgetId, "type =", a.WidgetType, "Name =", a.Name)
|
||||||
log(logError, "TODO: Set here. id =", a.WidgetId, "n.Name =", n.Name)
|
log.Log(ERROR, "TODO: Set here. id =", a.WidgetId, "n.Name =", n.Name)
|
||||||
} else {
|
} else {
|
||||||
n.Set(a.A)
|
n.Set(a.A)
|
||||||
}
|
}
|
||||||
|
@ -48,38 +49,38 @@ func action(a *widget.Action) {
|
||||||
case widget.AddText:
|
case widget.AddText:
|
||||||
n.AddText(a.S)
|
n.AddText(a.S)
|
||||||
case widget.Move:
|
case widget.Move:
|
||||||
log(logNow, "attempt to move() =", a.ActionType, a.WidgetType, a.Name)
|
log.Log(NOW, "attempt to move() =", a.ActionType, a.WidgetType, a.Name)
|
||||||
case widget.CloseToolkit:
|
case widget.CloseToolkit:
|
||||||
log(logNow, "attempting to close the plugin and release stdout and stderr")
|
log.Log(NOW, "attempting to close the plugin and release stdout and stderr")
|
||||||
standardExit()
|
standardExit()
|
||||||
case widget.Enable:
|
case widget.Enable:
|
||||||
if n.Visible() {
|
if n.Visible() {
|
||||||
// widget was already shown
|
// widget was already shown
|
||||||
} else {
|
} else {
|
||||||
log(logInfo, "Setting Visable to true", a.Name)
|
log.Log(INFO, "Setting Visable to true", a.Name)
|
||||||
n.SetVisible(true)
|
n.SetVisible(true)
|
||||||
}
|
}
|
||||||
case widget.Disable:
|
case widget.Disable:
|
||||||
if n.Visible() {
|
if n.Visible() {
|
||||||
log(logInfo, "Setting Visable to false", a.Name)
|
log.Log(INFO, "Setting Visable to false", a.Name)
|
||||||
n.SetVisible(false)
|
n.SetVisible(false)
|
||||||
} else {
|
} else {
|
||||||
// widget was already hidden
|
// widget was already hidden
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
log(logError, "action() ActionType =", a.ActionType, "WidgetType =", a.WidgetType, "Name =", a.Name)
|
log.Log(ERROR, "action() ActionType =", a.ActionType, "WidgetType =", a.WidgetType, "Name =", a.Name)
|
||||||
}
|
}
|
||||||
log(logInfo, "action() END")
|
log.Log(INFO, "action() END")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) AddText(text string) {
|
func (n *node) AddText(text string) {
|
||||||
if (n == nil) {
|
if (n == nil) {
|
||||||
log(logNow, "widget is nil")
|
log.Log(NOW, "widget is nil")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
n.vals = append(n.vals, text)
|
n.vals = append(n.vals, text)
|
||||||
for i, s := range n.vals {
|
for i, s := range n.vals {
|
||||||
log(logNow, "AddText()", n.Name, i, s)
|
log.Log(NOW, "AddText()", n.Name, i, s)
|
||||||
}
|
}
|
||||||
n.SetText(text)
|
n.SetText(text)
|
||||||
}
|
}
|
||||||
|
@ -87,7 +88,7 @@ func (n *node) AddText(text string) {
|
||||||
func (n *node) SetText(text string) {
|
func (n *node) SetText(text string) {
|
||||||
var changed bool = false
|
var changed bool = false
|
||||||
if (n == nil) {
|
if (n == nil) {
|
||||||
log(logNow, "widget is nil")
|
log.Log(NOW, "widget is nil")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (n.Text != text) {
|
if (n.Text != text) {
|
||||||
|
@ -111,7 +112,7 @@ func (n *node) SetText(text string) {
|
||||||
|
|
||||||
func (n *node) Set(val any) {
|
func (n *node) Set(val any) {
|
||||||
// w := n.tk
|
// w := n.tk
|
||||||
log(logInfo, "Set() value =", val)
|
log.Log(INFO, "Set() value =", val)
|
||||||
|
|
||||||
switch v := val.(type) {
|
switch v := val.(type) {
|
||||||
case bool:
|
case bool:
|
||||||
|
@ -122,6 +123,6 @@ func (n *node) Set(val any) {
|
||||||
case int:
|
case int:
|
||||||
n.I = val.(int)
|
n.I = val.(int)
|
||||||
default:
|
default:
|
||||||
log(logError, "Set() unknown type =", val, v)
|
log.Log(ERROR, "Set() unknown type =", val, v)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,8 @@ import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -24,7 +26,7 @@ func showMsg(g *gocui.Gui, v *gocui.View) error {
|
||||||
var l string
|
var l string
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
log(true, "showMsg() v.name =", v.Name())
|
log.Log(NOW, "showMsg() v.name =", v.Name())
|
||||||
if _, err := g.SetCurrentView(v.Name()); err != nil {
|
if _, err := g.SetCurrentView(v.Name()); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -62,9 +64,9 @@ func makeOutputWidget(g *gocui.Gui, stringFromMouseClick string) *gocui.View {
|
||||||
}
|
}
|
||||||
v, err := g.View("msg")
|
v, err := g.View("msg")
|
||||||
if (v == nil) {
|
if (v == nil) {
|
||||||
log(true, "makeoutputwindow() this is supposed to happen. v == nil", err)
|
log.Log(NOW, "makeoutputwindow() this is supposed to happen. v == nil", err)
|
||||||
} else {
|
} else {
|
||||||
log(true, "makeoutputwindow() msg != nil. WTF now? err =", err)
|
log.Log(NOW, "makeoutputwindow() msg != nil. WTF now? err =", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
// help, err := g.SetView("help", maxX-32, 0, maxX-1, 13, 0)
|
// help, err := g.SetView("help", maxX-32, 0, maxX-1, 13, 0)
|
||||||
|
@ -72,16 +74,16 @@ func makeOutputWidget(g *gocui.Gui, stringFromMouseClick string) *gocui.View {
|
||||||
|
|
||||||
v, err = g.SetView("msg", maxX-32, maxY/2, maxX/2+outputW, maxY/2+outputH, 0)
|
v, err = g.SetView("msg", maxX-32, maxY/2, maxX/2+outputW, maxY/2+outputH, 0)
|
||||||
if errors.Is(err, gocui.ErrUnknownView) {
|
if errors.Is(err, gocui.ErrUnknownView) {
|
||||||
log(true, "makeoutputwindow() this is supposed to happen?", err)
|
log.Log(NOW, "makeoutputwindow() this is supposed to happen?", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (err != nil) {
|
if (err != nil) {
|
||||||
log(true, "makeoutputwindow() create output window failed", err)
|
log.Log(NOW, "makeoutputwindow() create output window failed", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
if (v == nil) {
|
if (v == nil) {
|
||||||
log(true, "makeoutputwindow() msg == nil. WTF now? err =", err)
|
log.Log(NOW, "makeoutputwindow() msg == nil. WTF now? err =", err)
|
||||||
return nil
|
return nil
|
||||||
} else {
|
} else {
|
||||||
me.logStdout.tk.v = v
|
me.logStdout.tk.v = v
|
||||||
|
|
|
@ -15,6 +15,8 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"strings"
|
"strings"
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
// It's probably a terrible idea to call this 'me'
|
// It's probably a terrible idea to call this 'me'
|
||||||
|
@ -181,7 +183,7 @@ func (w *guiWidget) Write(p []byte) (n int, err error) {
|
||||||
|
|
||||||
func Set(ptr interface{}, tag string) error {
|
func Set(ptr interface{}, tag string) error {
|
||||||
if reflect.TypeOf(ptr).Kind() != reflect.Ptr {
|
if reflect.TypeOf(ptr).Kind() != reflect.Ptr {
|
||||||
log(logError, "Set() Not a pointer", ptr, "with tag =", tag)
|
log.Log(ERROR, "Set() Not a pointer", ptr, "with tag =", tag)
|
||||||
return fmt.Errorf("Not a pointer")
|
return fmt.Errorf("Not a pointer")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -203,7 +205,7 @@ func setField(field reflect.Value, defaultVal string, name string) error {
|
||||||
// log("setField() Can't set value", field, defaultVal)
|
// log("setField() Can't set value", field, defaultVal)
|
||||||
return fmt.Errorf("Can't set value\n")
|
return fmt.Errorf("Can't set value\n")
|
||||||
} else {
|
} else {
|
||||||
log(true, "setField() Can set value", name, defaultVal)
|
log.Log(NOW, "setField() Can set value", name, defaultVal)
|
||||||
}
|
}
|
||||||
|
|
||||||
switch field.Kind() {
|
switch field.Kind() {
|
||||||
|
|
|
@ -4,6 +4,8 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -76,7 +78,7 @@ func redoWindows(nextW int, nextH int) {
|
||||||
sizeW := w.Width() + me.WindowPadW
|
sizeW := w.Width() + me.WindowPadW
|
||||||
sizeH := w.Height()
|
sizeH := w.Height()
|
||||||
nextW += sizeW
|
nextW += sizeW
|
||||||
log(logNow, "redoWindows() start nextW,H =", nextW, nextH, "gocuiSize.W,H =", sizeW, sizeH, n.Name)
|
log.Log(NOW, "redoWindows() start nextW,H =", nextW, nextH, "gocuiSize.W,H =", sizeW, sizeH, n.Name)
|
||||||
|
|
||||||
if n.hasTabs {
|
if n.hasTabs {
|
||||||
n.redoTabs(me.TabW, me.TabH)
|
n.redoTabs(me.TabW, me.TabH)
|
||||||
|
@ -103,7 +105,7 @@ func (p *node) redoTabs(nextW int, nextH int) {
|
||||||
|
|
||||||
sizeW := w.Width() + me.TabPadW
|
sizeW := w.Width() + me.TabPadW
|
||||||
sizeH := w.Height()
|
sizeH := w.Height()
|
||||||
log(logNow, "redoTabs() start nextW,H =", nextW, nextH, "gocuiSize.W,H =", sizeW, sizeH, n.Name)
|
log.Log(NOW, "redoTabs() start nextW,H =", nextW, nextH, "gocuiSize.W,H =", sizeW, sizeH, n.Name)
|
||||||
nextW += sizeW
|
nextW += sizeW
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,8 @@ import (
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -26,7 +28,7 @@ func (n *node) textResize() bool {
|
||||||
var changed bool = false
|
var changed bool = false
|
||||||
|
|
||||||
for i, s := range splitLines(n.Text) {
|
for i, s := range splitLines(n.Text) {
|
||||||
log(logInfo, "textResize() len =", len(s), i, s)
|
log.Log(INFO, "textResize() len =", len(s), i, s)
|
||||||
if (width < len(s)) {
|
if (width < len(s)) {
|
||||||
width = len(s)
|
width = len(s)
|
||||||
}
|
}
|
||||||
|
@ -41,7 +43,7 @@ func (n *node) textResize() bool {
|
||||||
changed = true
|
changed = true
|
||||||
}
|
}
|
||||||
if (changed) {
|
if (changed) {
|
||||||
n.showWidgetPlacement(logNow, "textResize() changed")
|
n.showWidgetPlacement(true, "textResize() changed")
|
||||||
}
|
}
|
||||||
return changed
|
return changed
|
||||||
}
|
}
|
||||||
|
@ -57,7 +59,7 @@ func (n *node) showView() {
|
||||||
w := n.tk
|
w := n.tk
|
||||||
|
|
||||||
if (w.cuiName == "") {
|
if (w.cuiName == "") {
|
||||||
log(logError, "showView() w.cuiName was not set for widget", w)
|
log.Log(ERROR, "showView() w.cuiName was not set for widget", w)
|
||||||
w.cuiName = strconv.Itoa(n.WidgetId)
|
w.cuiName = strconv.Itoa(n.WidgetId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -66,15 +68,15 @@ func (n *node) showView() {
|
||||||
n.recreateView()
|
n.recreateView()
|
||||||
}
|
}
|
||||||
x0, y0, x1, y1, err := me.baseGui.ViewPosition(w.cuiName)
|
x0, y0, x1, y1, err := me.baseGui.ViewPosition(w.cuiName)
|
||||||
log(logInfo, "showView() w.v already defined for widget", n.Name, err)
|
log.Log(INFO, "showView() w.v already defined for widget", n.Name, err)
|
||||||
|
|
||||||
// n.smartGocuiSize()
|
// n.smartGocuiSize()
|
||||||
changed := n.textResize()
|
changed := n.textResize()
|
||||||
|
|
||||||
if (changed) {
|
if (changed) {
|
||||||
log(logNow, "showView() textResize() changed. Should recreateView here wId =", w.cuiName)
|
log.Log(NOW, "showView() textResize() changed. Should recreateView here wId =", w.cuiName)
|
||||||
} else {
|
} else {
|
||||||
log(logNow, "showView() Clear() and Fprint() here wId =", w.cuiName)
|
log.Log(NOW, "showView() Clear() and Fprint() here wId =", w.cuiName)
|
||||||
w.v.Clear()
|
w.v.Clear()
|
||||||
fmt.Fprint(w.v, n.Text)
|
fmt.Fprint(w.v, n.Text)
|
||||||
n.SetVisible(false)
|
n.SetVisible(false)
|
||||||
|
@ -89,17 +91,17 @@ func (n *node) showView() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (y0 != w.gocuiSize.h0) {
|
if (y0 != w.gocuiSize.h0) {
|
||||||
log(logError, "showView() start hight mismatch id=", w.cuiName, "gocui h vs computed h =", w.gocuiSize.h0, y0)
|
log.Log(ERROR, "showView() start hight mismatch id=", w.cuiName, "gocui h vs computed h =", w.gocuiSize.h0, y0)
|
||||||
n.recreateView()
|
n.recreateView()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (x1 != w.gocuiSize.w1) {
|
if (x1 != w.gocuiSize.w1) {
|
||||||
log(logError, "showView() too wide", w.cuiName, "w,w", w.gocuiSize.w1, x1)
|
log.Log(ERROR, "showView() too wide", w.cuiName, "w,w", w.gocuiSize.w1, x1)
|
||||||
n.recreateView()
|
n.recreateView()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if (y1 != w.gocuiSize.h1) {
|
if (y1 != w.gocuiSize.h1) {
|
||||||
log(logError, "showView() too high", w.cuiName, "h,h", w.gocuiSize.h1, y1)
|
log.Log(ERROR, "showView() too high", w.cuiName, "h,h", w.gocuiSize.h1, y1)
|
||||||
n.recreateView()
|
n.recreateView()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
@ -112,9 +114,9 @@ func (n *node) showView() {
|
||||||
func (n *node) recreateView() {
|
func (n *node) recreateView() {
|
||||||
var err error
|
var err error
|
||||||
w := n.tk
|
w := n.tk
|
||||||
log(logError, "recreateView() START", n.WidgetType, n.Name)
|
log.Log(ERROR, "recreateView() START", n.WidgetType, n.Name)
|
||||||
if (me.baseGui == nil) {
|
if (me.baseGui == nil) {
|
||||||
log(logError, "recreateView() ERROR: me.baseGui == nil", w)
|
log.Log(ERROR, "recreateView() ERROR: me.baseGui == nil", w)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -123,10 +125,10 @@ func (n *node) recreateView() {
|
||||||
w.v = nil
|
w.v = nil
|
||||||
|
|
||||||
if (n.Name == "CLOUDFLARE_EMAIL") {
|
if (n.Name == "CLOUDFLARE_EMAIL") {
|
||||||
n.showWidgetPlacement(logNow, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
n.showWidgetPlacement(true, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
||||||
n.dumpWidget("jwc")
|
n.dumpWidget("jwc")
|
||||||
n.textResize()
|
n.textResize()
|
||||||
n.showWidgetPlacement(logNow, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
n.showWidgetPlacement(true, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
||||||
}
|
}
|
||||||
|
|
||||||
a := w.gocuiSize.w0
|
a := w.gocuiSize.w0
|
||||||
|
@ -136,13 +138,13 @@ func (n *node) recreateView() {
|
||||||
|
|
||||||
w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0)
|
w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
n.showWidgetPlacement(logError, "recreateView()")
|
n.showWidgetPlacement(true, "recreateView()")
|
||||||
log(logError, "recreateView() internal plugin error err = nil")
|
log.Log(ERROR, "recreateView() internal plugin error err = nil")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if !errors.Is(err, gocui.ErrUnknownView) {
|
if !errors.Is(err, gocui.ErrUnknownView) {
|
||||||
n.showWidgetPlacement(logError, "recreateView()")
|
n.showWidgetPlacement(true, "recreateView()")
|
||||||
log(logError, "recreateView() internal plugin error error.IS()", err)
|
log.Log(ERROR, "recreateView() internal plugin error error.IS()", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +163,7 @@ func (n *node) recreateView() {
|
||||||
w.v.Frame = w.frame
|
w.v.Frame = w.frame
|
||||||
w.v.Clear()
|
w.v.Clear()
|
||||||
fmt.Fprint(w.v, n.Text)
|
fmt.Fprint(w.v, n.Text)
|
||||||
// n.showWidgetPlacement(logNow, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
// n.showWidgetPlacement(true, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
||||||
// n.dumpWidget("jwc 2")
|
// n.dumpWidget("jwc 2")
|
||||||
|
|
||||||
// if you don't do this here, it will be black & white only
|
// if you don't do this here, it will be black & white only
|
||||||
|
@ -173,10 +175,10 @@ func (n *node) recreateView() {
|
||||||
w.v.SelBgColor = w.color.selBg
|
w.v.SelBgColor = w.color.selBg
|
||||||
}
|
}
|
||||||
if (n.Name == "CLOUDFLARE_EMAIL") {
|
if (n.Name == "CLOUDFLARE_EMAIL") {
|
||||||
n.showWidgetPlacement(logNow, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
n.showWidgetPlacement(true, "n.Name=" + n.Name + " n.Text=" + n.Text + " " + w.cuiName)
|
||||||
n.dumpTree(true)
|
n.dumpTree(true)
|
||||||
}
|
}
|
||||||
log(logError, "recreateView() END")
|
log.Log(ERROR, "recreateView() END")
|
||||||
}
|
}
|
||||||
|
|
||||||
func (n *node) hideWidgets() {
|
func (n *node) hideWidgets() {
|
||||||
|
@ -210,7 +212,7 @@ func (n *node) showFake() {
|
||||||
w := n.tk
|
w := n.tk
|
||||||
if (w.isFake) {
|
if (w.isFake) {
|
||||||
n.setFake()
|
n.setFake()
|
||||||
n.showWidgetPlacement(logNow, "showFake:")
|
n.showWidgetPlacement(true, "showFake:")
|
||||||
n.showView()
|
n.showView()
|
||||||
}
|
}
|
||||||
for _, child := range n.children {
|
for _, child := range n.children {
|
||||||
|
@ -223,7 +225,7 @@ func (n *node) showWidgets() {
|
||||||
if (w.isFake) {
|
if (w.isFake) {
|
||||||
// don't display by default
|
// don't display by default
|
||||||
} else {
|
} else {
|
||||||
n.showWidgetPlacement(logInfo, "current:")
|
n.showWidgetPlacement(true, "current:")
|
||||||
n.showView()
|
n.showView()
|
||||||
}
|
}
|
||||||
for _, child := range n.children {
|
for _, child := range n.children {
|
||||||
|
|
|
@ -2,6 +2,8 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"strconv"
|
"strconv"
|
||||||
|
|
||||||
|
"go.wit.com/log"
|
||||||
"go.wit.com/gui/widget"
|
"go.wit.com/gui/widget"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -16,7 +18,7 @@ func initWidget(n *node) *guiWidget {
|
||||||
w.cuiName = strconv.Itoa(n.WidgetId)
|
w.cuiName = strconv.Itoa(n.WidgetId)
|
||||||
|
|
||||||
if n.WidgetType == widget.Root {
|
if n.WidgetType == widget.Root {
|
||||||
log(logInfo, "setupWidget() FOUND ROOT w.id =", n.WidgetId)
|
log.Log(INFO, "setupWidget() FOUND ROOT w.id =", n.WidgetId)
|
||||||
n.WidgetId = 0
|
n.WidgetId = 0
|
||||||
me.rootNode = n
|
me.rootNode = n
|
||||||
return w
|
return w
|
||||||
|
|
|
@ -5,7 +5,7 @@ package main
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"go.wit.com/log"
|
log "go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
var NOW log.LogFlag
|
var NOW log.LogFlag
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
module go.wit.com/gui/toolkits/nocui
|
||||||
|
|
||||||
|
go 1.21.4
|
||||||
|
|
||||||
|
require (
|
||||||
|
go.wit.com/gui/widget v0.0.0-20240105185907-84aafa536a93
|
||||||
|
go.wit.com/log v0.4.2
|
||||||
|
)
|
||||||
|
|
||||||
|
require go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9 // indirect
|
|
@ -0,0 +1,6 @@
|
||||||
|
go.wit.com/gui/widget v0.0.0-20240105185907-84aafa536a93 h1:zCzaHvXJJ/rWXmDc/v79VvM6W2lxxzJGfnW2lHCv3Ho=
|
||||||
|
go.wit.com/gui/widget v0.0.0-20240105185907-84aafa536a93/go.mod h1:A6/FaiFQtAHTjgo7c4FrokXe6bXX1Cowo35b2Lgi31E=
|
||||||
|
go.wit.com/log v0.4.2 h1:oYCOD7qCY0A+LsrQXPv5ETtVyD8AhIHgvNBMdly9hy0=
|
||||||
|
go.wit.com/log v0.4.2/go.mod h1:EZLvivLZpMoXl5AUBArH0zsIgr+c+WyNXm14BCF+sdw=
|
||||||
|
go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9 h1:UEX2EzLQPzLTfy/kUFQD7OXtvKn8wk/+jpDOkbl4ff4=
|
||||||
|
go.wit.com/spew v0.0.0-20240101141411-c7b8e91573c9/go.mod h1:qBpgJXThMMT15vym7/E4Ur9y8oOo2nP7t2RP52QHUNw=
|
Loading…
Reference in New Issue