diff options
Diffstat (limited to 'click.go')
| -rw-r--r-- | click.go | 102 |
1 files changed, 43 insertions, 59 deletions
@@ -1,8 +1,6 @@ package main import ( - "fmt" - "github.com/awesome-gocui/gocui" "go.wit.com/log" "go.wit.com/toolkits/tree" @@ -181,55 +179,50 @@ func (w *guiWidget) doWidgetClick() { case widget.Button: // doUserEvent(n) me.myTree.SendUserEvent(w.node) - case widget.Dropdown: - log.Log(NOW, "do the dropdown here") + case widget.Combobox: + log.Log(NOW, "do the combobox here") var ddItems string for i, s := range w.vals { log.Log(NOW, "ddItem:", w.String(), i, s) ddItems += s + "\n" } if me.ddview == nil { - me.ddview = addDropdown() - tk := me.ddview.TK.(*guiWidget) - tk.labelN = ddItems - tk.SetText(ddItems) - tk.gocuiSize.w0 = 20 - tk.gocuiSize.w1 = 40 - tk.gocuiSize.h0 = 10 - tk.gocuiSize.h1 = 25 - tk.v, _ = me.baseGui.SetView("ddview", - tk.gocuiSize.w0, - tk.gocuiSize.h0, - tk.gocuiSize.w1, - tk.gocuiSize.h1, 0) - if tk.v == nil { - return - } - tk.v.Wrap = true - tk.v.Frame = true - tk.v.Clear() - fmt.Fprint(tk.v, ddItems) - tk.SetVisible(true) - return + me.ddview = makeDropdownView(ddItems) } - var tk *guiWidget - tk = me.ddview.TK.(*guiWidget) - log.Log(NOW, "doWidgetClick() visible =", tk.Visible()) - if tk.Visible() { - tk.SetVisible(false) - me.baseGui.DeleteView("ddview") - tk.v = nil - } else { - me.ddNode = w.node - log.Log(NOW, "new dns list should be set to:", ddItems) - tk.labelN = ddItems - tk.SetText(ddItems) - tk.SetVisible(true) - fmt.Fprint(tk.v, ddItems) + showDropdownItems(ddItems) + me.ddNode = w.node + case widget.Dropdown: + log.Log(NOW, "do the dropdown here") + var ddItems string + for i, s := range w.vals { + log.Log(NOW, "ddItem:", w.String(), i, s) + ddItems += s + "\n" } - for i, s := range tk.vals { - log.Log(NOW, "AddText()", tk.String(), i, s) + if me.ddview == nil { + me.ddview = makeDropdownView(ddItems) } + showDropdownItems(ddItems) + me.ddNode = w.node + /* + var tk *guiWidget + tk = me.ddview.TK.(*guiWidget) + log.Log(NOW, "doWidgetClick() visible =", tk.Visible()) + if tk.Visible() { + tk.SetVisible(false) + me.baseGui.DeleteView("ddview") + tk.v = nil + } else { + me.ddNode = w.node + log.Log(NOW, "new dns list should be set to:", ddItems) + tk.labelN = ddItems + tk.SetText(ddItems) + tk.SetVisible(true) + fmt.Fprint(tk.v, ddItems) + } + for i, s := range tk.vals { + log.Log(NOW, "AddText()", tk.String(), i, s) + } + */ default: } } @@ -300,14 +293,19 @@ func findUnderMouse() *tree.Node { var f func(n *tree.Node) w, h := me.baseGui.MousePosition() + ddTK := me.ddview.TK.(*guiWidget) + // if the dropdown view is visable, close it + if ddTK.Visible() { + ddTK.dropdownClicked(w, h) + return me.ddview + } + // find buttons that are below where the mouse button click f = func(n *tree.Node) { var widget *guiWidget widget = n.TK.(*guiWidget) + // ignore widgets that are not visible - if widget.node.WidgetId == 2222 { - widget.SetVisible(false) - } if widget.Visible() { if (widget.gocuiSize.w0 <= w) && (w <= widget.gocuiSize.w1) && (widget.gocuiSize.h0 <= h) && (h <= widget.gocuiSize.h1) { @@ -315,20 +313,6 @@ func findUnderMouse() *tree.Node { found = n } } - /* - if n == me.ddview { - tk := me.ddview.TK.(*guiWidget) - log.Log(NOW, "findUnderMouse() found ddview") - if tk.Visible() { - 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.Log(NOW, "findUnderMouse() I was lying, actually it's not found") - } - } - */ for _, child := range widget.children { f(child.node) |
