summaryrefslogtreecommitdiff
path: root/toolkit/andlabs
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/andlabs')
-rw-r--r--toolkit/andlabs/action.go252
-rw-r--r--toolkit/andlabs/add.go69
-rw-r--r--toolkit/andlabs/box.go23
-rw-r--r--toolkit/andlabs/button.go4
-rw-r--r--toolkit/andlabs/checkbox.go19
-rw-r--r--toolkit/andlabs/combobox.go4
-rw-r--r--toolkit/andlabs/common.go21
-rw-r--r--toolkit/andlabs/delete.go18
-rw-r--r--toolkit/andlabs/dropdown.go20
-rw-r--r--toolkit/andlabs/group.go22
-rw-r--r--toolkit/andlabs/main.go2
-rw-r--r--toolkit/andlabs/plugin.go87
-rw-r--r--toolkit/andlabs/slider.go4
-rw-r--r--toolkit/andlabs/spinner.go4
-rw-r--r--toolkit/andlabs/structs.go6
-rw-r--r--toolkit/andlabs/tab.go26
-rw-r--r--toolkit/andlabs/textbox.go4
-rw-r--r--toolkit/andlabs/widget.go24
-rw-r--r--toolkit/andlabs/window.go15
19 files changed, 188 insertions, 436 deletions
diff --git a/toolkit/andlabs/action.go b/toolkit/andlabs/action.go
index 10264aa..49a3465 100644
--- a/toolkit/andlabs/action.go
+++ b/toolkit/andlabs/action.go
@@ -1,65 +1,50 @@
package main
import (
+ "github.com/andlabs/ui"
"git.wit.org/wit/gui/toolkit"
)
-func show(a *toolkit.Action) {
- if (a == nil) {
- log(debugError, "nil is probably already hidden")
+func (n *node) show(b bool) {
+ if n.tk == nil {
return
}
- log(debugError, "show()", a.WidgetId)
-
- t := andlabs[a.WidgetId]
- if (t == nil) {
- log(debugError, "show() toolkit struct == nil. for", a.WidgetId)
+ if n.tk.uiControl == nil {
return
}
-
- if (a.B) {
- t.uiControl.Show()
+ if (b) {
+ n.tk.uiControl.Show()
} else {
- t.uiControl.Hide()
+ n.tk.uiControl.Hide()
}
}
-func enable(a *toolkit.Action) {
- if (a == nil) {
- log(debugError, "nil is probably already hidden")
+func (n *node) enable(b bool) {
+ if n.tk == nil {
return
}
- log(debugError, "enable() name =", a.WidgetId)
-
- t := andlabs[a.WidgetId]
- if (t == nil) {
- log(debugToolkit, "enable() toolkit struct == nil. for id =", a.WidgetId)
+ if n.tk.uiControl == nil {
return
}
-
- if (a.B) {
- t.uiControl.Enable()
+ if (b) {
+ n.tk.uiControl.Enable()
} else {
- t.uiControl.Disable()
+ n.tk.uiControl.Disable()
}
}
-func pad(a *toolkit.Action) {
- if (a == nil) {
- log(debugError, "pad() ERROR: nil is probably already hidden")
- return
- }
+func (n *node) pad(at toolkit.ActionType) {
log(debugError, "pad()")
- t := andlabs[a.WidgetId]
+ t := n.tk
if (t == nil) {
- log(debugError, "pad() toolkit struct == nil. for", a.WidgetId)
+ log(debugError, "pad() toolkit struct == nil. for", n.WidgetId)
return
}
- switch t.WidgetType {
+ switch n.WidgetType {
case toolkit.Group:
- switch a.ActionType {
+ switch at {
case toolkit.Margin:
t.uiGroup.SetMargined(true)
case toolkit.Unmargin:
@@ -70,7 +55,7 @@ func pad(a *toolkit.Action) {
t.uiGroup.SetMargined(false)
}
case toolkit.Tab:
- switch a.ActionType {
+ switch at {
case toolkit.Margin:
tabSetMargined(t.uiTab, true)
case toolkit.Unmargin:
@@ -81,7 +66,7 @@ func pad(a *toolkit.Action) {
tabSetMargined(t.uiTab, false)
}
case toolkit.Window:
- switch a.ActionType {
+ switch at {
case toolkit.Margin:
t.uiWindow.SetMargined(true)
case toolkit.Unmargin:
@@ -92,7 +77,7 @@ func pad(a *toolkit.Action) {
t.uiWindow.SetBorderless(true)
}
case toolkit.Grid:
- switch a.ActionType {
+ switch at {
case toolkit.Margin:
t.uiGrid.SetPadded(true)
case toolkit.Unmargin:
@@ -103,7 +88,7 @@ func pad(a *toolkit.Action) {
t.uiGrid.SetPadded(false)
}
case toolkit.Box:
- switch a.ActionType {
+ switch at {
case toolkit.Margin:
t.uiBox.SetPadded(true)
case toolkit.Unmargin:
@@ -114,58 +99,31 @@ func pad(a *toolkit.Action) {
t.uiBox.SetPadded(false)
}
case toolkit.Textbox:
- log(debugError, "TODO: implement expand for", a.ActionType)
- log(debugError, "TODO: implement expand for", a.ActionType)
- log(debugError, "TODO: implement expand for", a.ActionType)
- log(debugError, "TODO: implement expand for", a.ActionType)
+ log(debugError, "TODO: implement ActionType =", at)
default:
- log(debugError, "TODO: implement pad() for", a.ActionType)
+ log(debugError, "TODO: implement pad() for", at)
}
}
-func move(a *toolkit.Action) {
- log(debugNow, "move()", a.WidgetId, "to", a.ParentId)
-
- tWidget := andlabs[a.WidgetId]
- if (tWidget == nil) {
- log(debugError, "move() ERROR: toolkit struct == nil. for", a.WidgetId)
- return
- }
-
- tParent := andlabs[a.ParentId]
- if (tParent == nil) {
- log(debugError, "move() ERROR: toolkit struct == nil. for", a.ParentId)
- return
- }
+func (n *node) move(newParent *node) {
+ p := n.parent
- switch tParent.WidgetType {
+ switch p.WidgetType {
case toolkit.Group:
- switch a.ActionType {
- case toolkit.Margin:
- tParent.uiGroup.SetMargined(true)
- }
case toolkit.Tab:
- switch a.ActionType {
- case toolkit.Margin:
- // tabSetMargined(tParent.uiTab, true)
- }
+ // tabSetMargined(tParent.uiTab, true)
case toolkit.Window:
- switch a.ActionType {
- case toolkit.Pad:
- // t.uiWindow.SetBorderless(false)
- }
+ // t.uiWindow.SetBorderless(false)
case toolkit.Grid:
- switch a.ActionType {
- case toolkit.Pad:
- // t.uiGrid.SetPadded(true)
- }
+ // t.uiGrid.SetPadded(true)
case toolkit.Box:
- log(debugNow, "TODO: move() for a =", a.ActionType)
- log(debugNow, "TODO: move() where =", a.ParentId)
- log(debugNow, "TODO: move() for widget =", a.WidgetId)
+ log(logInfo, "TODO: move() where =", p.ParentId)
+ log(logInfo, "TODO: move() for widget =", n.WidgetId)
stretchy = true
- tParent.uiBox.Append(tWidget.uiControl, stretchy)
+ if (p.tk.uiBox != nil) {
+ p.tk.uiBox.Append(n.tk.uiControl, stretchy)
+ }
// log(debugNow, "is there a tParent parent? =", tParent.parent)
// tParent.uiBox.Delete(0)
@@ -173,73 +131,111 @@ func move(a *toolkit.Action) {
// tWidget.uiControl.Disable()
// sleep(.8)
default:
- log(debugError, "TODO: need to implement move() for a =", a.ActionType)
- log(debugError, "TODO: need to implement move() for where =", a.ParentId)
- log(debugError, "TODO: need to implement move() for widget =", a.WidgetId)
+ log(logError, "TODO: need to implement move() for type =", n.WidgetType)
+ log(logError, "TODO: need to implement move() for where =", p.ParentId)
+ log(logError, "TODO: need to implement move() for widget =", n.WidgetId)
}
}
-func uiDelete(a *toolkit.Action) {
- if (andlabs[a.ParentId] == nil) {
- log(debugError, "uiDelete() ERROR: can not uiDelete to nil")
- return
- }
- if (andlabs[a.WidgetId] == nil) {
- log(debugError, "uiDelete() ERROR: can not uiDelete nil")
- return
- }
- log(debugNow, "uiDelete()", a.WidgetId, "to", a.ParentId)
-
- tWidget := andlabs[a.WidgetId]
- if (tWidget == nil) {
- log(debugError, "uiDelete() ERROR: toolkit struct == nil. for", a.WidgetId)
- return
- }
+func (n *node) Delete() {
+ p := n.parent
+ log(debugNow, "uiDelete()", n.WidgetId, "to", p.WidgetId)
- tParent := andlabs[a.ParentId]
- if (tParent == nil) {
- log(debugError, "uiDelete() ERROR: toolkit struct == nil. for", a.ParentId)
- return
- }
-
- switch tParent.WidgetType {
+ switch p.WidgetType {
case toolkit.Group:
- switch a.ActionType {
- case toolkit.Margin:
- tParent.uiGroup.SetMargined(true)
- }
+ // tParent.uiGroup.SetMargined(true)
case toolkit.Tab:
- switch a.ActionType {
- case toolkit.Margin:
- // tabSetMargined(tParent.uiTab, true)
- }
+ // tabSetMargined(tParent.uiTab, true)
case toolkit.Window:
- switch a.ActionType {
- case toolkit.Pad:
- // t.uiWindow.SetBorderless(false)
- }
+ // t.uiWindow.SetBorderless(false)
case toolkit.Grid:
- switch a.ActionType {
- case toolkit.Pad:
- // t.uiGrid.SetPadded(true)
- }
+ // t.uiGrid.SetPadded(true)
case toolkit.Box:
- log(debugNow, "tWidget.boxC =", tParent.Name)
- log(debugNow, "is there a tParent parent? =", tParent.parent)
- if (tWidget.boxC < 1) {
- log(debugNow, "Can not delete from Box. already empty. tWidget.boxC =", tParent.boxC)
+ log(debugNow, "tWidget.boxC =", p.Name)
+ log(debugNow, "is there a tParent parent? =", p.parent)
+ if (p.tk.boxC < 1) {
+ log(debugNow, "Can not delete from Box. already empty. tWidget.boxC =", p.tk.boxC)
return
}
- tWidget.uiBox.Delete(0)
- tWidget.boxC -= 1
+ p.tk.uiBox.Delete(0)
+ p.tk.boxC -= 1
// this didn't work:
// tWidget.uiControl.Disable()
// sleep(.8)
// tParent.uiBox.Append(tWidget.uiControl, stretchy)
default:
- log(debugError, "TODO: need to implement uiDelete() for a =", a.ActionType)
- log(debugError, "TODO: need to implement uiDelete() for where =", a.ParentId)
- log(debugError, "TODO: need to implement uiDelete() for widget =", a.WidgetId)
+ log(debugError, "TODO: need to implement uiDelete() for widget =", n.WidgetId, n.WidgetType)
+ log(debugError, "TODO: need to implement uiDelete() for parent =", p.WidgetId, p.WidgetType)
+ }
+}
+
+func rawAction(a toolkit.Action) {
+ log(logNow, "rawAction() START a.ActionType =", a.ActionType)
+ log(logNow, "rawAction() START a.S =", a.S)
+
+ if (a.ActionType == toolkit.InitToolkit) {
+ // TODO: make sure to only do this once
+ // go uiMain.Do(func() {
+ // ui.Main(demoUI)
+ // go catchActionChannel()
+ // })
+ // try doing this on toolkit load in init()
+ return
+ }
+
+ log(logNow, "rawAction() START a.WidgetId =", a.WidgetId, "a.ParentId =", a.ParentId)
+ switch a.WidgetType {
+ case toolkit.Flag:
+ flag(&a)
+ return
+ }
+
+ n := rootNode.findWidgetId(a.WidgetId)
+
+ switch a.ActionType {
+ case toolkit.Add:
+ ui.QueueMain(func() {
+ add(a)
+ })
+ sleep(.1)
+ case toolkit.Show:
+ n.show(true)
+ case toolkit.Hide:
+ n.show(false)
+ case toolkit.Enable:
+ n.enable(true)
+ case toolkit.Disable:
+ n.enable(false)
+ case toolkit.Get:
+ n.setText(&a)
+ case toolkit.GetText:
+ switch a.WidgetType {
+ case toolkit.Textbox:
+ a.S = n.S
+ }
+ case toolkit.Set:
+ n.setText(&a)
+ case toolkit.SetText:
+ n.setText(&a)
+ case toolkit.AddText:
+ n.setText(&a)
+ case toolkit.Margin:
+ n.pad(toolkit.Unmargin)
+ case toolkit.Unmargin:
+ n.pad(toolkit.Margin)
+ case toolkit.Pad:
+ n.pad(toolkit.Pad)
+ case toolkit.Unpad:
+ n.pad(toolkit.Unpad)
+ case toolkit.Delete:
+ n.Delete()
+ case toolkit.Move:
+ log(debugNow, "rawAction() attempt to move() =", a.ActionType, a.WidgetType)
+ newParent := rootNode.findWidgetId(a.ParentId)
+ n.move(newParent)
+ default:
+ log(debugError, "rawAction() Unknown =", a.ActionType, a.WidgetType)
}
+ log(debugAction, "rawAction() END =", a.ActionType, a.WidgetType)
}
diff --git a/toolkit/andlabs/add.go b/toolkit/andlabs/add.go
index 1bcead7..9d40b4f 100644
--- a/toolkit/andlabs/add.go
+++ b/toolkit/andlabs/add.go
@@ -16,11 +16,6 @@ func actionDump(b bool, a *toolkit.Action) {
}
func add(a toolkit.Action) {
- if (andlabs[a.WidgetId] != nil) {
- log(debugError, "add() error. can't make a widget that already exists. id =", a.WidgetId)
- actionDump(debugError, &a)
- return
- }
if (a.WidgetType == toolkit.Root) {
rootNode = addWidget(&a, nil)
return
@@ -100,70 +95,6 @@ func add(a toolkit.Action) {
// -- (0,0) -- (1,0) -- (1,0) --
// -- (0,1) -- (1,1) -- (1,1) --
// -----------------------------
-func place(a *toolkit.Action, t *andlabsT, newt *andlabsT) bool {
- log(debugAction, "place() START", a.WidgetType, a.Name)
-
- // add the structure to the array
- if (andlabs[a.WidgetId] == nil) {
- log(logInfo, "place() MAPPED", a.WidgetId, a.ParentId)
- andlabs[a.WidgetId] = newt
- newt.WidgetType = a.WidgetType
- } else {
- log(debugError, "place() DO WHAT?", a.WidgetId, a.ParentId)
- log(debugError, "place() THIS IS BAD")
- }
- log(logInfo, "place() DONE MAPPED", a.WidgetId, a.ParentId)
-
- if (newt.uiControl == nil) {
- log(debugError, "place() ERROR uiControl == nil", a.ParentId)
- return false
- }
-
- where := andlabs[a.ParentId]
- if (where == nil) {
- log(debugError, "place() ERROR where == nil", a.ParentId)
- return false
- }
-
- log(logInfo, "place() switch", where.WidgetType)
- switch where.WidgetType {
- case toolkit.Grid:
- log(debugGrid, "place() Grid try at Parent X,Y =", a.X, a.Y)
- newt.gridX = a.X
- newt.gridY = a.Y
- log(debugGrid, "place() Grid try at gridX,gridY", newt.gridX, newt.gridY)
- // at the very end, subtract 1 from X & Y since andlabs/ui starts counting at zero
- t.uiGrid.Append(newt.uiControl,
- newt.gridY - 1, newt.gridX - 1, 1, 1,
- false, ui.AlignFill, false, ui.AlignFill)
- return true
- case toolkit.Group:
- if (t.uiBox == nil) {
- t.uiGroup.SetChild(newt.uiControl)
- log(debugGrid, "place() hack Group to use this as the box?", a.Name, a.WidgetType)
- t.uiBox = newt.uiBox
- } else {
- t.uiBox.Append(newt.uiControl, stretchy)
- }
- return true
- case toolkit.Tab:
- t.uiTab.Append(a.Text, newt.uiControl)
- t.boxC += 1
- return true
- case toolkit.Box:
- log(logInfo, "place() uiBox =", t.uiBox)
- log(logInfo, "place() uiControl =", newt.uiControl)
- t.uiBox.Append(newt.uiControl, stretchy)
- t.boxC += 1
- return true
- case toolkit.Window:
- t.uiWindow.SetChild(newt.uiControl)
- return true
- default:
- log(debugError, "place() how?", a.ParentId)
- }
- return false
-}
func (p *node) place(n *node) bool {
log(logInfo, "place() START", n.WidgetType, n.Name)
diff --git a/toolkit/andlabs/box.go b/toolkit/andlabs/box.go
index 72ff698..0a6b7e4 100644
--- a/toolkit/andlabs/box.go
+++ b/toolkit/andlabs/box.go
@@ -9,26 +9,12 @@ import (
func (p *node) newBox(n *node) {
log(debugToolkit, "newBox()", n.Name)
- t := p.tk
- if (t == nil) {
- log(debugToolkit, "newBox() toolkit struct == nil. name=", n.Name)
- listMap(debugToolkit)
- }
- newt := t.rawBox(n.Text, n.B)
- newt.boxC = 0
- n.tk = newt
- p.place(n)
-}
-
-// make new Box using andlabs/ui
-func (t *andlabsT) rawBox(title string, b bool) *andlabsT {
- var newt andlabsT
+ newt := new(andlabsT)
var box *ui.Box
- newt.Name = title
log(debugToolkit, "rawBox() create", newt.Name)
- if (b) {
+ if (n.B) {
box = ui.NewHorizontalBox()
} else {
box = ui.NewVerticalBox()
@@ -37,6 +23,7 @@ func (t *andlabsT) rawBox(title string, b bool) *andlabsT {
newt.uiBox = box
newt.uiControl = box
-
- return &newt
+ newt.boxC = 0
+ n.tk = newt
+ p.place(n)
}
diff --git a/toolkit/andlabs/button.go b/toolkit/andlabs/button.go
index b3eae7b..a6260b5 100644
--- a/toolkit/andlabs/button.go
+++ b/toolkit/andlabs/button.go
@@ -19,12 +19,10 @@ func (p *node) newButton(n *node) {
b := ui.NewButton(n.Text)
newt.uiButton = b
newt.uiControl = b
- newt.wId = n.WidgetId
- newt.WidgetType = n.WidgetType
newt.parent = t
b.OnClicked(func(*ui.Button) {
- newt.doUserEvent()
+ n.doUserEvent()
})
n.tk = newt
diff --git a/toolkit/andlabs/checkbox.go b/toolkit/andlabs/checkbox.go
index 49096a1..b822ca1 100644
--- a/toolkit/andlabs/checkbox.go
+++ b/toolkit/andlabs/checkbox.go
@@ -8,10 +8,6 @@ import (
func (p *node) newCheckbox(n *node) {
newt := new(andlabsT)
log(debugToolkit, "newCheckbox()", n.Name, n.WidgetType)
- newt.WidgetType = n.WidgetType
- newt.wId = n.WidgetId
- newt.Name = n.Name
- newt.Text = n.Text
newt.uiCheckbox = ui.NewCheckbox(n.Text)
newt.uiControl = newt.uiCheckbox
@@ -19,7 +15,7 @@ func (p *node) newCheckbox(n *node) {
newt.uiCheckbox.OnToggled(func(spin *ui.Checkbox) {
newt.b = newt.checked()
log(debugChange, "val =", newt.b)
- newt.doUserEvent()
+ n.doUserEvent()
})
n.tk = newt
@@ -29,16 +25,3 @@ func (p *node) newCheckbox(n *node) {
func (t *andlabsT) checked() bool {
return t.uiCheckbox.Checked()
}
-
-/*
-func newCheckbox(a *toolkit.Action) {
- log(debugToolkit, "newCheckbox()", a.Name)
-
- t := andlabs[a.ParentId]
- if (t == nil) {
- listMap(debugError)
- return
- }
- newt := t.newCheckbox(a)
-}
-*/
diff --git a/toolkit/andlabs/combobox.go b/toolkit/andlabs/combobox.go
index 06a7f41..564ff23 100644
--- a/toolkit/andlabs/combobox.go
+++ b/toolkit/andlabs/combobox.go
@@ -18,8 +18,8 @@ func (p *node) newCombobox(n *node) {
newt.val = make(map[int]string)
cb.OnChanged(func(spin *ui.EditableCombobox) {
- newt.s = spin.Text()
- newt.doUserEvent()
+ n.S = spin.Text()
+ n.doUserEvent()
})
n.tk = newt
diff --git a/toolkit/andlabs/common.go b/toolkit/andlabs/common.go
index 630c6a9..c8ecae1 100644
--- a/toolkit/andlabs/common.go
+++ b/toolkit/andlabs/common.go
@@ -56,26 +56,21 @@ func addWidget(a *toolkit.Action, tk *andlabsT) *node {
if n.parent != nil {
n.parent.children = append(n.parent.children, n)
}
-
- // deprecate this when this toolkit uses the binary tree instead
- if (andlabs[a.WidgetId] == nil) {
- andlabs[a.WidgetId] = tk
- }
-
return n
}
-func (t *andlabsT) doUserEvent() {
+func (n *node) doUserEvent() {
if (callback == nil) {
- log(debugError, "doUserEvent() callback == nil", t.wId)
+ log(debugError, "doUserEvent() callback == nil", n.WidgetId)
return
}
var a toolkit.Action
- a.WidgetId = t.wId
- a.Name = t.Name
- a.S = t.s
- a.I = t.i
- a.B = t.b
+ a.WidgetId = n.WidgetId
+ a.Name = n.Name
+ a.Text = n.Text
+ a.S = n.S
+ a.I = n.I
+ a.B = n.B
a.ActionType = toolkit.User
log(logInfo, "doUserEvent() START: send a user event to the callback channel")
callback <- a
diff --git a/toolkit/andlabs/delete.go b/toolkit/andlabs/delete.go
index dc28371..f171344 100644
--- a/toolkit/andlabs/delete.go
+++ b/toolkit/andlabs/delete.go
@@ -6,11 +6,13 @@ import "git.wit.org/wit/gui/toolkit"
// delete the child widget from the parent
// p = parent, c = child
-func destroy(pId int, cId int) {
- log(true, "delete()", pId, cId)
+func (n *node) destroy() {
+ pId := n.parent.WidgetId
+ cId := n.WidgetId
+ log(logNow, "delete()", pId, cId)
- pt := andlabs[pId]
- ct := andlabs[cId]
+ pt := n.parent.tk
+ ct := n.tk
if (ct == nil) {
log(true, "delete FAILED (ct = mapToolkit[c] == nil) for c", pId, cId)
// this pukes out a whole universe of shit
@@ -18,7 +20,7 @@ func destroy(pId int, cId int) {
return
}
- switch ct.WidgetType {
+ switch n.WidgetType {
case toolkit.Button:
log(true, "Should delete Button here:", ct.Name)
log(true, "Parent:")
@@ -40,12 +42,6 @@ func destroy(pId int, cId int) {
case toolkit.Window:
log(true, "Should delete Window here:", ct.Name)
default:
- log(true, "Don't know how to delete pt =", pt.WidgetType, pt.Name, pt.uiButton)
- log(true, "Don't know how to delete ct =", ct.WidgetType, ct.Name, ct.uiButton)
- log(true, "Parent:")
- pt.Dump(true)
- log(true, "Child:")
- ct.Dump(true)
log(true, "Fuckit, let's destroy a button")
if (ct.uiButton != nil) {
pt.uiBox.Delete(4)
diff --git a/toolkit/andlabs/dropdown.go b/toolkit/andlabs/dropdown.go
index fd28965..bf66e41 100644
--- a/toolkit/andlabs/dropdown.go
+++ b/toolkit/andlabs/dropdown.go
@@ -25,8 +25,8 @@ func (p *node) newDropdown(n *node) {
log(debugChange, "make map didn't work")
newt.text = "error"
}
- newt.s = newt.val[i]
- newt.doUserEvent()
+ n.S = newt.val[i]
+ n.doUserEvent()
})
n.tk = newt
@@ -53,28 +53,26 @@ func (t *andlabsT) SetDropdown(i int) {
t.uiCombobox.SetSelected(i)
}
-func (n *node) AddDropdownName(a *toolkit.Action) {
- log(debugToolkit, "gui.andlabs.AddDropdownName()", n.WidgetId, "add:", a.S)
+func (n *node) AddDropdownName(s string) {
+ log(logInfo, "AddDropdownName()", n.WidgetId, "add:", s)
t := n.tk
if (t == nil) {
- log(debugToolkit, "go.andlabs.AddDropdownName() toolkit struct == nil. name=", n.Name, a.S)
- listMap(debugToolkit)
+ log(logInfo, "AddDropdownName() toolkit struct == nil. name=", n.Name, s)
return
}
- t.addDropdownName(a.S)
+ t.addDropdownName(s)
}
func (n *node) SetDropdownName(a *toolkit.Action, s string) {
- log(debugChange, "gui.andlabs.SetDropdown()", n.WidgetId, ",", s)
+ log(logInfo, "SetDropdown()", n.WidgetId, ",", s)
t := n.tk
if (t == nil) {
- log(debugError, "ERROR: SetDropdown() FAILED mapToolkits[w] == nil. name=", n.WidgetId, s)
- listMap(debugError)
+ log(debugError, "SetDropdown() FAILED mapToolkits[w] == nil. name=", n.WidgetId, s)
return
}
t.SetDropdown(1)
// TODO: send back to wit/gui goroutine with the chan
- t.s = s
+ n.S = s
}
diff --git a/toolkit/andlabs/group.go b/toolkit/andlabs/group.go
index 8138576..077aea0 100644
--- a/toolkit/andlabs/group.go
+++ b/toolkit/andlabs/group.go
@@ -8,27 +8,15 @@ import (
func (p *node) newGroup(n *node) {
log(debugToolkit, "NewGroup()", n.Name)
- t := p.tk
- if (t == nil) {
- log(debugToolkit, "NewGroup() toolkit struct == nil. name=", n.Name)
- listMap(debugToolkit)
- }
- newt := t.rawGroup(n.Name)
- n.tk = newt
- p.place(n)
-}
+ newt := new(andlabsT)
-// make new Group here
-func (t *andlabsT) rawGroup(title string) *andlabsT {
- var newt andlabsT
- newt.Name = title
+ log(debugToolkit, "NewGroup() create", n.Name)
- log(debugToolkit, "NewGroup() create", newt.Name)
-
- g := ui.NewGroup(newt.Name)
+ g := ui.NewGroup(n.Name)
g.SetMargined(margin)
newt.uiGroup = g
newt.uiControl = g
- return &newt
+ n.tk = newt
+ p.place(n)
}
diff --git a/toolkit/andlabs/main.go b/toolkit/andlabs/main.go
index e54da30..92f75d0 100644
--- a/toolkit/andlabs/main.go
+++ b/toolkit/andlabs/main.go
@@ -60,7 +60,7 @@ func init() {
// log(debugToolkit, "gui/toolkit init() Setting defaultBehavior = true")
setDefaultBehavior(true)
- andlabs = make(map[int]*andlabsT)
+ // andlabs = make(map[int]*andlabsT)
pluginChan = make(chan toolkit.Action, 1)
log(logNow, "Init() start channel reciever")
diff --git a/toolkit/andlabs/plugin.go b/toolkit/andlabs/plugin.go
index e4b3234..a1e69f5 100644
--- a/toolkit/andlabs/plugin.go
+++ b/toolkit/andlabs/plugin.go
@@ -1,84 +1,9 @@
package main
import (
- "github.com/andlabs/ui"
"git.wit.org/wit/gui/toolkit"
)
-func rawAction(a toolkit.Action) {
- log(debugAction, "rawAction() START a.ActionType =", a.ActionType)
- log(debugAction, "rawAction() START a.S =", a.S)
-
- if (a.ActionType == toolkit.InitToolkit) {
- // TODO: make sure to only do this once
- // go uiMain.Do(func() {
- // ui.Main(demoUI)
- // go catchActionChannel()
- // })
- // try doing this on toolkit load in init()
- return
- }
-
- log(logNow, "rawAction() START a.WidgetId =", a.WidgetId, "a.ParentId =", a.ParentId)
- switch a.WidgetType {
- case toolkit.Flag:
- flag(&a)
- return
- }
-
- n := rootNode.findWidgetId(a.WidgetId)
-
- switch a.ActionType {
- case toolkit.Add:
- ui.QueueMain(func() {
- add(a)
- })
- sleep(.1)
- case toolkit.Show:
- a.B = true
- show(&a)
- case toolkit.Hide:
- a.B = false
- show(&a)
- case toolkit.Enable:
- a.B = true
- enable(&a)
- case toolkit.Disable:
- a.B = false
- enable(&a)
- case toolkit.Get:
- n.setText(&a)
- case toolkit.GetText:
- switch a.WidgetType {
- case toolkit.Textbox:
- t := andlabs[a.WidgetId]
- a.S = t.s
- }
- case toolkit.Set:
- n.setText(&a)
- case toolkit.SetText:
- n.setText(&a)
- case toolkit.AddText:
- n.setText(&a)
- case toolkit.Margin:
- pad(&a)
- case toolkit.Unmargin:
- pad(&a)
- case toolkit.Pad:
- pad(&a)
- case toolkit.Unpad:
- pad(&a)
- case toolkit.Delete:
- uiDelete(&a)
- case toolkit.Move:
- log(debugNow, "rawAction() attempt to move() =", a.ActionType, a.WidgetType)
- move(&a)
- default:
- log(debugError, "rawAction() Unknown =", a.ActionType, a.WidgetType)
- }
- log(debugAction, "rawAction() END =", a.ActionType, a.WidgetType)
-}
-
func flag(a *toolkit.Action) {
// log(debugFlags, "plugin Send() flag parent =", p.Name, p.Type)
// log(debugFlags, "plugin Send() flag child =", c.Name, c.Type)
@@ -108,15 +33,15 @@ func flag(a *toolkit.Action) {
}
func (n *node) setText(a *toolkit.Action) {
- t := andlabs[a.WidgetId]
+ t := n.tk
if (t == nil) {
- log(debugError, "setText error. andlabs[id] == nil", a.WidgetId)
+ log(debugError, "setText error. tk == nil", n.Name, n.WidgetId)
actionDump(debugError, a)
return
}
- log(debugChange, "setText() Attempt on", t.WidgetType, "with", a.S)
+ log(debugChange, "setText() Attempt on", n.WidgetType, "with", a.S)
- switch t.WidgetType {
+ switch n.WidgetType {
case toolkit.Window:
t.uiWindow.SetTitle(a.S)
case toolkit.Tab:
@@ -169,7 +94,7 @@ func (n *node) setText(a *toolkit.Action) {
case toolkit.Dropdown:
switch a.ActionType {
case toolkit.AddText:
- n.AddDropdownName(a)
+ n.AddDropdownName(a.S)
case toolkit.Set:
var orig int
var i int = -1
@@ -215,6 +140,6 @@ func (n *node) setText(a *toolkit.Action) {
log(debugError, "setText() unknown", a.ActionType, "on checkbox", t.Name)
}
default:
- log(debugError, "plugin Send() Don't know how to setText on", t.WidgetType, "yet", a.ActionType)
+ log(debugError, "plugin Send() Don't know how to setText on", n.WidgetType, "yet", a.ActionType)
}
}
diff --git a/toolkit/andlabs/slider.go b/toolkit/andlabs/slider.go
index 16c8a8b..f1b4676 100644
--- a/toolkit/andlabs/slider.go
+++ b/toolkit/andlabs/slider.go
@@ -13,8 +13,8 @@ func (p *node) newSlider(n *node) {
newt.uiControl = s
s.OnChanged(func(spin *ui.Slider) {
- newt.i = newt.uiSlider.Value()
- newt.doUserEvent()
+ n.I = newt.uiSlider.Value()
+ n.doUserEvent()
})
n.tk = newt
diff --git a/toolkit/andlabs/spinner.go b/toolkit/andlabs/spinner.go
index e52579c..b7d5947 100644
--- a/toolkit/andlabs/spinner.go
+++ b/toolkit/andlabs/spinner.go
@@ -13,8 +13,8 @@ func (p *node) newSpinner(n *node) {
newt.uiControl = s
s.OnChanged(func(s *ui.Spinbox) {
- newt.i = newt.uiSpinbox.Value()
- newt.doUserEvent()
+ n.I = newt.uiSpinbox.Value()
+ n.doUserEvent()
})
n.tk = newt
diff --git a/toolkit/andlabs/structs.go b/toolkit/andlabs/structs.go
index c4618b9..c2f1d11 100644
--- a/toolkit/andlabs/structs.go
+++ b/toolkit/andlabs/structs.go
@@ -5,7 +5,7 @@ import "git.wit.org/wit/gui/toolkit"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-var andlabs map[int]*andlabsT
+// var andlabs map[int]*andlabsT
// var callback func(int) bool
var callback chan toolkit.Action
@@ -38,8 +38,8 @@ type node struct {
// stores the raw toolkit internals
type andlabsT struct {
- wId int // widget ID
- WidgetType toolkit.WidgetType
+ // wId int // widget ID
+ // WidgetType toolkit.WidgetType
Name string
Text string
diff --git a/toolkit/andlabs/tab.go b/toolkit/andlabs/tab.go
index 1a05f58..eecebfa 100644
--- a/toolkit/andlabs/tab.go
+++ b/toolkit/andlabs/tab.go
@@ -1,7 +1,7 @@
package main
import (
-// "git.wit.org/wit/gui/toolkit"
+ "git.wit.org/wit/gui/toolkit"
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
@@ -22,15 +22,15 @@ import (
func (p *node) newTab(n *node) {
var newt *andlabsT
+ if (p.WidgetType != toolkit.Window) {
+ log(debugToolkit, "newTab() uiWindow == nil. I can't add a toolbar without window", n.WidgetId, n.ParentId)
+ return
+ }
t := p.tk
log(debugToolkit, "newTab() START", n.WidgetId, n.ParentId)
if (t.uiTab == nil) {
- if (t.uiWindow == nil) {
- log(debugToolkit, "newTab() uiWindow == nil. I can't add a toolbar without window", n.WidgetId, n.ParentId)
- return
- }
// this means you have to make a new tab
log(debugToolkit, "newTab() GOOD. This should be the first tab:", n.WidgetId, n.ParentId)
newt = rawTab(t.uiWindow, n.Text)
@@ -41,22 +41,6 @@ func (p *node) newTab(n *node) {
newt = t.appendTab(n.Text)
}
- // add the structure to the array
- if (andlabs[n.WidgetId] == nil) {
- log(logInfo, "newTab() MAPPED", n.WidgetId, n.ParentId)
- andlabs[n.WidgetId] = newt
- newt.WidgetType = n.WidgetType
- } else {
- log(debugError, "newTab() DO WHAT?", n.WidgetId, n.ParentId)
- log(debugError, "THIS IS BAD")
- }
-
- newt.Name = n.Name
-
- log(debugToolkit, "t:")
- t.Dump(debugToolkit)
- log(debugToolkit, "newt:")
- newt.Dump(debugToolkit)
n.tk = newt
}
diff --git a/toolkit/andlabs/textbox.go b/toolkit/andlabs/textbox.go
index 5dca1bc..56788d8 100644
--- a/toolkit/andlabs/textbox.go
+++ b/toolkit/andlabs/textbox.go
@@ -13,8 +13,8 @@ func (p *node) newTextbox(n *node) {
newt.uiControl = e
e.OnChanged(func(spin *ui.MultilineEntry) {
- newt.s = spin.Text()
- newt.doUserEvent()
+ n.S = spin.Text()
+ n.doUserEvent()
})
n.tk = newt
p.place(n)
diff --git a/toolkit/andlabs/widget.go b/toolkit/andlabs/widget.go
deleted file mode 100644
index 45c584a..0000000
--- a/toolkit/andlabs/widget.go
+++ /dev/null
@@ -1,24 +0,0 @@
-package main
-
-import (
- // "git.wit.org/wit/gui/toolkit"
-)
-
-// This is a map between the widgets in wit/gui and the internal structures of gocui
-
-// var mapWidgets map[*andlabsT]*toolkit.Widget
-// var mapToolkits map[*toolkit.Widget]*andlabsT
-
-// This lists out the known mappings
-// deprecate and use instead the GUI interface
-func listMap(b bool) {
- log(b, "listMap() disabled HERE. output too big")
- return
- log(b, "listMap() HERE mapToolkits()")
- for i, t := range andlabs {
- log(b, "andlabs =", t, "widgetId =", i)
- t.Dump(b)
- }
- log(b, "listMap() HERE mapWidgets()")
- log(b, "listMap() HERE FIXME. output too big")
-}
diff --git a/toolkit/andlabs/window.go b/toolkit/andlabs/window.go
index 3e87b2c..ccc523a 100644
--- a/toolkit/andlabs/window.go
+++ b/toolkit/andlabs/window.go
@@ -3,8 +3,6 @@ package main
import (
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
-
- "git.wit.org/wit/gui/toolkit"
)
func (t *andlabsT) MessageWindow(msg1 string, msg2 string) {
@@ -19,31 +17,28 @@ func newWindow(n *node) {
var newt *andlabsT
newt = new(andlabsT)
- newt.WidgetType = toolkit.Window
- newt.wId = n.WidgetId
// menubar bool is if the OS defined border on the window should be used
win := ui.NewWindow(n.Name, n.X, n.Y, menubar)
win.SetBorderless(canvas)
win.SetMargined(margin)
win.OnClosing(func(*ui.Window) bool {
- newt.doUserEvent()
+ n.doUserEvent()
return true
})
newt.uiWindow = win
newt.uiControl = win
- newt.Name = n.Name
n.tk = newt
win.Show()
return
}
-func (t *andlabsT) SetWindowTitle(title string) {
- log(debugToolkit, "toolkit NewWindow", t.Name, "title", title)
- win := t.uiWindow
+func (n *node) SetWindowTitle(title string) {
+ log(debugToolkit, "toolkit NewWindow", n.Text, "title", title)
+ win := n.tk.uiWindow
if (win == nil) {
- log(debugError, "Error: no window", t.wId)
+ log(debugError, "Error: no window", n.WidgetId)
} else {
win.SetTitle(title)
log(debugToolkit, "Setting the window title", title)