summaryrefslogtreecommitdiff
path: root/toolkit/andlabs/button.go
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/andlabs/button.go')
-rw-r--r--toolkit/andlabs/button.go75
1 files changed, 7 insertions, 68 deletions
diff --git a/toolkit/andlabs/button.go b/toolkit/andlabs/button.go
index 4ae791c..741ce3a 100644
--- a/toolkit/andlabs/button.go
+++ b/toolkit/andlabs/button.go
@@ -7,24 +7,23 @@ import (
"git.wit.org/wit/gui/toolkit"
)
-func newButton(parentW *toolkit.Widget, w *toolkit.Widget) {
+func newButton(a *toolkit.Action) {
var t, newt *andlabsT
var b *ui.Button
+ w := a.Widget
log(debugToolkit, "newButton()", w.Name)
- t = mapToolkits[parentW]
+ t = mapToolkits[a.Where]
if (t == nil) {
- log(debugToolkit, "newButton() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "newButton() toolkit struct == nil. name=", a.Where.Name, w.Name)
return
}
- if t.broken() {
- return
- }
newt = new(andlabsT)
b = ui.NewButton(w.Name)
newt.uiButton = b
+ newt.uiControl = b
newt.tw = w
newt.parent = t
@@ -32,66 +31,6 @@ func newButton(parentW *toolkit.Widget, w *toolkit.Widget) {
newt.commonChange(newt.tw)
})
- log(debugToolkit, "newButton() about to append to Box parent t:", w.Name)
- log(debugToolkit, "newButton() about to append to Box new t:", w.Name)
- if (debugToolkit) {
- ShowDebug ()
- }
-
- if (t.uiBox != nil) {
- t.uiBox.Append(b, stretchy)
- } else if (t.uiWindow != nil) {
- t.uiWindow.SetChild(b)
- } else {
- log(debugError, "ERROR: wit/gui andlabs couldn't place this button in a box or a window")
- log(debugError, "ERROR: wit/gui andlabs couldn't place this button in a box or a window")
- return
- }
-
- mapWidgetsToolkits(w, newt)
-}
-
-// This routine is very specific to this toolkit
-// It's annoying and has to be copied to each widget when there are changes
-// it could be 'simplfied' maybe or made to be more generic, but this is as far as I've gotten
-// it's probably not worth working much more on this toolkit, the andlabs/ui has been great and got me here!
-// but it's time to write direct GTK, QT, macos and windows toolkit plugins
-// -- jcarr 2023/03/09
-
-func doButton(p *toolkit.Widget, c *toolkit.Widget) {
- if broken(c) {
- return
- }
- if (c.Action == "New") {
- newButton(p, c)
- return
- }
- ct := mapToolkits[c]
- if (ct == nil) {
- log(debugError, "Trying to do something on a widget that doesn't work or doesn't exist or something", c)
- return
- }
- if ct.broken() {
- log(debugError, "Button() ct.broken", ct)
- return
- }
- if (ct.uiButton == nil) {
- log(debugError, "Button() uiButton == nil", ct)
- return
- }
- log(debugToolkit, "Going to attempt:", c.Action)
- switch c.Action {
- case "Enable":
- ct.uiButton.Enable()
- case "Disable":
- ct.uiButton.Disable()
- case "Show":
- ct.uiButton.Show()
- case "Hide":
- ct.uiButton.Hide()
- case "Set":
- ct.uiButton.SetText(c.S)
- default:
- log(debugError, "Can't do", c.Action, "to a Button")
- }
+ place(a, t, newt)
+ mapWidgetsToolkits(a, newt)
}