diff options
Diffstat (limited to 'toolkit/andlabs')
| -rw-r--r-- | toolkit/andlabs/box.go | 22 | ||||
| -rw-r--r-- | toolkit/andlabs/button.go | 52 | ||||
| -rw-r--r-- | toolkit/andlabs/checkbox.go | 41 | ||||
| -rw-r--r-- | toolkit/andlabs/common.go | 72 | ||||
| -rw-r--r-- | toolkit/andlabs/debug.go | 193 | ||||
| -rw-r--r-- | toolkit/andlabs/demo.go | 4 | ||||
| -rw-r--r-- | toolkit/andlabs/dropdown.go | 26 | ||||
| -rw-r--r-- | toolkit/andlabs/group.go | 16 | ||||
| -rw-r--r-- | toolkit/andlabs/label.go | 66 | ||||
| -rw-r--r-- | toolkit/andlabs/log.go | 136 | ||||
| -rw-r--r-- | toolkit/andlabs/main.go | 32 | ||||
| -rw-r--r-- | toolkit/andlabs/plugin.go | 30 | ||||
| -rw-r--r-- | toolkit/andlabs/slider.go | 15 | ||||
| -rw-r--r-- | toolkit/andlabs/spinner.go | 9 | ||||
| -rw-r--r-- | toolkit/andlabs/structs.go | 208 | ||||
| -rw-r--r-- | toolkit/andlabs/tab.go | 55 | ||||
| -rw-r--r-- | toolkit/andlabs/textbox.go | 23 | ||||
| -rw-r--r-- | toolkit/andlabs/window.go | 34 |
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) } } |
