diff options
Diffstat (limited to 'click.go')
| -rw-r--r-- | click.go | 146 |
1 files changed, 62 insertions, 84 deletions
@@ -10,7 +10,7 @@ import ( ) // set isCurrent = false everywhere -func unsetCurrent(w *guiWidget) { +func (w *guiWidget) unsetCurrent() { w.isCurrent = false if w.node.WidgetType == widget.Tab { @@ -19,56 +19,51 @@ func unsetCurrent(w *guiWidget) { } for _, child := range w.children { - unsetCurrent(child) + child.unsetCurrent() } } // when adding a new widget, this will update the display // of the current widgets if that widget is supposed // to be in current display -func updateCurrent(n *tree.Node) { - var w *guiWidget - w = n.TK.(*guiWidget) - +func (w *guiWidget) updateCurrent() { log.Log(NOW, "updateCurrent()", w.String()) - if n.WidgetType == widget.Tab { + if w.WidgetType == widget.Tab { if w.IsCurrent() { // n.tk.color = &colorActiveT - setColor(n, &colorActiveT) + w.setColor(&colorActiveT) w.hideView() w.showView() - setCurrentTab(n) + w.setCurrentTab() } else { // n.tk.color = &colorTab // n.setColor() } return } - if n.WidgetType == widget.Window { + if w.WidgetType == widget.Window { if w.IsCurrent() { // setCurrentWindow(n) } return } - if n.WidgetType == widget.Root { + if w.WidgetType == widget.Root { return } - updateCurrent(n.Parent) + w.parent.updateCurrent() } // shows the widgets in a window -func setCurrentWindow(n *tree.Node) { - var w *guiWidget - w = n.TK.(*guiWidget) +func (w *guiWidget) setCurrentWindow() { if w.IsCurrent() { return } - if n.WidgetType != widget.Window { + if w.WidgetType != widget.Window { return } var rootTK *guiWidget rootTK = me.treeRoot.TK.(*guiWidget) - unsetCurrent(rootTK) + rootTK.unsetCurrent() if w.hasTabs { // set isCurrent = true on the first tab @@ -82,53 +77,49 @@ func setCurrentWindow(n *tree.Node) { } // shows the widgets in a tab -func setCurrentTab(n *tree.Node) { - var w, p, rootTK *guiWidget - w = n.TK.(*guiWidget) - if n.WidgetType != widget.Tab { +func (w *guiWidget) setCurrentTab() { + var p, rootTK *guiWidget + if w.WidgetType != widget.Tab { return } rootTK = me.treeRoot.TK.(*guiWidget) - unsetCurrent(rootTK) + rootTK.unsetCurrent() w.isCurrent = true - p = n.Parent.TK.(*guiWidget) + p = w.parent p.isCurrent = true - log.Log(NOW, "setCurrent()", n.String()) + log.Log(NOW, "setCurrent()", w.String()) } -func doWidgetClick(n *tree.Node) { - switch n.WidgetType { +func (w *guiWidget) doWidgetClick() { + switch w.WidgetType { case widget.Root: // THIS IS THE BEGINING OF THE LAYOUT - log.Log(NOW, "doWidgetClick()", n.String()) + log.Log(NOW, "doWidgetClick()", w.String()) redoWindows(0, 0) case widget.Flag: - log.Log(NOW, "doWidgetClick() FLAG widget name =", n.String()) + log.Log(NOW, "doWidgetClick() FLAG widget name =", w.String()) log.Log(NOW, "doWidgetClick() if this is the dropdown menu, handle it here?") case widget.Window: - if me.currentWindow == n { + if me.currentWindow == w.node { return } if me.currentWindow != nil { - var w *guiWidget - w = me.currentWindow.TK.(*guiWidget) - unsetCurrent(w) - setColor(me.currentWindow, &colorWindow) - w.hideWidgets() + var curw *guiWidget + curw = me.currentWindow.TK.(*guiWidget) + curw.unsetCurrent() + curw.setColor(&colorWindow) + curw.hideWidgets() } - me.currentWindow = n - // setCurrentWindow(n) // probably delete this - setColor(n, &colorActiveW) + me.currentWindow = w.node - var w *guiWidget - w = n.TK.(*guiWidget) + w.setColor(&colorActiveW) w.hideWidgets() w.redoTabs(me.TabW, me.TabH) for _, child := range w.children { if child.currentTab == true { log.Log(NOW, "FOUND CURRENT TAB", child.String()) - setCurrentTab(child.node) - placeWidgets(child.node, me.RawW, me.RawH) + child.setCurrentTab() + child.placeWidgets(me.RawW, me.RawH) child.showWidgets() return } @@ -138,37 +129,31 @@ func doWidgetClick(n *tree.Node) { } */ case widget.Tab: - var w *guiWidget - w = n.TK.(*guiWidget) if w.IsCurrent() { return // do nothing if you reclick on the already selected tab } // find the window and disable the active tab - p := n.Parent + p := w.parent if p != nil { - var w *guiWidget - w = p.TK.(*guiWidget) - w.hideWidgets() - w.redoTabs(me.TabW, me.TabH) - unsetCurrent(w) + p.hideWidgets() + p.redoTabs(me.TabW, me.TabH) + p.unsetCurrent() for _, child := range w.children { - if child.node.WidgetType == widget.Tab { - setColor(child.node, &colorTab) + if child.WidgetType == widget.Tab { + child.setColor(&colorTab) child.currentTab = false } } } w.currentTab = true - setColor(n, &colorActiveT) - setCurrentTab(n) - placeWidgets(n, me.RawW, me.RawH) + w.setColor(&colorActiveT) + w.setCurrentTab() + w.placeWidgets(me.RawW, me.RawH) w.showWidgets() case widget.Group: // n.placeWidgets(p.tk.startH, newH) - toggleTree(n) + w.toggleTree() case widget.Checkbox: - var w *guiWidget - w = n.TK.(*guiWidget) if widget.GetBool(w.value) { w.setCheckbox(false) } else { @@ -177,30 +162,26 @@ func doWidgetClick(n *tree.Node) { // n.doUserEvent() me.myTree.SendUserEvent(me.treeRoot) case widget.Grid: - newR := realGocuiSize(n) + newR := w.realGocuiSize() // w,h := n.logicalSize() // w := newR.w1 - newR.w0 // h := newR.h1 - newR.h0 - placeGrid(n, newR.w0, newR.h0) - var w *guiWidget - w = n.TK.(*guiWidget) + w.placeGrid(newR.w0, newR.h0) w.showWidgets() case widget.Box: - var w *guiWidget - w = n.TK.(*guiWidget) // w.showWidgetPlacement(logNow, "drawTree()") if w.direction == widget.Horizontal { - log.Log(NOW, "BOX IS HORIZONTAL", n.String()) + log.Log(NOW, "BOX IS HORIZONTAL", w.String()) } else { - log.Log(NOW, "BOX IS VERTICAL", n.String()) + log.Log(NOW, "BOX IS VERTICAL", w.String()) } - placeWidgets(n, me.RawW, me.RawH) - toggleTree(n) + w.placeWidgets(me.RawW, me.RawH) + w.toggleTree() case widget.Button: // doUserEvent(n) - me.myTree.SendUserEvent(n) + me.myTree.SendUserEvent(w.node) case widget.Dropdown: log.Log(NOW, "do the dropdown here") if me.ddview == nil { @@ -235,10 +216,10 @@ func doWidgetClick(n *tree.Node) { } else { var dnsList string for i, s := range tk.vals { - log.Log(NOW, "AddText()", n.String(), i, s) + log.Log(NOW, "AddText()", w.String(), i, s) dnsList += s + "\n" } - me.ddNode = n + me.ddNode = w.node log.Log(NOW, "new dns list should be set to:", dnsList) tk.labelN = dnsList tk.SetText(dnsList) @@ -253,11 +234,9 @@ func doWidgetClick(n *tree.Node) { var toggle bool = true -func toggleTree(n *tree.Node) { - var w *guiWidget - w = n.TK.(*guiWidget) +func (w *guiWidget) toggleTree() { if toggle { - drawTree(n, toggle) + w.drawTree(toggle) toggle = false } else { w.hideWidgets() @@ -266,13 +245,11 @@ func toggleTree(n *tree.Node) { } // display the widgets in the binary tree -func drawTree(n *tree.Node, draw bool) { - var w *guiWidget - w = n.TK.(*guiWidget) +func (w *guiWidget) drawTree(draw bool) { if w == nil { return } - showWidgetPlacement(n, true, "drawTree()") + w.showWidgetPlacement(true, "drawTree()") if draw { // w.textResize() w.showView() @@ -281,7 +258,7 @@ func drawTree(n *tree.Node, draw bool) { } for _, child := range w.children { - drawTree(child.node, draw) + child.drawTree(draw) } } @@ -294,14 +271,14 @@ func click(g *gocui.Gui, v *gocui.View) error { n := findUnderMouse() var w *guiWidget w = n.TK.(*guiWidget) - if n != nil { - log.Log(NOW, "click() Found widget =", n.WidgetId, n.String(), ",", w.labelN) - if n.String() == "DropBox" { + if w != nil { + log.Log(NOW, "click() Found widget =", w.node.WidgetId, w.String(), ",", w.labelN) + if w.String() == "DropBox" { 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 } - doWidgetClick(n) + w.doWidgetClick() } else { log.Log(NOW, "click() could not find node name =", v.Name()) } @@ -381,7 +358,8 @@ func ctrlDown(g *gocui.Gui, v *gocui.View) error { found = me.treeRoot } tk.labelN = found.String() - newR := realGocuiSize(found) + foundtk := found.TK.(*guiWidget) + newR := foundtk.realGocuiSize() tk.gocuiSize.w0 = newR.w0 tk.gocuiSize.h0 = newR.h0 tk.gocuiSize.w1 = newR.w1 |
