summaryrefslogtreecommitdiff
path: root/click.go
diff options
context:
space:
mode:
Diffstat (limited to 'click.go')
-rw-r--r--click.go102
1 files changed, 43 insertions, 59 deletions
diff --git a/click.go b/click.go
index 4c5e6ae..e41d3b0 100644
--- a/click.go
+++ b/click.go
@@ -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)