diff --git a/debug-window.go b/debug-window.go index b8f2d8f..e555cfa 100644 --- a/debug-window.go +++ b/debug-window.go @@ -15,6 +15,9 @@ var nodeNames = make([]string, 100) func DebugWindow() { Config.Title = "git.wit.org/wit/gui debug" + Config.Width = 640 + Config.Height = 480 + Config.Exit = StandardClose node := NewWindow() node.DebugTab("WIT GUI Debug Tab") } diff --git a/toolkit/andlabs/entry.go b/toolkit/andlabs/entry.go new file mode 100644 index 0000000..c981732 --- /dev/null +++ b/toolkit/andlabs/entry.go @@ -0,0 +1,23 @@ +package toolkit + +import "log" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +func NewEntry(b *ui.Box, name string) *Toolkit { + // make new node here + log.Println("gui.Toolbox.NewEntry", name) + var t Toolkit + + if (b == nil) { + log.Println("gui.ToolboxNode.NewEntry() node.UiBox == nil. I can't add a range UI element without a place to put it") + return &t + } + l := ui.NewEntry() + t.uiEntry = l + t.uiBox = b + t.uiBox.Append(l, false) + + return &t +} diff --git a/toolkit/andlabs/spinbox.go b/toolkit/andlabs/spinbox.go index ec268f1..d3d7bfe 100644 --- a/toolkit/andlabs/spinbox.go +++ b/toolkit/andlabs/spinbox.go @@ -7,55 +7,6 @@ import _ "github.com/andlabs/ui/winmanifest" import "github.com/davecgh/go-spew/spew" -var DebugToolkit bool = false - -// stores the raw toolkit internals -type Toolkit struct { - id string - - Name string - Width int - Height int - - OnChanged func(*Toolkit) - - uiBox *ui.Box - uiButton *ui.Button - uiControl *ui.Control - uiLabel *ui.Label - uiSlider *ui.Slider - uiSpinbox *ui.Spinbox - uiTab *ui.Tab - uiText *ui.EditableCombobox - uiWindow *ui.Window -} - -func (t *Toolkit) 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 NewSpinbox(b *ui.Box, name string, x int, y int) *Toolkit { // make new node here log.Println("gui.Toolbox.NewSpinbox()", x, y) diff --git a/toolkit/andlabs/structs.go b/toolkit/andlabs/structs.go new file mode 100644 index 0000000..50dc144 --- /dev/null +++ b/toolkit/andlabs/structs.go @@ -0,0 +1,89 @@ +package toolkit + +import "log" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +import "github.com/davecgh/go-spew/spew" + +var DebugToolkit bool = false + +// stores the raw toolkit internals +type Toolkit struct { + id string + + Name string + Width int + Height int + + OnChanged func(*Toolkit) + + uiBox *ui.Box + uiButton *ui.Button + uiControl *ui.Control + uiEntry *ui.Entry + uiLabel *ui.Label + uiSlider *ui.Slider + uiSpinbox *ui.Spinbox + uiTab *ui.Tab + uiText *ui.EditableCombobox + uiWindow *ui.Window +} + +func (t *Toolkit) GetText() string { + 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() + } + return "" +} + +func (t *Toolkit) 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 + } + return false +} + +func (t *Toolkit) 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 +} diff --git a/demo-window-andlabs-ui.go b/window-demo-andlabs-ui.go similarity index 86% rename from demo-window-andlabs-ui.go rename to window-demo-andlabs-ui.go index e11ffe9..1c72603 100644 --- a/demo-window-andlabs-ui.go +++ b/window-demo-andlabs-ui.go @@ -4,6 +4,21 @@ import "log" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" +func ToolkitDemoWindow() { + var w *Node + log.Println("ToolkitDemoWindow() START") + + Config.Title = "Demo the GUI Toolkit" + Config.Width = 640 + Config.Height = 480 + Config.Exit = StandardClose + w = NewWindow() + + w.DemoAndlabsUiTab("ran AddDemoAndlabsUiTab()") + + log.Println("ToolkitDemoWindow() END") +} + // This will create a tab in a window using direct // calls to andlabs/ui. This can be used to bypass // the obvuscation added in this package if it is desired