summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--debug-window.go3
-rw-r--r--toolkit/andlabs/entry.go23
-rw-r--r--toolkit/andlabs/spinbox.go49
-rw-r--r--toolkit/andlabs/structs.go89
-rw-r--r--window-demo-andlabs-ui.go (renamed from demo-window-andlabs-ui.go)15
5 files changed, 130 insertions, 49 deletions
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
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