diff options
Diffstat (limited to 'toolkit/gocui/common.go')
| l---------[-rw-r--r--] | toolkit/gocui/common.go | 212 |
1 files changed, 1 insertions, 211 deletions
diff --git a/toolkit/gocui/common.go b/toolkit/gocui/common.go index d3de34c..35417a1 100644..120000 --- a/toolkit/gocui/common.go +++ b/toolkit/gocui/common.go @@ -1,211 +1 @@ -package main - -import ( - "strconv" - "git.wit.org/wit/gui/toolkit" -) - -func makeWidget(n *node) *cuiWidget { - var w *cuiWidget - w = new(cuiWidget) - // Set(w, "default") - - w.frame = true - - // set the name used by gocui to the id - w.cuiName = strconv.Itoa(n.WidgetId) - - if n.WidgetType == toolkit.Root { - log(logInfo, "setupWidget() FOUND ROOT w.id =", n.WidgetId) - n.WidgetId = 0 - me.rootNode = n - return w - } - - if (n.WidgetType == toolkit.Box) { - if (n.B) { - n.horizontal = true - } else { - n.horizontal = false - } - } - - if (n.WidgetType == toolkit.Grid) { - w.widths = make(map[int]int) // how tall each row in the grid is - w.heights = make(map[int]int) // how wide each column in the grid is - } - - return w -} - -func setupCtrlDownWidget() { - a := new(toolkit.Action) - a.Name = "ctrlDown" - a.WidgetType = toolkit.Dialog - a.WidgetId = -1 - a.ParentId = 0 - n := addNode(a) - - me.ctrlDown = n -} - -func (n *node) deleteView() { - w := n.tk - if (w.v != nil) { - w.v.Visible = false - return - } - // make sure the view isn't really there - me.baseGui.DeleteView(w.cuiName) - w.v = nil -} - -// searches the binary tree for a WidgetId -func (n *node) findWidgetId(id int) *node { - if (n == nil) { - return nil - } - - if n.WidgetId == id { - return n - } - - for _, child := range n.children { - newN := child.findWidgetId(id) - if (newN != nil) { - return newN - } - } - return nil -} - -// searches the binary tree for a WidgetId -func (n *node) findWidgetName(name string) *node { - if (n == nil) { - return nil - } - - if n.tk.cuiName == name { - return n - } - - for _, child := range n.children { - newN := child.findWidgetName(name) - if (newN != nil) { - return newN - } - } - return nil -} - -func (n *node) IsCurrent() bool { - w := n.tk - if (n.WidgetType == toolkit.Tab) { - return w.isCurrent - } - if (n.WidgetType == toolkit.Window) { - return w.isCurrent - } - if (n.WidgetType == toolkit.Root) { - return false - } - return n.parent.IsCurrent() -} - -func (n *node) Visible() bool { - if (n == nil) { - return false - } - if (n.tk == nil) { - return false - } - if (n.tk.v == nil) { - return false - } - return n.tk.v.Visible -} - -func (n *node) SetVisible(b bool) { - if (n == nil) { - return - } - if (n.tk == nil) { - return - } - if (n.tk.v == nil) { - return - } - n.tk.v.Visible = b -} - -func addNode(a *toolkit.Action) *node { - n := new(node) - n.WidgetType = a.WidgetType - n.WidgetId = a.WidgetId - n.ParentId = a.ParentId - - // copy the data from the action message - n.Name = a.Name - n.Text = a.Text - n.I = a.I - n.S = a.S - n.B = a.B - - n.X = a.X - n.Y = a.Y - - n.W = a.W - n.H = a.H - n.AtW = a.AtW - n.AtH = a.AtH - - // store the internal toolkit information - n.tk = makeWidget(n) - - if (a.WidgetType == toolkit.Root) { - log(logInfo, "addNode() Root") - return n - } - - if (me.rootNode.findWidgetId(a.WidgetId) != nil) { - log(logError, "addNode() WidgetId already exists", a.WidgetId) - return me.rootNode.findWidgetId(a.WidgetId) - } - - // add this new widget on the binary tree - n.parent = me.rootNode.findWidgetId(a.ParentId) - if n.parent != nil { - n.parent.children = append(n.parent.children, n) - //w := n.tk - //w.parent = n.parent.tk - //w.parent.children = append(w.parent.children, w) - } - return n -} - -func addDropdown() *node { - n := new(node) - n.WidgetType = toolkit.Flag - n.WidgetId = -2 - n.ParentId = 0 - - // copy the data from the action message - n.Name = "DropBox" - n.Text = "DropBox text" - - // store the internal toolkit information - n.tk = new(cuiWidget) - n.tk.frame = true - - // set the name used by gocui to the id - n.tk.cuiName = "-1 dropbox" - - n.tk.color = &colorFlag - - // add this new widget on the binary tree - n.parent = me.rootNode - if n.parent != nil { - n.parent.children = append(n.parent.children, n) - } - return n -} +../nocui/common.go
\ No newline at end of file |
