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:
|
||||
reset
|
||||
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
|
||||
|
||||
import (
|
||||
log "go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -19,7 +20,7 @@ func (n *node) setFake() {
|
|||
fakeStartHeight = me.TabH
|
||||
fakeStartWidth += me.FakeW
|
||||
}
|
||||
if (logInfo) {
|
||||
if (true) {
|
||||
n.showView()
|
||||
}
|
||||
}
|
||||
|
@ -27,10 +28,10 @@ func (n *node) setFake() {
|
|||
// set the widget start width & height
|
||||
func (n *node) addWidget() {
|
||||
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 {
|
||||
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
|
||||
n.setFake()
|
||||
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 (
|
||||
"fmt"
|
||||
"github.com/awesome-gocui/gocui"
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -25,7 +26,7 @@ func unsetCurrent(n *node) {
|
|||
// of the current widgets if that widget is supposed
|
||||
// to be in current display
|
||||
func (n *node) updateCurrent() {
|
||||
log(true, "updateCurrent()", n.Name)
|
||||
log.Log(NOW, "updateCurrent()", n.Name)
|
||||
if n.WidgetType == widget.Tab {
|
||||
if n.IsCurrent() {
|
||||
// n.tk.color = &colorActiveT
|
||||
|
@ -83,18 +84,18 @@ func setCurrentTab(n *node) {
|
|||
w.isCurrent = true
|
||||
p := n.parent.tk
|
||||
p.isCurrent = true
|
||||
log(true, "setCurrent()", n.Name)
|
||||
log.Log(NOW, "setCurrent()", n.Name)
|
||||
}
|
||||
|
||||
func (n *node) doWidgetClick() {
|
||||
switch n.WidgetType {
|
||||
case widget.Root:
|
||||
// THIS IS THE BEGINING OF THE LAYOUT
|
||||
log(true, "doWidgetClick()", n.Name)
|
||||
log.Log(NOW, "doWidgetClick()", n.Name)
|
||||
redoWindows(0,0)
|
||||
case widget.Flag:
|
||||
log(true, "doWidgetClick() FLAG widget name =", n.Name)
|
||||
log(true, "doWidgetClick() if this is the dropdown menu, handle it here?")
|
||||
log.Log(NOW, "doWidgetClick() FLAG widget name =", n.Name)
|
||||
log.Log(NOW, "doWidgetClick() if this is the dropdown menu, handle it here?")
|
||||
case widget.Window:
|
||||
if (me.currentWindow == n) {
|
||||
return
|
||||
|
@ -111,7 +112,7 @@ func (n *node) doWidgetClick() {
|
|||
n.redoTabs(me.TabW, me.TabH)
|
||||
for _, child := range n.children {
|
||||
if (child.currentTab == true) {
|
||||
log(true, "FOUND CURRENT TAB", child.Name)
|
||||
log.Log(NOW, "FOUND CURRENT TAB", child.Name)
|
||||
setCurrentTab(child)
|
||||
child.placeWidgets(me.RawW, me.RawH)
|
||||
child.showWidgets()
|
||||
|
@ -166,16 +167,16 @@ func (n *node) doWidgetClick() {
|
|||
case widget.Box:
|
||||
// w.showWidgetPlacement(logNow, "drawTree()")
|
||||
if (n.horizontal) {
|
||||
log(true, "BOX IS HORIZONTAL", n.Name)
|
||||
log.Log(NOW, "BOX IS HORIZONTAL", n.Name)
|
||||
} else {
|
||||
log(true, "BOX IS VERTICAL", n.Name)
|
||||
log.Log(NOW, "BOX IS VERTICAL", n.Name)
|
||||
}
|
||||
// n.placeWidgets()
|
||||
n.toggleTree()
|
||||
case widget.Button:
|
||||
n.doUserEvent()
|
||||
case widget.Dropdown:
|
||||
log(true, "do the dropdown here")
|
||||
log.Log(NOW, "do the dropdown here")
|
||||
if (me.ddview == nil) {
|
||||
me.ddview = addDropdown()
|
||||
tk := me.ddview.tk
|
||||
|
@ -198,7 +199,7 @@ func (n *node) doWidgetClick() {
|
|||
me.ddview.SetVisible(true)
|
||||
return
|
||||
}
|
||||
log(true, "doWidgetClick() visible =", me.ddview.Visible())
|
||||
log.Log(NOW, "doWidgetClick() visible =", me.ddview.Visible())
|
||||
if (me.ddview.Visible()) {
|
||||
me.ddview.SetVisible(false)
|
||||
me.baseGui.DeleteView("ddview")
|
||||
|
@ -206,17 +207,17 @@ func (n *node) doWidgetClick() {
|
|||
} else {
|
||||
var dnsList string
|
||||
for i, s := range n.vals {
|
||||
log(logNow, "AddText()", n.Name, i, s)
|
||||
log.Log(NOW, "AddText()", n.Name, i, s)
|
||||
dnsList += s + "\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.SetText(dnsList)
|
||||
me.ddview.SetVisible(true)
|
||||
}
|
||||
for i, s := range n.vals {
|
||||
log(logNow, "AddText()", n.Name, i, s)
|
||||
log.Log(NOW, "AddText()", n.Name, i, s)
|
||||
}
|
||||
default:
|
||||
}
|
||||
|
@ -240,7 +241,7 @@ func (n *node) drawTree(draw bool) {
|
|||
if (w == nil) {
|
||||
return
|
||||
}
|
||||
n.showWidgetPlacement(logNow, "drawTree()")
|
||||
n.showWidgetPlacement(true, "drawTree()")
|
||||
if (draw) {
|
||||
// w.textResize()
|
||||
n.showView()
|
||||
|
@ -257,27 +258,27 @@ func click(g *gocui.Gui, v *gocui.View) error {
|
|||
// var l string
|
||||
// var err error
|
||||
|
||||
log(logVerbose, "click() START", v.Name())
|
||||
log.Log(INFO, "click() START", v.Name())
|
||||
// n := me.rootNode.findWidgetName(v.Name())
|
||||
n := findUnderMouse()
|
||||
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") {
|
||||
log(logNow, "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() this is the dropdown menu. set a flag here what did I click? where is the mouse?")
|
||||
log.Log(NOW, "click() set a global dropdown clicked flag=true here")
|
||||
me.ddClicked = true
|
||||
}
|
||||
n.doWidgetClick()
|
||||
} 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 {
|
||||
log(logNow, "click() END err =", err)
|
||||
log.Log(NOW, "click() END err =", err)
|
||||
return err
|
||||
}
|
||||
|
||||
log(logVerbose, "click() END")
|
||||
log.Log(NOW, "click() END")
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -299,14 +300,14 @@ func findUnderMouse() *node {
|
|||
}
|
||||
}
|
||||
if (n == me.ddview) {
|
||||
log(true, "findUnderMouse() found ddview")
|
||||
log.Log(NOW, "findUnderMouse() found ddview")
|
||||
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
|
||||
// find the actual value here and set the dropdown widget
|
||||
me.baseGui.DeleteView("ddview")
|
||||
} 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
|
||||
for _, n := range widgets {
|
||||
//log(logNow, "ctrlDown() FOUND widget", widget.id, widget.name)
|
||||
n.showWidgetPlacement(logNow, "findUnderMouse() FOUND")
|
||||
n.showWidgetPlacement(true, "findUnderMouse() FOUND")
|
||||
}
|
||||
return found
|
||||
}
|
||||
|
@ -351,6 +352,6 @@ func ctrlDown(g *gocui.Gui, v *gocui.View) error {
|
|||
} else {
|
||||
me.ctrlDown.showView()
|
||||
}
|
||||
me.ctrlDown.showWidgetPlacement(logNow, "ctrlDown:")
|
||||
me.ctrlDown.showWidgetPlacement(true, "ctrlDown:")
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ package main
|
|||
import (
|
||||
"math/rand"
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
//w.v.SelBgColor = gocui.ColorCyan
|
||||
|
@ -73,10 +75,10 @@ func (n *node) setColor(newColor *colorT) {
|
|||
return
|
||||
}
|
||||
if (tk.color == nil) {
|
||||
log(true, "Set the node to color = nil")
|
||||
log.Log(NOW, "Set the node to color = nil")
|
||||
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()
|
||||
}
|
||||
|
||||
|
@ -87,7 +89,7 @@ func (n *node) setDefaultWidgetColor() {
|
|||
func (n *node) setDefaultHighlight() {
|
||||
w := n.tk
|
||||
if (w.v == nil) {
|
||||
log(logError, "SetColor() failed on view == nil")
|
||||
log.Log(ERROR, "SetColor() failed on view == nil")
|
||||
return
|
||||
}
|
||||
w.v.SelBgColor = gocui.ColorGreen
|
||||
|
@ -97,7 +99,7 @@ func (n *node) setDefaultHighlight() {
|
|||
func randColor() gocui.Attribute {
|
||||
colors := []string{"Green", "#FFAA55", "Yellow", "Blue", "Red", "Black", "White"}
|
||||
i := rand.Intn(len(colors))
|
||||
log(true, "randColor() i =", i)
|
||||
log.Log(NOW, "randColor() i =", i)
|
||||
return gocui.GetColor(colors[i])
|
||||
}
|
||||
|
||||
|
@ -107,7 +109,7 @@ func (n *node) redoColor(draw bool) {
|
|||
return
|
||||
}
|
||||
|
||||
sleep(.05)
|
||||
log.Sleep(.05)
|
||||
n.setDefaultHighlight()
|
||||
n.setDefaultWidgetColor()
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -10,7 +11,7 @@ func (n *node) dumpTree(draw bool) {
|
|||
if (w == nil) {
|
||||
return
|
||||
}
|
||||
n.showWidgetPlacement(logNow, "dumpTree()")
|
||||
n.showWidgetPlacement(true, "dumpTree()")
|
||||
|
||||
for _, child := range n.children {
|
||||
child.dumpTree(draw)
|
||||
|
@ -19,7 +20,7 @@ func (n *node) dumpTree(draw bool) {
|
|||
|
||||
func (n *node) showWidgetPlacement(b bool, s string) {
|
||||
if (n == nil) {
|
||||
log(logError, "WTF w == nil")
|
||||
log.Log(ERROR, "WTF w == nil")
|
||||
return
|
||||
}
|
||||
w := n.tk
|
||||
|
@ -27,7 +28,7 @@ func (n *node) showWidgetPlacement(b bool, s string) {
|
|||
var s1 string
|
||||
var pId int
|
||||
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
|
||||
} else {
|
||||
pId = n.parent.WidgetId
|
||||
|
@ -46,11 +47,11 @@ func (n *node) showWidgetPlacement(b bool, s string) {
|
|||
}
|
||||
}
|
||||
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) {
|
||||
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() {
|
||||
|
|
|
@ -7,6 +7,8 @@ package main
|
|||
import (
|
||||
"errors"
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
// This initializes the gocui package
|
||||
|
@ -47,21 +49,21 @@ func gocuiMain() {
|
|||
func gocuiEvent(g *gocui.Gui) error {
|
||||
maxX, maxY := g.Size()
|
||||
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 {
|
||||
moveMsg(g)
|
||||
}
|
||||
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")
|
||||
if (me.logStdout != nil) {
|
||||
// setOutput(me.logStdout)
|
||||
}
|
||||
} else {
|
||||
log(logInfo, "output widget already exists", maxX, maxY, mx, my)
|
||||
log.Log(INFO, "output widget already exists", maxX, maxY, mx, my)
|
||||
}
|
||||
mouseMove(g)
|
||||
log(logVerbose, "handleEvent() END ", maxX, maxY, mx, my, msgMouseDown)
|
||||
log.Log(INFO, "handleEvent() END ", maxX, maxY, mx, my, msgMouseDown)
|
||||
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?
|
||||
v := SetView("global", 5, 10, 5, 10, 0) // x0, x1, y1, y2, overlap
|
||||
if (v == nil) {
|
||||
log(logError, "setFrame() global failed")
|
||||
log.Log(ERROR, "setFrame() global failed")
|
||||
}
|
||||
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 {
|
||||
if (me.baseGui == nil) {
|
||||
log(logError, "SetView() ERROR: me.baseGui == nil")
|
||||
log.Log(ERROR, "SetView() ERROR: me.baseGui == nil")
|
||||
return nil
|
||||
}
|
||||
|
||||
v, err := me.baseGui.SetView(name, x0, y0, x1, y1, overlaps)
|
||||
if err != nil {
|
||||
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
|
||||
}
|
||||
|
|
|
@ -5,8 +5,9 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"os"
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -117,12 +118,13 @@ func addDebugKeys(g *gocui.Gui) {
|
|||
// log to output window
|
||||
g.SetKeybinding("", 'o', gocui.ModNone,
|
||||
func(g *gocui.Gui, v *gocui.View) error {
|
||||
log.Log(ERROR, "TODO: re-implement this")
|
||||
if me.logStdout.Visible() {
|
||||
me.logStdout.SetVisible(false)
|
||||
setOutput(os.Stdout)
|
||||
// setOutput(os.Stdout)
|
||||
} else {
|
||||
me.logStdout.SetVisible(true)
|
||||
setOutput(me.logStdout.tk)
|
||||
// setOutput(me.logStdout.tk)
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
@ -145,23 +147,11 @@ func addDebugKeys(g *gocui.Gui) {
|
|||
a.B = true
|
||||
a.ActionType = widget.EnableDebug
|
||||
callback <- a
|
||||
logInfo = true
|
||||
logVerbose = true
|
||||
} else {
|
||||
logInfo = false
|
||||
logVerbose = false
|
||||
}
|
||||
return nil
|
||||
})
|
||||
g.SetKeybinding("", gocui.KeyCtrlV, gocui.ModNone,
|
||||
func(g *gocui.Gui, v *gocui.View) error {
|
||||
if (logVerbose) {
|
||||
logInfo = false
|
||||
logVerbose = false
|
||||
} else {
|
||||
logInfo = true
|
||||
logVerbose = true
|
||||
}
|
||||
return nil
|
||||
})
|
||||
|
||||
|
|
|
@ -6,24 +6,26 @@ package main
|
|||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
// sets defaults and establishes communication
|
||||
// to this toolkit from the wit/gui golang package
|
||||
func init() {
|
||||
log(logInfo, "Init() of awesome-gocui")
|
||||
log.Log(INFO, "Init() of awesome-gocui")
|
||||
|
||||
// init the config struct default values
|
||||
Set(&me, "default")
|
||||
|
||||
pluginChan = make(chan widget.Action)
|
||||
|
||||
log(logNow, "Init() start pluginChan")
|
||||
log.Log(NOW, "Init() start pluginChan")
|
||||
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()
|
||||
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..
|
||||
*/
|
||||
func catchActionChannel() {
|
||||
log(logInfo, "catchActionChannel() START")
|
||||
log.Log(INFO, "catchActionChannel() START")
|
||||
for {
|
||||
log(logInfo, "catchActionChannel() infinite for() loop restarted select on channel")
|
||||
log.Log(INFO, "catchActionChannel() infinite for() loop restarted select on channel")
|
||||
select {
|
||||
case a := <-pluginChan:
|
||||
if (me.baseGui == nil) {
|
||||
// something went wrong initializing the gocui
|
||||
log(logError,"ERROR: console did not initialize")
|
||||
log.Log(ERROR, "ERROR: console did not initialize")
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
@ -51,23 +53,23 @@ func catchActionChannel() {
|
|||
|
||||
func Exit() {
|
||||
// TODO: what should actually happen here?
|
||||
log(true, "Exit() here. doing standardExit()")
|
||||
log.Log(NOW, "Exit() here. doing standardExit()")
|
||||
standardExit()
|
||||
}
|
||||
|
||||
func standardExit() {
|
||||
log(true, "standardExit() doing baseGui.Close()")
|
||||
log.Log(NOW, "standardExit() doing baseGui.Close()")
|
||||
me.baseGui.Close()
|
||||
log(true, "standardExit() doing outf.Close()")
|
||||
log.Log(NOW, "standardExit() doing outf.Close()")
|
||||
outf.Close()
|
||||
// log(true, "standardExit() 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
|
||||
// induces a delay in case the callback channel is broken
|
||||
sleep(1)
|
||||
log(true, "standardExit() exit()")
|
||||
exit()
|
||||
log.Sleep(1)
|
||||
log.Log(NOW, "standardExit() exit()")
|
||||
os.Exit(0)
|
||||
}
|
||||
func sendBackQuit() {
|
||||
// send 'Quit' back to the program (?)
|
||||
|
@ -80,11 +82,12 @@ var outf *os.File
|
|||
|
||||
func main() {
|
||||
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)
|
||||
if err != nil {
|
||||
exit("error opening file: %v", err)
|
||||
log.Error(err, "error opening file: %v")
|
||||
os.Exit(0)
|
||||
}
|
||||
os.Stdout = outf
|
||||
defer outf.Close()
|
||||
|
@ -96,6 +99,6 @@ func main() {
|
|||
os.Stderr = ferr
|
||||
gocuiMain()
|
||||
|
||||
log(true, "MouseMain() closed")
|
||||
log.Log(NOW, "MouseMain() closed")
|
||||
standardExit()
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@ import (
|
|||
"errors"
|
||||
"fmt"
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
// 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 {
|
||||
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 {
|
||||
xOffset = initialMouseX - vx
|
||||
yOffset = initialMouseY - vy
|
||||
|
@ -35,7 +37,7 @@ func msgDown(g *gocui.Gui, v *gocui.View) error {
|
|||
|
||||
func hideDDview() error {
|
||||
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) {
|
||||
return gocui.ErrUnknownView
|
||||
}
|
||||
|
@ -48,7 +50,7 @@ func hideDDview() error {
|
|||
|
||||
func showDDview() error {
|
||||
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) {
|
||||
return gocui.ErrUnknownView
|
||||
}
|
||||
|
@ -61,23 +63,23 @@ func showDDview() error {
|
|||
|
||||
func mouseUp(g *gocui.Gui, v *gocui.View) error {
|
||||
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) {
|
||||
me.ddClicked = false
|
||||
log(true, "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() ddview is the thing that was clicked", w, h)
|
||||
log.Log(NOW, "mouseUp() find out what the string is here", w, h, me.ddview.tk.gocuiSize.h1)
|
||||
|
||||
var newZone string = ""
|
||||
if (me.ddNode != nil) {
|
||||
value := h - me.ddview.tk.gocuiSize.h0 - 1
|
||||
log(true, "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.ddview.tk.gocuiSize.h1 =", me.ddview.tk.gocuiSize.h1)
|
||||
log.Log(NOW, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
||||
valsLen := len(me.ddNode.vals)
|
||||
log(true, "mouseUp() value =", value, "valsLen =", valsLen)
|
||||
log(true, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
||||
log.Log(NOW, "mouseUp() value =", value, "valsLen =", valsLen)
|
||||
log.Log(NOW, "mouseUp() me.ddNode.vals =", me.ddNode.vals)
|
||||
if ((value >= 0) && (value < valsLen)) {
|
||||
newZone = me.ddNode.vals[value]
|
||||
log(true, "mouseUp() value =", value, "newZone =", newZone)
|
||||
log.Log(NOW, "mouseUp() value =", value, "newZone =", newZone)
|
||||
}
|
||||
}
|
||||
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"
|
||||
if (test == me.ddview) {
|
||||
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()
|
||||
} else {
|
||||
log(true, "show DDview() Mouse really down at:", mx, my)
|
||||
log.Log(NOW, "show DDview() Mouse really down at:", mx, my)
|
||||
showDDview()
|
||||
}
|
||||
return nil
|
||||
|
@ -138,7 +140,7 @@ func mouseDown(g *gocui.Gui, v *gocui.View) error {
|
|||
} else if x+len(msg)+1 > maxX-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 !errors.Is(err, gocui.ErrUnknownView) {
|
||||
return err
|
||||
|
|
|
@ -2,6 +2,8 @@ package main
|
|||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -9,7 +11,7 @@ func (n *node) placeBox(startW int, startH int) {
|
|||
if (n.WidgetType != widget.Box) {
|
||||
return
|
||||
}
|
||||
n.showWidgetPlacement(logNow, "boxS()")
|
||||
n.showWidgetPlacement(true, "boxS()")
|
||||
|
||||
newW := startW
|
||||
newH := startH
|
||||
|
@ -20,11 +22,11 @@ func (n *node) placeBox(startW int, startH int) {
|
|||
w := newR.w1 - newR.w0
|
||||
h := newR.h1 - newR.h0
|
||||
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
|
||||
newW += w
|
||||
} 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
|
||||
newH += h
|
||||
}
|
||||
|
@ -33,7 +35,7 @@ func (n *node) placeBox(startW int, startH int) {
|
|||
// just compute this every time?
|
||||
// newR := n.realGocuiSize()
|
||||
|
||||
n.showWidgetPlacement(logNow, "boxE()")
|
||||
n.showWidgetPlacement(true, "boxE()")
|
||||
}
|
||||
|
||||
func (n *node) placeWidgets(startW int, startH int) {
|
||||
|
@ -62,7 +64,7 @@ func (n *node) placeWidgets(startW int, startH int) {
|
|||
case widget.Group:
|
||||
// move the group to the parent's next location
|
||||
n.gocuiSetWH(startW, startH)
|
||||
n.showWidgetPlacement(logNow, "group()")
|
||||
n.showWidgetPlacement(true, "group()")
|
||||
|
||||
newW := startW + me.GroupPadW
|
||||
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) {
|
||||
w := n.tk
|
||||
n.showWidgetPlacement(logInfo, "grid0:")
|
||||
n.showWidgetPlacement(true, "grid0:")
|
||||
if (n.WidgetType != widget.Grid) {
|
||||
return
|
||||
}
|
||||
|
@ -103,12 +105,12 @@ func (n *node) placeGrid(startW int, startH int) {
|
|||
w.heights[child.AtH] = childH
|
||||
}
|
||||
// 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
|
||||
for _, child := range n.children {
|
||||
child.showWidgetPlacement(logInfo, "grid1:")
|
||||
child.showWidgetPlacement(true, "grid1:")
|
||||
|
||||
var totalW, totalH int
|
||||
for i, w := range w.widths {
|
||||
|
@ -126,11 +128,11 @@ func (n *node) placeGrid(startW int, startH int) {
|
|||
newW := startW + totalW
|
||||
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.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
|
||||
|
|
|
@ -3,11 +3,12 @@ package main
|
|||
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)
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
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)
|
||||
var w *guiWidget
|
||||
if (n != nil) {
|
||||
|
@ -22,7 +23,7 @@ func action(a *widget.Action) {
|
|||
} else {
|
||||
// this is done to protect the plugin being 'refreshed' with the
|
||||
// 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)
|
||||
}
|
||||
case widget.Show:
|
||||
|
@ -33,12 +34,12 @@ func action(a *widget.Action) {
|
|||
}
|
||||
case widget.Set:
|
||||
if a.WidgetType == widget.Flag {
|
||||
log(logNow, "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: set flag here", a.ActionType, a.WidgetType, a.Name)
|
||||
log.Log(NOW, "TODO: n.WidgetType =", n.WidgetType, "n.Name =", a.Name)
|
||||
} else {
|
||||
if (a.A == nil) {
|
||||
log(logError, "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. a == nil id =", a.WidgetId, "type =", a.WidgetType, "Name =", a.Name)
|
||||
log.Log(ERROR, "TODO: Set here. id =", a.WidgetId, "n.Name =", n.Name)
|
||||
} else {
|
||||
n.Set(a.A)
|
||||
}
|
||||
|
@ -48,38 +49,38 @@ func action(a *widget.Action) {
|
|||
case widget.AddText:
|
||||
n.AddText(a.S)
|
||||
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:
|
||||
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()
|
||||
case widget.Enable:
|
||||
if n.Visible() {
|
||||
// widget was already shown
|
||||
} else {
|
||||
log(logInfo, "Setting Visable to true", a.Name)
|
||||
log.Log(INFO, "Setting Visable to true", a.Name)
|
||||
n.SetVisible(true)
|
||||
}
|
||||
case widget.Disable:
|
||||
if n.Visible() {
|
||||
log(logInfo, "Setting Visable to false", a.Name)
|
||||
log.Log(INFO, "Setting Visable to false", a.Name)
|
||||
n.SetVisible(false)
|
||||
} else {
|
||||
// widget was already hidden
|
||||
}
|
||||
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) {
|
||||
if (n == nil) {
|
||||
log(logNow, "widget is nil")
|
||||
log.Log(NOW, "widget is nil")
|
||||
return
|
||||
}
|
||||
n.vals = append(n.vals, text)
|
||||
for i, s := range n.vals {
|
||||
log(logNow, "AddText()", n.Name, i, s)
|
||||
log.Log(NOW, "AddText()", n.Name, i, s)
|
||||
}
|
||||
n.SetText(text)
|
||||
}
|
||||
|
@ -87,7 +88,7 @@ func (n *node) AddText(text string) {
|
|||
func (n *node) SetText(text string) {
|
||||
var changed bool = false
|
||||
if (n == nil) {
|
||||
log(logNow, "widget is nil")
|
||||
log.Log(NOW, "widget is nil")
|
||||
return
|
||||
}
|
||||
if (n.Text != text) {
|
||||
|
@ -111,7 +112,7 @@ func (n *node) SetText(text string) {
|
|||
|
||||
func (n *node) Set(val any) {
|
||||
// w := n.tk
|
||||
log(logInfo, "Set() value =", val)
|
||||
log.Log(INFO, "Set() value =", val)
|
||||
|
||||
switch v := val.(type) {
|
||||
case bool:
|
||||
|
@ -122,6 +123,6 @@ func (n *node) Set(val any) {
|
|||
case int:
|
||||
n.I = val.(int)
|
||||
default:
|
||||
log(logError, "Set() unknown type =", val, v)
|
||||
log.Log(ERROR, "Set() unknown type =", val, v)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,6 +5,8 @@ import (
|
|||
"fmt"
|
||||
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -24,7 +26,7 @@ func showMsg(g *gocui.Gui, v *gocui.View) error {
|
|||
var l string
|
||||
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 {
|
||||
return err
|
||||
}
|
||||
|
@ -62,9 +64,9 @@ func makeOutputWidget(g *gocui.Gui, stringFromMouseClick string) *gocui.View {
|
|||
}
|
||||
v, err := g.View("msg")
|
||||
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 {
|
||||
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)
|
||||
|
@ -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)
|
||||
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) {
|
||||
log(true, "makeoutputwindow() create output window failed", err)
|
||||
log.Log(NOW, "makeoutputwindow() create output window failed", err)
|
||||
return 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
|
||||
} else {
|
||||
me.logStdout.tk.v = v
|
||||
|
|
|
@ -15,6 +15,8 @@ import (
|
|||
"sync"
|
||||
"strings"
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
)
|
||||
|
||||
// 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 {
|
||||
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")
|
||||
}
|
||||
|
||||
|
@ -203,7 +205,7 @@ func setField(field reflect.Value, defaultVal string, name string) error {
|
|||
// log("setField() Can't set value", field, defaultVal)
|
||||
return fmt.Errorf("Can't set value\n")
|
||||
} else {
|
||||
log(true, "setField() Can set value", name, defaultVal)
|
||||
log.Log(NOW, "setField() Can set value", name, defaultVal)
|
||||
}
|
||||
|
||||
switch field.Kind() {
|
||||
|
|
|
@ -4,6 +4,8 @@ package main
|
|||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -76,7 +78,7 @@ func redoWindows(nextW int, nextH int) {
|
|||
sizeW := w.Width() + me.WindowPadW
|
||||
sizeH := w.Height()
|
||||
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 {
|
||||
n.redoTabs(me.TabW, me.TabH)
|
||||
|
@ -103,7 +105,7 @@ func (p *node) redoTabs(nextW int, nextH int) {
|
|||
|
||||
sizeW := w.Width() + me.TabPadW
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,6 +8,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"github.com/awesome-gocui/gocui"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -26,7 +28,7 @@ func (n *node) textResize() bool {
|
|||
var changed bool = false
|
||||
|
||||
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)) {
|
||||
width = len(s)
|
||||
}
|
||||
|
@ -41,7 +43,7 @@ func (n *node) textResize() bool {
|
|||
changed = true
|
||||
}
|
||||
if (changed) {
|
||||
n.showWidgetPlacement(logNow, "textResize() changed")
|
||||
n.showWidgetPlacement(true, "textResize() changed")
|
||||
}
|
||||
return changed
|
||||
}
|
||||
|
@ -57,7 +59,7 @@ func (n *node) showView() {
|
|||
w := n.tk
|
||||
|
||||
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)
|
||||
}
|
||||
|
||||
|
@ -66,15 +68,15 @@ func (n *node) showView() {
|
|||
n.recreateView()
|
||||
}
|
||||
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()
|
||||
changed := n.textResize()
|
||||
|
||||
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 {
|
||||
log(logNow, "showView() Clear() and Fprint() here wId =", w.cuiName)
|
||||
log.Log(NOW, "showView() Clear() and Fprint() here wId =", w.cuiName)
|
||||
w.v.Clear()
|
||||
fmt.Fprint(w.v, n.Text)
|
||||
n.SetVisible(false)
|
||||
|
@ -89,17 +91,17 @@ func (n *node) showView() {
|
|||
return
|
||||
}
|
||||
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()
|
||||
return
|
||||
}
|
||||
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()
|
||||
return
|
||||
}
|
||||
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()
|
||||
return
|
||||
}
|
||||
|
@ -112,9 +114,9 @@ func (n *node) showView() {
|
|||
func (n *node) recreateView() {
|
||||
var err error
|
||||
w := n.tk
|
||||
log(logError, "recreateView() START", n.WidgetType, n.Name)
|
||||
log.Log(ERROR, "recreateView() START", n.WidgetType, n.Name)
|
||||
if (me.baseGui == nil) {
|
||||
log(logError, "recreateView() ERROR: me.baseGui == nil", w)
|
||||
log.Log(ERROR, "recreateView() ERROR: me.baseGui == nil", w)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -123,10 +125,10 @@ func (n *node) recreateView() {
|
|||
w.v = nil
|
||||
|
||||
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.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
|
||||
|
@ -136,13 +138,13 @@ func (n *node) recreateView() {
|
|||
|
||||
w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0)
|
||||
if err == nil {
|
||||
n.showWidgetPlacement(logError, "recreateView()")
|
||||
log(logError, "recreateView() internal plugin error err = nil")
|
||||
n.showWidgetPlacement(true, "recreateView()")
|
||||
log.Log(ERROR, "recreateView() internal plugin error err = nil")
|
||||
return
|
||||
}
|
||||
if !errors.Is(err, gocui.ErrUnknownView) {
|
||||
n.showWidgetPlacement(logError, "recreateView()")
|
||||
log(logError, "recreateView() internal plugin error error.IS()", err)
|
||||
n.showWidgetPlacement(true, "recreateView()")
|
||||
log.Log(ERROR, "recreateView() internal plugin error error.IS()", err)
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -161,7 +163,7 @@ func (n *node) recreateView() {
|
|||
w.v.Frame = w.frame
|
||||
w.v.Clear()
|
||||
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")
|
||||
|
||||
// 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
|
||||
}
|
||||
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)
|
||||
}
|
||||
log(logError, "recreateView() END")
|
||||
log.Log(ERROR, "recreateView() END")
|
||||
}
|
||||
|
||||
func (n *node) hideWidgets() {
|
||||
|
@ -210,7 +212,7 @@ func (n *node) showFake() {
|
|||
w := n.tk
|
||||
if (w.isFake) {
|
||||
n.setFake()
|
||||
n.showWidgetPlacement(logNow, "showFake:")
|
||||
n.showWidgetPlacement(true, "showFake:")
|
||||
n.showView()
|
||||
}
|
||||
for _, child := range n.children {
|
||||
|
@ -223,7 +225,7 @@ func (n *node) showWidgets() {
|
|||
if (w.isFake) {
|
||||
// don't display by default
|
||||
} else {
|
||||
n.showWidgetPlacement(logInfo, "current:")
|
||||
n.showWidgetPlacement(true, "current:")
|
||||
n.showView()
|
||||
}
|
||||
for _, child := range n.children {
|
||||
|
|
|
@ -2,6 +2,8 @@ package main
|
|||
|
||||
import (
|
||||
"strconv"
|
||||
|
||||
"go.wit.com/log"
|
||||
"go.wit.com/gui/widget"
|
||||
)
|
||||
|
||||
|
@ -16,7 +18,7 @@ func initWidget(n *node) *guiWidget {
|
|||
w.cuiName = strconv.Itoa(n.WidgetId)
|
||||
|
||||
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
|
||||
me.rootNode = n
|
||||
return w
|
||||
|
|
|
@ -5,7 +5,7 @@ package main
|
|||
*/
|
||||
|
||||
import (
|
||||
"go.wit.com/log"
|
||||
log "go.wit.com/log"
|
||||
)
|
||||
|
||||
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