summaryrefslogtreecommitdiff
path: root/toolkit/andlabs
diff options
context:
space:
mode:
Diffstat (limited to 'toolkit/andlabs')
-rw-r--r--toolkit/andlabs/box.go22
-rw-r--r--toolkit/andlabs/button.go52
-rw-r--r--toolkit/andlabs/checkbox.go41
-rw-r--r--toolkit/andlabs/common.go72
-rw-r--r--toolkit/andlabs/debug.go193
-rw-r--r--toolkit/andlabs/demo.go4
-rw-r--r--toolkit/andlabs/dropdown.go26
-rw-r--r--toolkit/andlabs/group.go16
-rw-r--r--toolkit/andlabs/label.go66
-rw-r--r--toolkit/andlabs/log.go136
-rw-r--r--toolkit/andlabs/main.go32
-rw-r--r--toolkit/andlabs/plugin.go30
-rw-r--r--toolkit/andlabs/slider.go15
-rw-r--r--toolkit/andlabs/spinner.go9
-rw-r--r--toolkit/andlabs/structs.go208
-rw-r--r--toolkit/andlabs/tab.go55
-rw-r--r--toolkit/andlabs/textbox.go23
-rw-r--r--toolkit/andlabs/window.go34
18 files changed, 591 insertions, 443 deletions
diff --git a/toolkit/andlabs/box.go b/toolkit/andlabs/box.go
index bb9945e..463b89a 100644
--- a/toolkit/andlabs/box.go
+++ b/toolkit/andlabs/box.go
@@ -1,7 +1,5 @@
package main
-import "log"
-
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
@@ -12,14 +10,10 @@ func (t *andlabsT) GetBox() *ui.Box {
// create a new box
func (t *andlabsT) NewBox() *andlabsT {
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewBox() START create default")
- }
+ log(debugToolkit, "gui.Toolbox.NewBox() START create default")
t.Dump()
if (t.uiGroup != nil) {
- if (DebugToolkit) {
- log.Println("\tgui.Toolbox.NewBox() is a Group")
- }
+ log(debugToolkit, "\tgui.Toolbox.NewBox() is a Group")
var newTK andlabsT
vbox := ui.NewVerticalBox()
@@ -30,9 +24,7 @@ func (t *andlabsT) NewBox() *andlabsT {
return &newTK
}
if (t.uiBox != nil) {
- if (DebugToolkit) {
- log.Println("\tgui.Toolbox.NewBox() is a Box")
- }
+ log(debugToolkit, "\tgui.Toolbox.NewBox() is a Box")
var newTK andlabsT
vbox := ui.NewVerticalBox()
@@ -44,9 +36,7 @@ func (t *andlabsT) NewBox() *andlabsT {
return &newTK
}
if (t.uiWindow != nil) {
- if (DebugToolkit) {
- log.Println("\tgui.Toolbox.NewBox() is a Window")
- }
+ log(debugToolkit, "\tgui.Toolbox.NewBox() is a Window")
var newT andlabsT
vbox := ui.NewVerticalBox()
@@ -58,9 +48,7 @@ func (t *andlabsT) NewBox() *andlabsT {
// panic("WTF")
return &newT
}
- if (DebugToolkit) {
- log.Println("\tgui.Toolbox.NewBox() FAILED. Couldn't figure out where to make a box")
- }
+ log(debugToolkit, "\tgui.Toolbox.NewBox() FAILED. Couldn't figure out where to make a box")
t.Dump()
return nil
}
diff --git a/toolkit/andlabs/button.go b/toolkit/andlabs/button.go
index bd80683..9933e1f 100644
--- a/toolkit/andlabs/button.go
+++ b/toolkit/andlabs/button.go
@@ -1,21 +1,20 @@
package main
-import "log"
-// import "os"
+import (
+ "github.com/andlabs/ui"
+ _ "github.com/andlabs/ui/winmanifest"
+ "git.wit.org/wit/gui/toolkit"
+)
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
-
-import "git.wit.org/wit/gui/toolkit"
func NewButton(parentW *toolkit.Widget, w *toolkit.Widget) {
var t, newt *andlabsT
var b *ui.Button
- log.Println("gui.andlabs.NewButton()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewButton()", w.Name)
t = mapToolkits[parentW]
if (t == nil) {
- log.Println("go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
return
}
@@ -28,38 +27,29 @@ func NewButton(parentW *toolkit.Widget, w *toolkit.Widget) {
newt.uiButton = b
b.OnClicked(func(*ui.Button) {
- if (DebugToolkit) {
- log.Println("TODO: IN TOOLKIT GOROUTINE. SHOULD LEAVE HERE VIA channels. button name =", w.Name)
- log.Println("FOUND WIDGET!", w)
- }
- if (w.Custom != nil) {
- w.Custom()
- return
- }
- if (w.Event != nil) {
- w.Event(w)
+ log(debugChange, "TODO: SHOULD LEAVE Button click HERE VIA channels. button name =", w.Name)
+ log(debugChange, "FOUND WIDGET =", w)
+ if (w.Custom == nil) {
+ log(debugChange, "WIDGET DOES NOT have Custom()")
+ log(debugChange, "TODO: NOTHING TO DO button name =", w.Name)
return
}
- t.Dump()
- newt.Dump()
- if (DebugToolkit) {
- log.Println("TODO: LEFT TOOLKIT GOROUTINE WITH NOTHING TO DO button name =", w.Name)
- }
+ // t.Dump()
+ // newt.Dump()
+ log(debugChange, "Running w.Custom()")
+ w.Custom()
})
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewButton() about to append to Box parent t:", w.Name)
- t.Dump()
- log.Println("gui.Toolbox.NewButton() about to append to Box new t:", w.Name)
- newt.Dump()
- }
+ log(debugToolkit, "gui.Toolbox.NewButton() about to append to Box parent t:", w.Name)
+ log(debugToolkit, "gui.Toolbox.NewButton() about to append to Box new t:", w.Name)
+
if (t.uiBox != nil) {
t.uiBox.Append(b, stretchy)
} else if (t.uiWindow != nil) {
t.uiWindow.SetChild(b)
} else {
- log.Println("ERROR: wit/gui andlabs couldn't place this button in a box or a window")
- log.Println("ERROR: wit/gui andlabs couldn't place this button in a box or a window")
+ log(debugToolkit, "ERROR: wit/gui andlabs couldn't place this button in a box or a window")
+ log(debugToolkit, "ERROR: wit/gui andlabs couldn't place this button in a box or a window")
return
}
diff --git a/toolkit/andlabs/checkbox.go b/toolkit/andlabs/checkbox.go
index b4b1524..5466d17 100644
--- a/toolkit/andlabs/checkbox.go
+++ b/toolkit/andlabs/checkbox.go
@@ -1,12 +1,12 @@
package main
-import "log"
+import "git.wit.org/wit/gui/toolkit"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t andlabsT) NewCheckbox(name string) *andlabsT {
- log.Println("gui.Toolkit.NewCheckbox()", name)
+func (t andlabsT) NewCheckbox(name string, f func()) *andlabsT {
+ log(debugToolkit, "gui.Toolkit.NewCheckbox()", name)
var newt andlabsT
if t.broken() {
@@ -17,9 +17,20 @@ func (t andlabsT) NewCheckbox(name string) *andlabsT {
newt.uiCheckbox = c
newt.uiBox = t.uiBox
t.uiBox.Append(c, stretchy)
+ // newt.Custom = f
c.OnToggled(func(spin *ui.Checkbox) {
+ // log(debugToolkit, "gui.Toolkit.NewCheckbox() clicked", name)
newt.commonChange("Checkbox")
+ /*
+ if (f != nil) {
+ log(debugToolkit, "Run custom() here", f)
+ log(SPEW, f)
+ f()
+ } else {
+ log(debugToolkit, "No custom() function here")
+ }
+ */
})
return &newt
@@ -32,3 +43,27 @@ func (t andlabsT) Checked() bool {
return t.uiCheckbox.Checked()
}
+
+func NewCheckbox(parentW *toolkit.Widget, w *toolkit.Widget) {
+ log(debugToolkit, "gui.andlabs.NewCheckbox()", w.Name)
+
+ t := mapToolkits[parentW]
+ if (t == nil) {
+ listMap()
+ }
+ newt := t.NewCheckbox(w.Name, w.Custom)
+ newt.Custom = w.Custom
+ /*
+ if (w.Custom != nil) {
+ log(true, "go.andlabs.NewCheckbox() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(true, "Run custom() START here", w.Custom)
+ w.Custom()
+ log(true, "Run custom() END")
+ // exit("ran it here")
+ } else {
+ log(true, "No custom() function here")
+ // exit("nothing here")
+ }
+ */
+ mapWidgetsToolkits(w, newt)
+}
diff --git a/toolkit/andlabs/common.go b/toolkit/andlabs/common.go
index fc6cbe8..94e19e1 100644
--- a/toolkit/andlabs/common.go
+++ b/toolkit/andlabs/common.go
@@ -1,37 +1,63 @@
package main
-import "log"
-
+// This is important. This sets the defaults for the gui. Without this, there isn't correct padding, etc
func init() {
- if (DebugToolkit) {
- log.Println("gui/toolkit init() Setting defaultBehavior = true")
- }
+ // Can you pass values to a plugin init() ? Otherwise, there is no way to safely print
+ // log(debugToolkit, "gui/toolkit init() Setting defaultBehavior = true")
setDefaultBehavior(true)
}
func (t andlabsT) commonChange(widget string) {
s := t.String()
- if (DebugToolkit) {
- log.Println("gui.Toolkit.ui.OnChanged() =", s)
- }
+ log(debugChange, "commonChange() START widget =", widget)
+ log(debugChange, "commonChange() t.String =", s)
if (t.OnChanged != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.OnChanged() trying to run toolkit.OnChanged() entered val =", s)
- }
- t.OnChanged(&t)
+ // log(debugChange, "commonChange() toolkit.OnChanged() START")
+ // t.OnChanged(&t)
+ exit("OnChanged is not implemented. TODO: FIX THIS")
return
}
if (t.Custom != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.OnChanged() Running toolkit.Custom()")
- t.Dump()
- }
+ log(debugChange, "commonChange() START toolkit.Custom()")
t.Custom()
+ log(debugChange, "commonChange() END toolkit.Custom()")
+ return
+ }
+ if (widget == "Checkbox") {
+ log(debugChange, "commonChange() END Need to read the Checkbox value")
+ return
+ }
+ if (widget == "Dropdown") {
+ t.getDropdown()
+ if (t.tw == nil) {
+ log(debugChange, "commonChange() END tw.Custom == nil")
+ }
+ if (t.tw.Custom == nil) {
+ log(debugChange, "commonChange() END Dropdown (no custom())")
+ }
+ t.tw.Custom()
+ log(debugChange, "commonChange() END Dropdown")
+ return
+ }
+ log(debugChange, "commonChange() t.String =", s)
+ log(debugChange, "commonChange() ENDED without finding any callback")
+}
+
+func (t *andlabsT) getDropdown() {
+ log(debugChange, "commonChange() Need to read the dropdown menu")
+ if (t.uiCombobox == nil) {
+ log(debugChange, "commonChange() END BAD NEWS. t.uiCombobox == nil")
return
}
- if (DebugToolkit) {
- log.Println("gui.Toolkit.OnChanged() ENDED without finding any callback")
+ i := t.uiCombobox.Selected()
+ log(debugChange, "commonChange() t.uiCombobox = ", i)
+ if (t.tw == nil) {
+ log(debugChange, "commonChange() END tw = nil")
+ return
}
+ t.tw.S = t.String()
+ log(debugChange, "commonChange() END tw = ", t.tw)
+ return
}
// does some sanity checks on the internal structs of the binary tree
@@ -39,21 +65,19 @@ func (t andlabsT) commonChange(widget string) {
func (t *andlabsT) broken() bool {
if (t.uiBox == nil) {
if (t.uiWindow != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.UiBox == nil. This is an empty window. Try to add a box")
- }
+ log(debugToolkit, "gui.Toolkit.UiBox == nil. This is an empty window. Try to add a box")
t.NewBox()
return false
}
- log.Println("gui.Toolkit.UiBox == nil. I can't add a widget without a place to put it")
- // log.Println("probably could just make a box here?")
+ log(debugToolkit, "gui.Toolkit.UiBox == nil. I can't add a widget without a place to put it")
+ // log(debugToolkit, "probably could just make a box here?")
// corruption or something horrible?
panic("wit/gui toolkit/andlabs func broken() invalid goroutine access into this toolkit?")
panic("wit/gui toolkit/andlabs func broken() this probably should not cause the app to panic here (?)")
return true
}
if (t.uiWindow == nil) {
- log.Println("gui.Toolkit.UiWindow == nil. I can't add a widget without a place to put it (IGNORING FOR NOW)")
+ log(debugToolkit, "gui.Toolkit.UiWindow == nil. I can't add a widget without a place to put it (IGNORING FOR NOW)")
forceDump(t)
return false
}
diff --git a/toolkit/andlabs/debug.go b/toolkit/andlabs/debug.go
new file mode 100644
index 0000000..9b7e160
--- /dev/null
+++ b/toolkit/andlabs/debug.go
@@ -0,0 +1,193 @@
+package main
+
+// import "git.wit.org/wit/gui/toolkit"
+
+import "github.com/davecgh/go-spew/spew"
+
+var defaultBehavior bool = true
+
+var bookshelf bool // do you want things arranged in the box like a bookshelf or a stack?
+var canvas bool // if set to true, the windows are a raw canvas
+var menubar bool // for windows
+var stretchy bool // expand things like buttons to the maximum size
+var padded bool // add space between things like buttons
+var margin bool // add space around the frames of windows
+
+var debugToolkit bool
+var debugChange bool
+// var DebugToolkit bool
+
+// This is important. This sets the defaults for the gui. Without this, there isn't correct padding, etc
+func setDefaultBehavior(s bool) {
+ defaultBehavior = s
+ if (defaultBehavior) {
+ log(debugToolkit, "Setting this toolkit to use the default behavior.")
+ log(debugToolkit, "This is the 'guessing' part as defined by the wit/gui 'Principles'. Refer to the docs.")
+ stretchy = false
+ padded = true
+ menubar = true
+ margin = true
+ canvas = false
+ bookshelf = true // 99% of the time, things make a vertical stack of objects
+ } else {
+ log(debugToolkit, "This toolkit is set to ignore the default behavior.")
+ }
+}
+
+func SetDebugToolkit (s bool) {
+ debugToolkit = s
+ log(true, "debugToolkit =", debugToolkit)
+ log(true, "debugChange =", debugChange)
+}
+
+func SetDebugChange (s bool) {
+ debugChange = s
+ log(true, "debugToolkit =", debugToolkit)
+ log(true, "debugChange =", debugChange)
+}
+
+func ShowDebug () {
+ log(true, "debugToolkit =", debugToolkit)
+ log(true, "debugChange =", debugChange)
+}
+
+func GetDebugToolkit () bool {
+ return debugToolkit
+}
+
+func (t *andlabsT) String() string {
+ return t.GetText()
+}
+
+func forceDump(t *andlabsT) {
+ tmp := debugToolkit
+ debugToolkit = true
+ t.Dump()
+ debugToolkit = tmp
+}
+
+func (t *andlabsT) GetText() string {
+ log(debugToolkit, "gui.Toolkit.GetText() Enter debugToolkit=", debugToolkit)
+ if (t.uiEntry != nil) {
+ log(debugToolkit, "gui.Toolkit.uiEntry.Text() =", t.uiEntry.Text())
+ return t.uiEntry.Text()
+ }
+ if (t.uiMultilineEntry != nil) {
+ log(debugToolkit, "gui.Toolkit.uiMultilineEntry.Text() =", t.uiMultilineEntry.Text())
+ text := t.uiMultilineEntry.Text()
+ log(debugToolkit, "gui.Toolkit.uiMultilineEntry.Text() =", text)
+ t.text = text
+ return text
+ }
+ if (t.uiCombobox != nil) {
+ log(debugToolkit, "gui.Toolkit.uiCombobox() =", t.text)
+ return t.text
+ }
+ return ""
+}
+
+func (t *andlabsT) SetText(s string) bool {
+ log(debugToolkit, "gui.Toolkit.Text() SetText() Enter")
+ if (t.uiEntry != nil) {
+ log(debugToolkit, "gui.Toolkit.Value() =", t.uiEntry.Text)
+ t.uiEntry.SetText(s)
+ return true
+ }
+ if (t.uiMultilineEntry != nil) {
+ log(debugToolkit, "gui.Toolkit.Value() =", t.uiMultilineEntry.Text)
+ t.uiMultilineEntry.SetText(s)
+ return true
+ }
+ return false
+}
+
+func sanity(t *andlabsT) bool {
+ if (debugToolkit) {
+ log(debugToolkit, "gui.Toolkit.Value() Enter")
+ scs := spew.ConfigState{MaxDepth: 1}
+ scs.Dump(t)
+ }
+ if (t.uiEntry == nil) {
+ log(debugToolkit, "gui.Toolkit.Value() =", t.uiEntry.Text)
+ return false
+ }
+ return true
+}
+
+func (t *andlabsT) SetValue(i int) bool {
+ log(debugToolkit, "gui.Toolkit.SetValue() START")
+ if (sanity(t)) {
+ return false
+ }
+ t.Dump()
+ // panic("got to toolkit.SetValue")
+ return true
+}
+
+func (t *andlabsT) Value() int {
+ if (debugToolkit) {
+ log(debugToolkit, "gui.Toolkit.Value() Enter")
+ scs := spew.ConfigState{MaxDepth: 1}
+ scs.Dump(t)
+ }
+ if (t == nil) {
+ log(debugToolkit, "gui.Toolkit.Value() can not get value t == nil")
+ return 0
+ }
+ if (t.uiSlider != nil) {
+ log(debugToolkit, "gui.Toolkit.Value() =", t.uiSlider.Value)
+ return t.uiSlider.Value()
+ }
+ if (t.uiSpinbox != nil) {
+ log(debugToolkit, "gui.Toolkit.Value() =", t.uiSpinbox.Value)
+ return t.uiSpinbox.Value()
+ }
+ log(debugToolkit, "gui.Toolkit.Value() Could not find a ui element to get a value from")
+ return 0
+}
+
+func (t *andlabsT) Dump() {
+ if ! debugToolkit {
+ return
+ }
+ log(debugToolkit, "gui.Toolkit.Dump() Name = ", t.Name, t.Width, t.Height)
+ if (t.uiBox != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiBox =", t.uiBox)
+ }
+ if (t.uiButton != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiButton =", t.uiButton)
+ }
+ if (t.uiCombobox != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiCombobox =", t.uiCombobox)
+ }
+ if (t.uiWindow != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiWindow =", t.uiWindow)
+ }
+ if (t.uiTab != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiTab =", t.uiTab)
+ }
+ if (t.uiGroup != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiGroup =", t.uiGroup)
+ }
+ if (t.uiEntry != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiEntry =", t.uiEntry)
+ }
+ if (t.uiMultilineEntry != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiMultilineEntry =", t.uiMultilineEntry)
+ }
+ if (t.uiSlider != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiSlider =", t.uiSlider)
+ }
+ if (t.uiCheckbox != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() uiCheckbox =", t.uiCheckbox)
+ }
+ if (t.OnExit != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() OnExit =", t.OnExit)
+ }
+ if (t.Custom != nil) {
+ log(debugToolkit, "gui.Toolkit.Dump() Custom =", t.Custom)
+ }
+ log(debugToolkit, "gui.Toolkit.Dump() c =", t.c)
+ log(debugToolkit, "gui.Toolkit.Dump() val =", t.val)
+ log(debugToolkit, "gui.Toolkit.Dump() text =", t.text)
+}
diff --git a/toolkit/andlabs/demo.go b/toolkit/andlabs/demo.go
index 0781f88..1b9a2b1 100644
--- a/toolkit/andlabs/demo.go
+++ b/toolkit/andlabs/demo.go
@@ -1,7 +1,5 @@
package main
-import "log"
-
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
@@ -22,7 +20,7 @@ func BlankWindow(w *ui.Window) *ui.Box {
func (t *andlabsT) DemoNumbersPage() {
var w *ui.Window
- log.Println("Starting wit/gui toolkit andlabs/ui DemoNumbersPage()")
+ log(debugToolkit, "Starting wit/gui toolkit andlabs/ui DemoNumbersPage()")
w = t.uiWindow
t.uiBox = makeNumbersPage()
diff --git a/toolkit/andlabs/dropdown.go b/toolkit/andlabs/dropdown.go
index 1e1886a..2691a62 100644
--- a/toolkit/andlabs/dropdown.go
+++ b/toolkit/andlabs/dropdown.go
@@ -1,8 +1,5 @@
package main
-import "log"
-// import "time"
-
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
@@ -10,11 +7,10 @@ import "git.wit.org/wit/gui/toolkit"
func (t *andlabsT) NewDropdown(title string) *andlabsT {
// make new node here
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewDropdownCombobox()", title)
- }
var newt andlabsT
+ log(debugToolkit, "gui.Toolbox.NewDropdownCombobox()", title)
+
if t.broken() {
return nil
}
@@ -31,7 +27,7 @@ func (t *andlabsT) NewDropdown(title string) *andlabsT {
s.OnSelected(func(spin *ui.Combobox) {
i := spin.Selected()
if (newt.val == nil) {
- log.Println("make map didn't work")
+ log(debugToolkit, "make map didn't work")
newt.text = "error"
}
newt.text = newt.val[i]
@@ -44,7 +40,7 @@ func (t *andlabsT) NewDropdown(title string) *andlabsT {
func (t *andlabsT) AddDropdownName(title string) {
t.uiCombobox.Append(title)
if (t.val == nil) {
- log.Println("make map didn't work")
+ log(debugToolkit, "make map didn't work")
return
}
t.val[t.c] = title
@@ -56,34 +52,36 @@ func (t andlabsT) SetDropdown(i int) {
}
func NewDropdown(parentW *toolkit.Widget, w *toolkit.Widget) {
- log.Println("gui.andlabs.NewDropdown()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewDropdown()", w.Name)
t := mapToolkits[parentW]
if (t == nil) {
- log.Println("go.andlabs.NewDropdown() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewDropdown() toolkit struct == nil. name=", parentW.Name, w.Name)
listMap()
}
newt := t.NewDropdown(w.Name)
+ newt.Custom = w.Custom
+ newt.tw = w
mapWidgetsToolkits(w, newt)
}
func AddDropdownName(w *toolkit.Widget, s string) {
- log.Println("gui.andlabs.AddDropdownName()", w.Name, "add:", s)
+ log(debugToolkit, "gui.andlabs.AddDropdownName()", w.Name, "add:", s)
t := mapToolkits[w]
if (t == nil) {
- log.Println("go.andlabs.AddDropdownName() toolkit struct == nil. name=", w.Name, s)
+ log(debugToolkit, "go.andlabs.AddDropdownName() toolkit struct == nil. name=", w.Name, s)
listMap()
}
t.AddDropdownName(s)
}
func SetDropdown(w *toolkit.Widget, i int) {
- log.Println("gui.andlabs.SetDropdown()", i)
+ log(debugToolkit, "gui.andlabs.SetDropdown()", i)
t := mapToolkits[w]
if (t == nil) {
- log.Println("go.andlabs.SetDropdown() toolkit struct == nil. name=", w.Name, i)
+ log(debugToolkit, "go.andlabs.SetDropdown() toolkit struct == nil. name=", w.Name, i)
listMap()
}
t.SetDropdown(i)
diff --git a/toolkit/andlabs/group.go b/toolkit/andlabs/group.go
index e93247a..1762b7f 100644
--- a/toolkit/andlabs/group.go
+++ b/toolkit/andlabs/group.go
@@ -1,8 +1,6 @@
package main
import (
- "log"
-
"git.wit.org/wit/gui/toolkit"
"github.com/andlabs/ui"
@@ -10,11 +8,11 @@ import (
)
func NewGroup(parentW *toolkit.Widget, w *toolkit.Widget) {
- log.Println("gui.andlabs.NewGroup()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewGroup()", w.Name)
t := mapToolkits[parentW]
if (t == nil) {
- log.Println("go.andlabs.NewGroup() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewGroup() toolkit struct == nil. name=", parentW.Name, w.Name)
listMap()
}
newt := t.NewGroup(w.Name)
@@ -25,9 +23,8 @@ func NewGroup(parentW *toolkit.Widget, w *toolkit.Widget) {
func (t andlabsT) NewGroup(title string) *andlabsT {
var newt andlabsT
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewGroup() create", title)
- }
+ log(debugToolkit, "gui.Toolbox.NewGroup() create", title)
+
g := ui.NewGroup(title)
g.SetMargined(margin)
@@ -36,8 +33,9 @@ func (t andlabsT) NewGroup(title string) *andlabsT {
} else if (t.uiWindow != nil) {
t.uiWindow.SetChild(g)
} else {
- log.Println("gui.ToolboxNode.NewGroup() node.UiBox == nil. I can't add a range UI element without a place to put it")
- log.Fatalln("probably could just make a box here?")
+ log(debugToolkit, "gui.ToolboxNode.NewGroup() node.UiBox == nil. I can't add a range UI element without a place to put it")
+ log(debugToolkit, "probably could just make a box here?")
+ exit("internal wit/gui error")
}
hbox := ui.NewVerticalBox()
diff --git a/toolkit/andlabs/label.go b/toolkit/andlabs/label.go
index c5a6896..e990b42 100644
--- a/toolkit/andlabs/label.go
+++ b/toolkit/andlabs/label.go
@@ -1,42 +1,72 @@
package main
-import "log"
+import (
+ "github.com/andlabs/ui"
+ _ "github.com/andlabs/ui/winmanifest"
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
+ "git.wit.org/wit/gui/toolkit"
+)
-import "git.wit.org/wit/gui/toolkit"
+var pwLabel *toolkit.Widget
+var wLabel *toolkit.Widget
+var tmpNewt *andlabsT
func NewLabel(parentW *toolkit.Widget, w *toolkit.Widget) {
+ pwLabel = parentW
+ wLabel = w
+ tmpNewt = new(andlabsT)
+ tmpNewt.Width = 10
+ log(debugToolkit, "mapWidgets in ui.QueueMain() START newt =", tmpNewt.Width, tmpNewt)
+ if (tmpNewt == nil) {
+ log(debugToolkit, "mapWidgets WHY THE HELL IS THIS NIL?", tmpNewt.Width, tmpNewt)
+ }
+ ui.QueueMain(newLabel)
+
+ log(true, "sleep(.2) HACK. TODO: wrap spinlock around andlabs.ui goroutine")
+ // log(true, "sleep(.2) HACK. TODO: verify newLabel() is running inside andlabs/ui goroutine") // verified that worked
+ sleep(.2)
+ log(debugToolkit, "mapWidgets parentW/wLabel =", pwLabel)
+ log(debugToolkit, "mapWidgets new/newt =", tmpNewt)
+ mapWidgetsToolkits(w, tmpNewt)
+
+ /*
+ t := mapToolkits[parentW]
+ if (t == nil) {
+ log(debugToolkit, "go.andlabs.NewDropdown() toolkit struct == nil. name=", parentW.Name, w.Name)
+ listMap()
+ }
+ newt := t.NewDropdown(w.Name)
+ mapWidgetsToolkits(w, newt)
+ */
+}
+
+func newLabel() {
var t, newt *andlabsT
- log.Println("gui.andlabs.NewButton()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewButton()", wLabel.Name)
- t = mapToolkits[parentW]
+ t = mapToolkits[pwLabel]
if (t == nil) {
- log.Println("go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewButton() toolkit struct == nil. name=", pwLabel.Name, wLabel.Name)
return
}
if t.broken() {
return
}
- newt = new(andlabsT)
+ newt = tmpNewt
- newt.uiLabel = ui.NewLabel(w.Name)
+ newt.uiLabel = ui.NewLabel(wLabel.Name)
newt.uiBox = t.uiBox
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewButton() about to append to Box parent t:", w.Name)
- t.Dump()
- log.Println("gui.Toolbox.NewButton() about to append to Box new t:", w.Name)
- newt.Dump()
- }
+ log(debugToolkit, "gui.Toolbox.NewButton() about to append to Box parent t:", wLabel.Name)
+ t.Dump()
+ log(debugToolkit, "gui.Toolbox.NewButton() about to append to Box new t:", wLabel.Name)
+ newt.Dump()
+
if (t.uiBox != nil) {
t.uiBox.Append(newt.uiLabel, false)
} else {
- log.Println("ERROR: wit/gui andlabs couldn't place this label in a box")
+ log(debugToolkit, "ERROR: wit/gui andlabs couldn't place this label in a box")
return
}
-
- mapWidgetsToolkits(w, newt)
}
diff --git a/toolkit/andlabs/log.go b/toolkit/andlabs/log.go
new file mode 100644
index 0000000..fff5ba8
--- /dev/null
+++ b/toolkit/andlabs/log.go
@@ -0,0 +1,136 @@
+//
+// version v1.2
+//
+// I like things to be easy.
+//
+// this means all the log settings are in one place. it should allow
+// things to be over-ridden externally to the library
+// but still allow command line --args to pass debugging settings
+//
+// I also have a generic sleep() and exit() in here because it's simple
+//
+// Usage:
+//
+// log("something", foo, bar)
+// var DEBUG bool = true
+// log(DEBUG, "something else", someOtherVariable) # if DEBUG == false, return doing nothing
+// log(SPEW, "something else", someOtherVariable) # this get's sent to spew.Dump(). Very useful for debugging!
+//
+package main
+
+import (
+ "os"
+ "runtime"
+ "runtime/pprof"
+ golog "log"
+ "time"
+ "reflect"
+ "github.com/davecgh/go-spew/spew"
+ // "net"
+)
+
+var LOGOFF bool = false // turn this off, all logging stops
+var WARN bool
+var INFO bool
+
+type spewt struct {
+ a bool
+}
+
+var SPEW spewt
+
+
+/*
+ sleep() # you know what this does? sleeps for 1 second. yep. dump. easy.
+ sleep(.1) # you know what this does? yes, it sleeps for 1/10th of a second
+*/
+func sleep(a ...any) {
+ if (a == nil) {
+ time.Sleep(time.Second)
+ return
+ }
+
+ log(true, "sleep", a[0])
+
+ switch a[0].(type) {
+ case int:
+ time.Sleep(time.Duration(a[0].(int)) * time.Second)
+ case float64:
+ time.Sleep(time.Duration(a[0].(float64) * 1000) * time.Millisecond)
+ default:
+ log("sleep a[0], type = ", a[0], reflect.TypeOf(a[0]))
+ }
+}
+
+/*
+ exit() # yep. exits. I guess everything must be fine
+ exit(3) # I guess 3 it is then
+ exit("dont like apples") # ok. I'll make a note of that
+*/
+func exit(a ...any) {
+ log(true, "exit", a)
+ //if (a) {
+ // os.Exit(a)
+ //}
+ os.Exit(0)
+}
+
+/*
+ I've spent, am spending, too much time thinking about 'logging'. 'log', 'logrus', 'zap', whatever.
+ I'm not twitter. i don't give a fuck about how many nanoseconds it takes to log. Anyway, this
+ implementation is probably faster than all of those because you just set one bool to FALSE
+ and it all stops.
+ Sometimes I need to capture to stdout, sometimes stdout can't
+ work because it doesn't exist for the user. This whole thing is a PITA. Then it's spread
+ over 8 million references in every .go file. I'm tapping out and putting
+ it in one place. here it is. Also, this makes having debug levels really fucking easy.
+ You can define whatever level of logging you want from anywhere (command line) etc.
+
+ log() # doesn't do anything
+ log(stuff) # sends it to whatever log you define in a single place. here is the place
+*/
+
+func log(a ...any) {
+ if (LOGOFF) {
+ return
+ }
+
+ if (a == nil) {
+ return
+ }
+ var blah bool
+ if (reflect.TypeOf(a[0]) == reflect.TypeOf(blah)) {
+ // golog.Println("\t a[0] = bool")
+ if (a[0] == false) {
+ return
+ }
+ a[0] = "WIT/GUI/Toolkit"
+ }
+
+ if (reflect.TypeOf(a[0]) == reflect.TypeOf(SPEW)) {
+ // a = a[1:]
+ a[0] = "WIT/GUI/Toolkit"
+ if (debugToolkit) {
+ spew.Dump(a)
+ }
+ return
+ }
+
+ golog.Println(a...)
+}
+
+func loggo() {
+ pprof.Lookup("goroutine").WriteTo(os.Stdout, 1)
+ golog.Println("runtime.NumGoroutine() = ", runtime.NumGoroutine())
+}
+
+func logindent(depth int, format string, a ...interface{}) {
+ var tabs string
+ for i := 0; i < depth; i++ {
+ tabs = tabs + format
+ }
+
+ // newFormat := tabs + strconv.Itoa(depth) + " " + format
+ newFormat := tabs + format
+ log(debugToolkit, newFormat, a)
+}
diff --git a/toolkit/andlabs/main.go b/toolkit/andlabs/main.go
index 85e6913..73aaad5 100644
--- a/toolkit/andlabs/main.go
+++ b/toolkit/andlabs/main.go
@@ -1,9 +1,6 @@
package main
import (
- "log"
-// "time"
-
"git.wit.org/wit/gui/toolkit"
"github.com/andlabs/ui"
@@ -12,16 +9,14 @@ import (
)
func Main(f func()) {
- if (DebugToolkit) {
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
- }
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
ui.Main( func() {
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
- log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
+ log(debugToolkit, "Starting gui.Main() (using gtk via andlabs/ui)")
// time.Sleep(1 * time.Second)
// NewWindow2("helloworld2", 200, 100)
f()
@@ -37,21 +32,20 @@ func Main(f func()) {
// For example: Queue(NewWindow())
//
func Queue(f func()) {
- if (DebugToolkit) {
- log.Println("Sending function to ui.QueueMain() (using gtk via andlabs/ui)")
- }
- //ui.QueueMain(f)
- f()
+ log(debugToolkit, "Sending function to ui.QueueMain() (using gtk via andlabs/ui)")
+ log("THIS MIGHT BREAK")
+ ui.QueueMain(f)
+ // f()
}
func Init() {
- log.Println("should Init() here")
+ log(debugToolkit, "should Init() here")
mapWidgets = make(map[*andlabsT]*toolkit.Widget)
mapToolkits = make(map[*toolkit.Widget]*andlabsT)
}
func Quit() {
- log.Println("should Quit() here")
+ log(debugToolkit, "should Quit() here")
// myExit(nil)
}
diff --git a/toolkit/andlabs/plugin.go b/toolkit/andlabs/plugin.go
index f78e95e..5165178 100644
--- a/toolkit/andlabs/plugin.go
+++ b/toolkit/andlabs/plugin.go
@@ -1,8 +1,6 @@
package main
import (
- "log"
-
"git.wit.org/wit/gui/toolkit"
)
@@ -13,15 +11,15 @@ var mapToolkits map[*toolkit.Widget]*andlabsT
// This lists out the know mappings
func listMap() {
- log.Println("listMap() HERE")
- log.Println("listMap() HERE")
- log.Println("listMap() HERE mapWidgets()")
+ log(debugToolkit, "listMap() HERE")
+ log(debugToolkit, "listMap() HERE")
+ log(debugToolkit, "listMap() HERE mapWidgets()")
for t, w := range mapWidgets {
- log.Println("andlabs =", t.Name, "widget =", w.Name)
+ log(debugToolkit, "andlabs =", t.Name, "widget =", w.Name)
}
- log.Println("listMap() HERE mapToolkits()")
+ log(debugToolkit, "listMap() HERE mapToolkits()")
for w, t := range mapToolkits {
- log.Println("andlabs =", t, "widget =", w.Name)
+ log(debugToolkit, "andlabs =", t, "widget =", w.Name)
forceDump(t)
}
}
@@ -30,14 +28,22 @@ func mapWidgetsToolkits(w *toolkit.Widget, t *andlabsT) {
if (mapToolkits[w] == nil) {
mapToolkits[w] = t
} else {
- log.Println("WTF: mapToolkits already installed")
- panic("WTF")
+ log(debugToolkit, "WTF: mapToolkits was sent nil. this should not happen w =", w)
+ log(debugToolkit, "WTF: mapToolkits was sent nil. this should not happen t =", t.Width)
+ log(debugToolkit, "WTF: mapToolkits map already set to ", mapToolkits[w])
+ panic("WTF mapWidgetsToolkits() w == nil")
}
if (mapWidgets[t] == nil) {
mapWidgets[t] = w
} else {
- log.Println("WTF: mapWidgets already installed")
- panic("WTF")
+ log(debugToolkit, "WTF: mapWidgets already installed. w =", w)
+ log(debugToolkit, "WTF: mapWidgets already installed. t =", t.Width, t)
+ log(SPEW, &t)
+ log(SPEW, t)
+ log(SPEW, *t)
+ log(debugToolkit, "WTF: mapWidgets already mapped to", mapWidgets[t])
+ log(SPEW, mapWidgets[t])
+ panic("WTF. mapWidget andlabs toolkit already mapped to gui toolkit")
}
}
diff --git a/toolkit/andlabs/slider.go b/toolkit/andlabs/slider.go
index f9ff0f3..4857935 100644
--- a/toolkit/andlabs/slider.go
+++ b/toolkit/andlabs/slider.go
@@ -1,9 +1,6 @@
package main
import (
- "log"
- "os"
-
"git.wit.org/wit/gui/toolkit"
"github.com/andlabs/ui"
@@ -12,13 +9,13 @@ import (
func (t andlabsT) NewSlider(title string, x int, y int) *andlabsT {
// make new node here
- log.Println("gui.Toolkit.NewSpinbox()", x, y)
+ log(debugToolkit, "gui.Toolkit.NewSpinbox()", x, y)
var newt andlabsT
if (t.uiBox == nil) {
- log.Println("gui.ToolkitNode.NewGroup() node.UiBox == nil. I can't add a range UI element without a place to put it")
- log.Println("probably could just make a box here?")
- os.Exit(0)
+ log(debugToolkit, "gui.ToolkitNode.NewGroup() node.UiBox == nil. I can't add a range UI element without a place to put it")
+ log(debugToolkit, "probably could just make a box here?")
+ exit("internal golang wit/gui/toolkit error")
return nil
}
@@ -36,11 +33,11 @@ func (t andlabsT) NewSlider(title string, x int, y int) *andlabsT {
func NewSlider(parentW *toolkit.Widget, w *toolkit.Widget) {
var newt *andlabsT
- log.Println("gui.andlabs.NewTab()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewTab()", w.Name)
t := mapToolkits[parentW]
if (t == nil) {
- log.Println("go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
return
}
newt = t.NewSlider(w.Name, w.X, w.Y)
diff --git a/toolkit/andlabs/spinner.go b/toolkit/andlabs/spinner.go
index 6505b48..b98fb0c 100644
--- a/toolkit/andlabs/spinner.go
+++ b/toolkit/andlabs/spinner.go
@@ -1,19 +1,16 @@
package main
-import "log"
-import "os"
-
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
func (t andlabsT) NewSpinner(title string, x int, y int) *andlabsT {
// make new node here
- log.Println("gui.Toolkit.NewSpinner()", x, y)
+ log(debugToolkit, "gui.Toolkit.NewSpinner()", x, y)
var newt andlabsT
if (t.uiBox == nil) {
- log.Println("gui.ToolkitNode.NewSpinner() node.UiBox == nil. I can't add a range UI element without a place to put it")
- os.Exit(0)
+ log(debugToolkit, "gui.ToolkitNode.NewSpinner() node.UiBox == nil. I can't add a range UI element without a place to put it")
+ exit("internal golang wit/gui error")
return nil
}
diff --git a/toolkit/andlabs/structs.go b/toolkit/andlabs/structs.go
index 2f3fa72..cf3afaf 100644
--- a/toolkit/andlabs/structs.go
+++ b/toolkit/andlabs/structs.go
@@ -1,51 +1,10 @@
package main
-import "log"
+import "git.wit.org/wit/gui/toolkit"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-import "github.com/davecgh/go-spew/spew"
-
-var defaultBehavior bool = true
-
-var bookshelf bool // do you want things arranged in the box like a bookshelf or a stack?
-var canvas bool // if set to true, the windows are a raw canvas
-var menubar bool // for windows
-var stretchy bool // expand things like buttons to the maximum size
-var padded bool // add space between things like buttons
-var margin bool // add space around the frames of windows
-
-var DebugToolkit bool
-
-func setDefaultBehavior(s bool) {
- defaultBehavior = s
- if (defaultBehavior) {
- if (DebugToolkit) {
- log.Println("Setting this toolkit to use the default behavior.")
- log.Println("This is the 'guessing' part as defined by the wit/gui 'Principles'. Refer to the docs.")
- }
- stretchy = false
- padded = true
- menubar = true
- margin = true
- canvas = false
- bookshelf = true // 99% of the time, things make a vertical stack of objects
-
- DebugToolkit = false
- } else {
- log.Println("This toolkit is set to ignore the default behavior.")
- }
-}
-
-func SetDebugToolkit (s bool) {
- DebugToolkit = s
-}
-
-func GetDebugToolkit () bool {
- return DebugToolkit
-}
-
// stores the raw toolkit internals
type andlabsT struct {
id string
@@ -53,6 +12,7 @@ type andlabsT struct {
Name string
Width int
Height int
+ tw *toolkit.Widget
OnChanged func(*andlabsT)
OnExit func(*andlabsT)
@@ -83,167 +43,3 @@ type andlabsT struct {
val map[int]string
text string
}
-
-func (t *andlabsT) String() string {
- return t.GetText()
-}
-
-func forceDump(t *andlabsT) {
- tmp := DebugToolkit
- DebugToolkit = true
- t.Dump()
- DebugToolkit = tmp
-}
-
-func (t *andlabsT) GetText() string {
- t.Dump()
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Text() Enter")
- scs := spew.ConfigState{MaxDepth: 1}
- scs.Dump(t)
- }
- if (t.uiEntry != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiEntry.Text())
- }
- return t.uiEntry.Text()
- }
- if (t.uiMultilineEntry != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiMultilineEntry.Text())
- }
- text := t.uiMultilineEntry.Text()
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() text =", text)
- }
- t.text = text
- return text
- }
- if (t.uiCombobox != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.GetText() =", t.text)
- }
- return t.text
- }
- return ""
-}
-
-func (t *andlabsT) SetText(s string) bool {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Text() Enter")
- scs := spew.ConfigState{MaxDepth: 1}
- scs.Dump(t)
- }
- if (t.uiEntry != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiEntry.Text)
- }
- t.uiEntry.SetText(s)
- return true
- }
- if (t.uiMultilineEntry != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiMultilineEntry.Text)
- }
- t.uiMultilineEntry.SetText(s)
- return true
- }
- return false
-}
-
-func sanity(t *andlabsT) bool {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() Enter")
- scs := spew.ConfigState{MaxDepth: 1}
- scs.Dump(t)
- }
- if (t.uiEntry == nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiEntry.Text)
- }
- return false
- }
- return true
-}
-
-func (t *andlabsT) SetValue(i int) bool {
- log.Println("gui.Toolkit.SetValue() START")
- if (sanity(t)) {
- return false
- }
- t.Dump()
- // panic("got to toolkit.SetValue")
- return true
-}
-
-func (t *andlabsT) Value() int {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() Enter")
- scs := spew.ConfigState{MaxDepth: 1}
- scs.Dump(t)
- }
- if (t == nil) {
- log.Println("gui.Toolkit.Value() can not get value t == nil")
- return 0
- }
- if (t.uiSlider != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiSlider.Value)
- }
- return t.uiSlider.Value()
- }
- if (t.uiSpinbox != nil) {
- if (DebugToolkit) {
- log.Println("gui.Toolkit.Value() =", t.uiSpinbox.Value)
- }
- return t.uiSpinbox.Value()
- }
- log.Println("gui.Toolkit.Value() Could not find a ui element to get a value from")
- return 0
-}
-
-func (t *andlabsT) Dump() {
- if ! DebugToolkit {
- return
- }
- log.Println("gui.Toolkit.Dump() Name = ", t.Name, t.Width, t.Height)
- if (t.uiBox != nil) {
- log.Println("gui.Toolkit.Dump() uiBox =", t.uiBox)
- }
- if (t.uiButton != nil) {
- log.Println("gui.Toolkit.Dump() uiButton =", t.uiButton)
- }
- if (t.uiCombobox != nil) {
- log.Println("gui.Toolkit.Dump() uiCombobox =", t.uiCombobox)
- }
- if (t.uiWindow != nil) {
- log.Println("gui.Toolkit.Dump() uiWindow =", t.uiWindow)
- }
- if (t.uiTab != nil) {
- log.Println("gui.Toolkit.Dump() uiTab =", t.uiTab)
- }
- if (t.uiGroup != nil) {
- log.Println("gui.Toolkit.Dump() uiGroup =", t.uiGroup)
- }
- if (t.uiEntry != nil) {
- log.Println("gui.Toolkit.Dump() uiEntry =", t.uiEntry)
- }
- if (t.uiMultilineEntry != nil) {
- log.Println("gui.Toolkit.Dump() uiMultilineEntry =", t.uiMultilineEntry)
- }
- if (t.uiSlider != nil) {
- log.Println("gui.Toolkit.Dump() uiSlider =", t.uiSlider)
- }
- if (t.uiCheckbox != nil) {
- log.Println("gui.Toolkit.Dump() uiCheckbox =", t.uiCheckbox)
- }
- if (t.OnExit != nil) {
- log.Println("gui.Toolkit.Dump() OnExit =", t.OnExit)
- }
- if (t.Custom != nil) {
- log.Println("gui.Toolkit.Dump() Custom =", t.Custom)
- }
- log.Println("gui.Toolkit.Dump() c =", t.c)
- log.Println("gui.Toolkit.Dump() val =", t.val)
- log.Println("gui.Toolkit.Dump() text =", t.text)
-}
diff --git a/toolkit/andlabs/tab.go b/toolkit/andlabs/tab.go
index 0556fb9..f9085b4 100644
--- a/toolkit/andlabs/tab.go
+++ b/toolkit/andlabs/tab.go
@@ -1,9 +1,6 @@
package main
import (
- "log"
- "time"
-
"git.wit.org/wit/gui/toolkit"
"github.com/andlabs/ui"
@@ -26,32 +23,30 @@ func (t *andlabsT) newTab(name string) *andlabsT {
// var w *ui.Window
var newt *andlabsT
- log.Println("gui.toolkit.AddTab() sleep 3")
+ log(debugToolkit, "gui.toolkit.AddTab()")
if (t.uiWindow == nil) {
- log.Println("gui.Toolkit.UiWindow == nil. I can't add a toolbar without window")
+ log(debugToolkit, "gui.Toolkit.UiWindow == nil. I can't add a toolbar without window")
return nil
}
if (t.uiTab == nil) {
// this means you have to make a new tab
- log.Println("gui.toolkit.NewTab() GOOD. This should be the first tab:", name)
+ log(debugToolkit, "gui.toolkit.NewTab() GOOD. This should be the first tab:", name)
newt = newTab(t.uiWindow, name)
t.uiTab = newt.uiTab
} else {
// this means you have to append a tab
- log.Println("gui.toolkit.NewTab() GOOD. This should be an additional tab:", name)
+ log(debugToolkit, "gui.toolkit.NewTab() GOOD. This should be an additional tab:", name)
newt = t.appendTab(name)
}
newt.Name = name
- if (DebugToolkit) {
- log.Println("t:")
- t.Dump()
- log.Println("newt:")
- newt.Dump()
- }
+ log(debugToolkit, "t:")
+ t.Dump()
+ log(debugToolkit, "newt:")
+ newt.Dump()
return newt
}
@@ -62,29 +57,23 @@ func (t *andlabsT) newTab(name string) *andlabsT {
func tabSetMargined(tab *ui.Tab) {
c := tab.NumPages()
for i := 0; i < c; i++ {
- if (DebugToolkit) {
- log.Println("SetMargined", i, margin)
- }
+ log(debugToolkit, "SetMargined", i, margin)
tab.SetMargined(i, margin)
}
}
func newTab(w *ui.Window, name string) *andlabsT {
var t andlabsT
- if (DebugToolkit) {
- log.Println("gui.toolkit.NewTab() ADD", name)
- }
+ log(debugToolkit, "gui.toolkit.NewTab() ADD", name)
if (w == nil) {
- log.Println("gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window")
- log.Println("gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window")
- log.Println("gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window")
- time.Sleep(1 * time.Second)
+ log(debugToolkit, "gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window")
+ log(debugToolkit, "gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window")
+ log(debugToolkit, "gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window")
+ sleep(1)
return nil
}
- if (DebugToolkit) {
- log.Println("gui.toolkit.AddTab() START name =", name)
- }
+ log(debugToolkit, "gui.toolkit.AddTab() START name =", name)
tab := ui.NewTab()
w.SetMargined(margin)
@@ -102,17 +91,13 @@ func newTab(w *ui.Window, name string) *andlabsT {
func (t *andlabsT) appendTab(name string) *andlabsT {
var newT andlabsT
- if (DebugToolkit) {
- log.Println("gui.toolkit.NewTab() ADD", name)
- }
+ log(debugToolkit, "gui.toolkit.NewTab() ADD", name)
if (t.uiTab == nil) {
- log.Println("gui.Toolkit.UiWindow == nil. I can't add a widget without a place to put it")
+ log(debugToolkit, "gui.Toolkit.UiWindow == nil. I can't add a widget without a place to put it")
panic("should never have happened. wit/gui/toolkit has ui.Tab == nil")
}
- if (DebugToolkit) {
- log.Println("gui.toolkit.AddTab() START name =", name)
- }
+ log(debugToolkit, "gui.toolkit.AddTab() START name =", name)
var hbox *ui.Box
if (defaultBehavior) {
@@ -135,11 +120,11 @@ func (t *andlabsT) appendTab(name string) *andlabsT {
func NewTab(parentW *toolkit.Widget, w *toolkit.Widget) {
var newt *andlabsT
- log.Println("gui.andlabs.NewTab()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewTab()", w.Name)
t := mapToolkits[parentW]
if (t == nil) {
- log.Println("go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
return
}
newt = t.newTab(w.Name)
diff --git a/toolkit/andlabs/textbox.go b/toolkit/andlabs/textbox.go
index c7a9390..cb6075d 100644
--- a/toolkit/andlabs/textbox.go
+++ b/toolkit/andlabs/textbox.go
@@ -1,7 +1,5 @@
package main
-import "log"
-
import "git.wit.org/wit/gui/toolkit"
import "github.com/andlabs/ui"
@@ -10,9 +8,7 @@ import _ "github.com/andlabs/ui/winmanifest"
func (t andlabsT) NewTextbox(name string) *andlabsT {
var newt andlabsT
- if (DebugToolkit) {
- log.Println("gui.Toolkit.NewTextbox()", name)
- }
+ log(debugToolkit, "gui.Toolkit.NewTextbox()", name)
if t.broken() {
return nil
}
@@ -37,11 +33,11 @@ func (t andlabsT) NewTextbox(name string) *andlabsT {
func NewTextbox(parentW *toolkit.Widget, w *toolkit.Widget) {
var t, newt *andlabsT
- log.Println("gui.andlabs.NewTextbox()", w.Name)
+ log(debugToolkit, "gui.andlabs.NewTextbox()", w.Name)
t = mapToolkits[parentW]
if (t == nil) {
- log.Println("go.andlabs.NewTextbox() toolkit struct == nil. name=", parentW.Name, w.Name)
+ log(debugToolkit, "go.andlabs.NewTextbox() toolkit struct == nil. name=", parentW.Name, w.Name)
return
}
@@ -53,16 +49,15 @@ func NewTextbox(parentW *toolkit.Widget, w *toolkit.Widget) {
newt.uiLabel = ui.NewLabel(w.Name)
newt.uiBox = t.uiBox
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewTextbox() about to append to Box parent t:", w.Name)
- t.Dump()
- log.Println("gui.Toolbox.NewTextbox() about to append to Box new t:", w.Name)
- newt.Dump()
- }
+ log(debugToolkit, "gui.Toolbox.NewTextbox() about to append to Box parent t:", w.Name)
+ t.Dump()
+ log(debugToolkit, "gui.Toolbox.NewTextbox() about to append to Box new t:", w.Name)
+ newt.Dump()
+
if (t.uiBox != nil) {
t.uiBox.Append(newt.uiLabel, false)
} else {
- log.Println("ERROR: wit/gui andlabs couldn't place this Textbox in a box")
+ log(debugToolkit, "ERROR: wit/gui andlabs couldn't place this Textbox in a box")
return
}
diff --git a/toolkit/andlabs/window.go b/toolkit/andlabs/window.go
index b360cb8..7527ac5 100644
--- a/toolkit/andlabs/window.go
+++ b/toolkit/andlabs/window.go
@@ -1,8 +1,6 @@
package main
import (
- "log"
-
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
@@ -20,12 +18,10 @@ func (t *andlabsT) ErrorWindow(msg1 string, msg2 string) {
func NewWindow(w *toolkit.Widget) {
var t *andlabsT
- if (DebugToolkit) {
- log.Println("toolkit NewWindow", w.Name, w.Width, w.Height)
- }
+ log(debugToolkit, "toolkit NewWindow", w.Name, w.Width, w.Height)
if (w == nil) {
- log.Println("wit/gui plugin error. widget == nil")
+ log(debugToolkit, "wit/gui plugin error. widget == nil")
return
}
t = new(andlabsT)
@@ -37,21 +33,17 @@ func NewWindow(w *toolkit.Widget) {
win.SetBorderless(canvas)
win.SetMargined(margin)
win.OnClosing(func(*ui.Window) bool {
- if (DebugToolkit) {
- log.Println("ui.Window().OnExit() SHOULD ATTEMPT CALLBACK here")
- t.Dump()
- }
+ log(debugToolkit, "ui.Window().OnExit() SHOULD ATTEMPT CALLBACK here")
+ t.Dump()
if (w.Custom != nil) {
w.Custom()
return true
}
- if (w.Event != nil) {
- w.Event(w)
- return true
- }
- if (DebugToolkit) {
- log.Println("andlabs.ui.Window().OnClosing() was not defined")
- }
+ // if (w.Event != nil) {
+ // w.Event(w)
+ // return true
+ // }
+ log(debugToolkit, "andlabs.ui.Window().OnClosing() was not defined")
return false
})
win.Show()
@@ -64,15 +56,11 @@ func NewWindow(w *toolkit.Widget) {
}
func (t *andlabsT) SetWindowTitle(title string) {
- if (DebugToolkit) {
- log.Println("toolkit NewWindow", t.Name, "title", title)
- }
+ log(debugToolkit, "toolkit NewWindow", t.Name, "title", title)
win := t.uiWindow
if (win != nil) {
win.SetTitle(title)
} else {
- if (DebugToolkit) {
- log.Println("Setting the window title", title)
- }
+ log(debugToolkit, "Setting the window title", title)
}
}