summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--click.go34
-rw-r--r--dropdown.go32
-rw-r--r--log.go8
-rw-r--r--mouse.go4
-rw-r--r--plugin.go2
-rw-r--r--widget.go23
6 files changed, 58 insertions, 45 deletions
diff --git a/click.go b/click.go
index 10606b0..33e753c 100644
--- a/click.go
+++ b/click.go
@@ -13,15 +13,15 @@ func (w *guiWidget) doWidgetClick() {
/*
case widget.Root:
// THIS IS THE BEGINING OF THE LAYOUT
- log.Log(NOW, "doWidgetClick()", w.String())
+ log.Log(GOCUI, "doWidgetClick()", w.String())
wRoot := me.treeRoot.TK.(*guiWidget)
wRoot.redoWindows(0, 0)
case widget.Flag:
- log.Log(NOW, "doWidgetClick() FLAG widget name =", w.String())
- log.Log(NOW, "doWidgetClick() if this is the dropdown menu, handle it here?")
+ log.Log(GOCUI, "doWidgetClick() FLAG widget name =", w.String())
+ log.Log(GOCUI, "doWidgetClick() if this is the dropdown menu, handle it here?")
*/
case widget.Window:
- log.Log(NOW, "doWidgetClick() START on window", w.String())
+ log.Log(GOCUI, "doWidgetClick() START on window", w.String())
// if the user clicked on the current window, do nothing
/* Ignore this for now and redraw the window anyway
if me.currentWindow == w {
@@ -43,7 +43,7 @@ func (w *guiWidget) doWidgetClick() {
me.currentWindow.isCurrent = true
// draw the current window
- log.Log(NOW, "doWidgetClick() set currentWindow to", w.String())
+ log.Log(GOCUI, "doWidgetClick() set currentWindow to", w.String())
w.setColor(&colorActiveW)
w.DrawAt(3, 2)
w.placeWidgets(3, 2) // compute the sizes & places for each widget
@@ -88,9 +88,9 @@ func (w *guiWidget) doWidgetClick() {
case widget.Box:
// w.showWidgetPlacement(logNow, "drawTree()")
if w.node.State.Direction == widget.Horizontal {
- log.Log(NOW, "BOX IS HORIZONTAL", w.String())
+ log.Log(GOCUI, "BOX IS HORIZONTAL", w.String())
} else {
- log.Log(NOW, "BOX IS VERTICAL", w.String())
+ log.Log(GOCUI, "BOX IS VERTICAL", w.String())
}
w.placeWidgets(w.startW, w.startH)
w.toggleTree()
@@ -98,11 +98,11 @@ func (w *guiWidget) doWidgetClick() {
// doUserEvent(n)
me.myTree.SendFromUser(w.node)
case widget.Combobox:
- log.Log(NOW, "do the combobox here")
+ log.Log(GOCUI, "do the combobox here")
w.showDropdown()
me.dropdownW = w
case widget.Dropdown:
- log.Log(NOW, "do the dropdown here")
+ log.Log(GOCUI, "do the dropdown here")
w.showDropdown()
me.dropdownW = w
default:
@@ -112,7 +112,7 @@ func (w *guiWidget) doWidgetClick() {
func click(g *gocui.Gui, v *gocui.View) error {
mouseW, mouseH := me.baseGui.MousePosition()
- log.Log(NOW, "click() START gocui name:", v.Name())
+ log.Log(GOCUI, "click() START gocui name:", v.Name())
w := findUnderMouse()
// if the dropdown view is visable, process it no matter what
@@ -126,7 +126,7 @@ func click(g *gocui.Gui, v *gocui.View) error {
if w == nil {
log.Error(errors.New("click() could not find widget for view =" + v.Name()))
} else {
- log.Log(NOW, "click() Found widget =", w.node.WidgetId, w.String(), ",", w.labelN)
+ log.Log(GOCUI, "click() Found widget =", w.node.WidgetId, w.String(), ",", w.labelN)
w.doWidgetClick()
}
@@ -134,7 +134,7 @@ func click(g *gocui.Gui, v *gocui.View) error {
realTK := rootTK.findWidgetByView(v)
if realTK == nil {
log.Error(errors.New("toolkit click() out of reality with gocui. v.Name() not in binary tree " + v.Name()))
- log.Log(NOW, "click() END FAILURE ON gocui v.Name =", v.Name())
+ log.Log(GOCUI, "click() END FAILURE ON gocui v.Name =", v.Name())
// return nil // otherwise gocui exits
}
@@ -145,19 +145,19 @@ func click(g *gocui.Gui, v *gocui.View) error {
return nil
}
if nameTK.v == nil {
- log.Log(NOW, "click() maybe this widget has had it's view distroyed?", nameTK.cuiName, nameTK.WidgetType)
- log.Log(NOW, "yep. it's gone now")
+ log.Log(GOCUI, "click() maybe this widget has had it's view distroyed?", nameTK.cuiName, nameTK.WidgetType)
+ log.Log(GOCUI, "yep. it's gone now")
return nil
}
// SetCurrentView dies if it's sent an non-existent view
if _, err := g.SetCurrentView(v.Name()); err != nil {
- log.Log(NOW, "click() END v.Name =", v.Name(), "err =", err)
+ log.Log(GOCUI, "click() END v.Name =", v.Name(), "err =", err)
// return err // return causes gocui.MainLoop() to exit. Do we ever want that to happen here?
return nil
}
- log.Log(NOW, "click() END gocui name:", v.Name())
+ log.Log(GOCUI, "click() END gocui name:", v.Name())
return nil
}
@@ -186,7 +186,6 @@ func findUnderMouse() *guiWidget {
var found *guiWidget
// widgets has everything that matches
for _, w := range widgets {
- w.showWidgetPlacement("findUnderMouse() FOUND")
// prioritize window buttons. This means if some code covers
// up the window widgets, then it will ignore everything else
// and allow the user (hopefully) to redraw or switch windows
@@ -194,6 +193,7 @@ func findUnderMouse() *guiWidget {
if w.WidgetType == widget.Window {
return w
}
+ // w.showWidgetPlacement("findUnderMouse() FOUND")
found = w
}
return found
diff --git a/dropdown.go b/dropdown.go
index 9f5e4aa..24fb4c6 100644
--- a/dropdown.go
+++ b/dropdown.go
@@ -73,16 +73,16 @@ func (tk *guiWidget) showDropdown() {
// var items []string
// items = tk.node.State.Strings
//for i, s := range items {
- for i, s := range tk.vals {
- log.Log(NOW, "showDropdown()", tk.String(), i, s)
+ for i, s := range tk.node.Strings() {
+ log.Log(GOCUI, "showDropdown()", tk.String(), i, s)
ddItems += s + "\n"
}
- log.Log(NOW, "new dropdown items should be set to:", ddItems)
+ log.Log(GOCUI, "new dropdown items should be set to:", ddItems)
sizeW, sizeH := tk.Size()
- log.Log(NOW, "showDropdown() size W,H=", sizeW, sizeH)
+ log.Log(GOCUI, "showDropdown() size W,H=", sizeW, sizeH)
startW, startH := tk.Position()
- log.Log(NOW, "showDropdown() location W,H=", startW, startH)
+ log.Log(GOCUI, "showDropdown() location W,H=", startW, startH)
me.dropdownV.MoveToOffset(startW+3, startH+2)
me.dropdownV.labelN = ddItems
me.dropdownV.Show()
@@ -90,7 +90,7 @@ func (tk *guiWidget) showDropdown() {
func hideDDview() error {
w, h := me.baseGui.MousePosition()
- log.Log(NOW, "hide dropdown menu() view msgMouseDown (w,h) =", w, h)
+ log.Log(GOCUI, "hide dropdown menu() view msgMouseDown (w,h) =", w, h)
if me.dropdownV == nil {
return gocui.ErrUnknownView
}
@@ -103,7 +103,7 @@ func hideDDview() error {
func showDDview() error {
w, h := me.baseGui.MousePosition()
- log.Log(NOW, "show dropdown menu() view msgMouseDown (w,h) =", w, h)
+ log.Log(GOCUI, "show dropdown menu() view msgMouseDown (w,h) =", w, h)
if me.dropdownV == nil {
return gocui.ErrUnknownView
}
@@ -119,21 +119,21 @@ func (w *guiWidget) dropdownClicked(mouseW, mouseH int) string {
w.Hide()
startW, startH := w.Position()
- log.Log(NOW, "dropdownClicked() start (w,h) =", startW, startH)
- log.Log(NOW, "dropdownClicked() at (w,h) =", mouseW, mouseH)
+ log.Log(GOCUI, "dropdownClicked() start (w,h) =", startW, startH)
+ log.Log(GOCUI, "dropdownClicked() at (w,h) =", mouseW, mouseH)
itemNumber := mouseH - startH
items := strings.Split(w.labelN, "\n")
- log.Log(NOW, "dropdownClicked() look for item", itemNumber, "len(items) =", len(items))
+ log.Log(GOCUI, "dropdownClicked() look for item", itemNumber, "len(items) =", len(items))
if itemNumber < 1 {
return ""
}
if len(items) >= itemNumber {
- log.Log(NOW, "dropdownClicked() found", items[itemNumber-1])
+ log.Log(GOCUI, "dropdownClicked() found", items[itemNumber-1])
if items[itemNumber-1] != "" {
if me.dropdownW != nil {
- log.Log(NOW, "dropdownClicked() send event for", me.dropdownW.cuiName, me.dropdownW.WidgetType)
+ log.Log(GOCUI, "dropdownClicked() send event for", me.dropdownW.cuiName, me.dropdownW.WidgetType)
me.dropdownW.SetText(items[itemNumber-1])
me.dropdownW.node.SetCurrentS(items[itemNumber-1])
me.myTree.SendUserEvent(me.dropdownW.node)
@@ -146,11 +146,11 @@ func (w *guiWidget) dropdownClicked(mouseW, mouseH int) string {
func dropdownUnclicked(mouseX, mouseH int) {
if me.dropdownV == nil {
- log.Log(NOW, "mouseUp() dropdownV = nil", mouseX, mouseH)
+ log.Log(GOCUI, "mouseUp() dropdownV = nil", mouseX, mouseH)
return
}
tk := me.dropdownV
- log.Log(NOW, "mouseUp() view msgMouseDown (check here for dropdown menu click) (w,h) =", mouseX, mouseH)
- log.Log(NOW, "mouseUp() ddview is the thing that was clicked", mouseX, mouseH)
- log.Log(NOW, "mouseUp() find out what the string is here", mouseX, mouseH, tk.gocuiSize.h1)
+ log.Log(GOCUI, "mouseUp() view msgMouseDown (check here for dropdown menu click) (w,h) =", mouseX, mouseH)
+ log.Log(GOCUI, "mouseUp() ddview is the thing that was clicked", mouseX, mouseH)
+ log.Log(GOCUI, "mouseUp() find out what the string is here", mouseX, mouseH, tk.gocuiSize.h1)
}
diff --git a/log.go b/log.go
index c7cd12d..260dec9 100644
--- a/log.go
+++ b/log.go
@@ -12,6 +12,7 @@ var outputS []string
var NOW *log.LogFlag
var INFO *log.LogFlag
+var GOCUI *log.LogFlag
var SPEW *log.LogFlag
var WARN *log.LogFlag
@@ -19,9 +20,14 @@ var WARN *log.LogFlag
var ERROR *log.LogFlag
func init() {
- full := "go.wit.com/toolkits/gocui"
+ full := "go.wit.com/gui"
short := "gocui"
+ GOCUI = log.NewFlag("GOCUI", false, full, short, "gocui internals")
+
+ full = "go.wit.com/toolkits/gocui"
+ short = "gocui"
+
NOW = log.NewFlag("NOW", true, full, short, "temp debugging stuff")
INFO = log.NewFlag("INFO", false, full, short, "normal debugging stuff")
diff --git a/mouse.go b/mouse.go
index 7488a07..08e2e5d 100644
--- a/mouse.go
+++ b/mouse.go
@@ -27,7 +27,7 @@ func mouseMove(g *gocui.Gui) {
func msgDown(g *gocui.Gui, v *gocui.View) error {
initialMouseX, initialMouseY = g.MousePosition()
- log.Log(NOW, "msgDown() X,Y", initialMouseX, initialMouseY)
+ log.Log(GOCUI, "msgDown() X,Y", initialMouseX, initialMouseY)
if vx, vy, _, _, err := g.ViewPosition("msg"); err == nil {
xOffset = initialMouseX - vx
yOffset = initialMouseY - vy
@@ -73,7 +73,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.Log(NOW, "mouseDown() about to write out message to 'globalDown' view. msg =", msg)
+ log.Log(GOCUI, "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
diff --git a/plugin.go b/plugin.go
index 1d0ec21..8e95065 100644
--- a/plugin.go
+++ b/plugin.go
@@ -86,10 +86,8 @@ func newaction(n *tree.Node, atype widget.ActionType) {
w := n.TK.(*guiWidget)
switch atype {
case widget.Show:
- log.Log(NOW, "Show() HERE. a.Hidden() was =", n.Hidden())
w.Show()
case widget.Hide:
- log.Log(NOW, "Hide() HERE. a.State.Hidden was =", n.Hidden())
w.Hide()
case widget.Move:
log.Log(NOW, "attempt to move() =", atype, n.WidgetType, n.ProgName())
diff --git a/widget.go b/widget.go
index a7747e8..d72f957 100644
--- a/widget.go
+++ b/widget.go
@@ -65,7 +65,7 @@ func setupCtrlDownWidget() {
func (w *guiWidget) deleteView() {
// make sure the view isn't really there
- log.Log(NOW, "deleteView()", w.cuiName, w.WidgetType, w.node.WidgetId)
+ log.Log(GOCUI, "deleteView()", w.cuiName, w.WidgetType, w.node.WidgetId)
me.baseGui.DeleteView(w.cuiName)
w.v = nil
}
@@ -75,8 +75,8 @@ func (w *guiWidget) IsCurrent() bool {
return w.isCurrent
}
if w.node.WidgetType == widget.Window {
- log.Log(NOW, "IsCurrent() found current window", w.cuiName, w.String())
- log.Log(NOW, "IsCurrent() window w.isCurrent =", w.isCurrent)
+ log.Log(GOCUI, "IsCurrent() found current window", w.cuiName, w.String())
+ log.Log(GOCUI, "IsCurrent() window w.isCurrent =", w.isCurrent)
return w.isCurrent
}
if w.node.WidgetType == widget.Root {
@@ -125,15 +125,24 @@ func (w *guiWidget) Show() {
return
}
+ if w.node.WidgetType == widget.Dropdown {
+ log.Log(NOW, "Show() dropdown", w.cuiName, w.String())
+ log.Log(NOW, "Show() dropdown n.Strings() =", w.node.Strings())
+ }
+ if w.node.WidgetType == widget.Combobox {
+ log.Log(NOW, "Show() dropdown", w.cuiName, w.String())
+ log.Log(NOW, "Show() dropdown n.Strings() =", w.node.Strings())
+ }
+
// if the widget is not in the current displayed windo
// then ignore it
- log.Log(NOW, "Show() widget =", w.cuiName, w.String())
- log.Log(NOW, "Show() w.IsCurrent() returned", w.IsCurrent())
+ log.Log(GOCUI, "Show() widget =", w.cuiName, w.String())
+ log.Log(GOCUI, "Show() w.IsCurrent() returned", w.IsCurrent())
if !w.IsCurrent() {
- log.Log(NOW, "Show() NOT drawing", w.cuiName, w.String())
+ log.Log(GOCUI, "Show() NOT drawing", w.cuiName, w.String())
return
}
- log.Log(NOW, "Show() drawing", w.cuiName, w.String())
+ log.Log(GOCUI, "Show() drawing", w.cuiName, w.String())
// finally, check if the widget State is hidden or not
if w.node.Hidden() {