summaryrefslogtreecommitdiff
path: root/toolkit
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2022-11-14 14:30:28 -0600
committerJeff Carr <[email protected]>2022-11-14 14:30:28 -0600
commit355e5ec968427c2b07b78fec12224f31a65df740 (patch)
tree99754f9f6888c166a435d14e3a71cc9304f14970 /toolkit
parent207cf7ea16f1da8fa9f893504d77a2856298cc22 (diff)
setup building without plugins on windowsv0.5.1
notes from github remote keep removing os.Exit() rename from andlabs2 back to andlabs rename files for windows andlabs/ui gocui always sets STDOUT a file in /tmp/ Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'toolkit')
-rw-r--r--toolkit/andlabs-direct/box.go (renamed from toolkit/andlabs2/box.go)12
-rw-r--r--toolkit/andlabs-direct/button.go79
-rw-r--r--toolkit/andlabs-direct/checkbox.go (renamed from toolkit/andlabs2/checkbox.go)8
-rw-r--r--toolkit/andlabs-direct/common.go (renamed from toolkit/andlabs2/common.go)6
-rw-r--r--toolkit/andlabs-direct/demo.go (renamed from toolkit/andlabs2/demo.go)4
-rw-r--r--toolkit/andlabs-direct/dropdown.go55
-rw-r--r--toolkit/andlabs-direct/group.go (renamed from toolkit/andlabs2/group.go)20
-rw-r--r--toolkit/andlabs-direct/label.go21
-rw-r--r--toolkit/andlabs-direct/main.go31
-rw-r--r--toolkit/andlabs-direct/old/area.go (renamed from toolkit/andlabs/old/area.go)0
-rw-r--r--toolkit/andlabs-direct/old/color.go (renamed from toolkit/andlabs/old/color.go)0
-rw-r--r--toolkit/andlabs-direct/old/seperator.go (renamed from toolkit/andlabs/old/seperator.go)0
-rw-r--r--toolkit/andlabs-direct/old/structs.go (renamed from toolkit/andlabs/old/structs.go)0
-rw-r--r--toolkit/andlabs-direct/old/table.go (renamed from toolkit/andlabs/old/table.go)0
-rw-r--r--toolkit/andlabs-direct/old/tableCallbacks.go (renamed from toolkit/andlabs/old/tableCallbacks.go)0
-rw-r--r--toolkit/andlabs-direct/slider.go31
-rw-r--r--toolkit/andlabs-direct/spinner.go (renamed from toolkit/andlabs2/spinner.go)6
-rw-r--r--toolkit/andlabs-direct/structs.go (renamed from toolkit/andlabs2/structs.go)24
-rw-r--r--toolkit/andlabs-direct/tab.go (renamed from toolkit/andlabs2/tab.go)30
-rw-r--r--toolkit/andlabs-direct/textbox.go34
-rw-r--r--toolkit/andlabs-direct/window.go66
-rw-r--r--toolkit/andlabs/Makefile4
-rw-r--r--toolkit/andlabs/box.go12
-rw-r--r--toolkit/andlabs/button.go72
-rw-r--r--toolkit/andlabs/checkbox.go8
-rw-r--r--toolkit/andlabs/common.go6
-rw-r--r--toolkit/andlabs/demo.go4
-rw-r--r--toolkit/andlabs/dropdown.go49
-rw-r--r--toolkit/andlabs/group.go32
-rw-r--r--toolkit/andlabs/label.go39
-rw-r--r--toolkit/andlabs/main.go34
-rw-r--r--toolkit/andlabs/plugin.go (renamed from toolkit/andlabs2/plugin.go)0
-rw-r--r--toolkit/andlabs/slider.go31
-rw-r--r--toolkit/andlabs/spinner.go6
-rw-r--r--toolkit/andlabs/structs.go24
-rw-r--r--toolkit/andlabs/tab.go30
-rw-r--r--toolkit/andlabs/textbox.go44
-rw-r--r--toolkit/andlabs/window.go66
-rw-r--r--toolkit/andlabs2/Makefile4
-rw-r--r--toolkit/andlabs2/button.go67
-rw-r--r--toolkit/andlabs2/dropdown.go90
-rw-r--r--toolkit/andlabs2/label.go42
-rw-r--r--toolkit/andlabs2/main.go56
-rw-r--r--toolkit/andlabs2/slider.go48
-rw-r--r--toolkit/andlabs2/textbox.go70
-rw-r--r--toolkit/andlabs2/window.go78
-rw-r--r--toolkit/gocui/gocui.go16
-rw-r--r--toolkit/gocui/keybindings.go2
48 files changed, 688 insertions, 673 deletions
diff --git a/toolkit/andlabs2/box.go b/toolkit/andlabs-direct/box.go
index bb9945e..29a8331 100644
--- a/toolkit/andlabs2/box.go
+++ b/toolkit/andlabs-direct/box.go
@@ -1,4 +1,4 @@
-package main
+package toolkit
import "log"
@@ -6,12 +6,12 @@ import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
// create a new box
-func (t *andlabsT) GetBox() *ui.Box {
+func (t *Toolkit) GetBox() *ui.Box {
return t.uiBox
}
// create a new box
-func (t *andlabsT) NewBox() *andlabsT {
+func (t *Toolkit) NewBox() *Toolkit {
if (DebugToolkit) {
log.Println("gui.Toolbox.NewBox() START create default")
}
@@ -20,7 +20,7 @@ func (t *andlabsT) NewBox() *andlabsT {
if (DebugToolkit) {
log.Println("\tgui.Toolbox.NewBox() is a Group")
}
- var newTK andlabsT
+ var newTK Toolkit
vbox := ui.NewVerticalBox()
vbox.SetPadded(padded)
@@ -33,7 +33,7 @@ func (t *andlabsT) NewBox() *andlabsT {
if (DebugToolkit) {
log.Println("\tgui.Toolbox.NewBox() is a Box")
}
- var newTK andlabsT
+ var newTK Toolkit
vbox := ui.NewVerticalBox()
vbox.SetPadded(padded)
@@ -47,7 +47,7 @@ func (t *andlabsT) NewBox() *andlabsT {
if (DebugToolkit) {
log.Println("\tgui.Toolbox.NewBox() is a Window")
}
- var newT andlabsT
+ var newT Toolkit
vbox := ui.NewVerticalBox()
vbox.SetPadded(padded)
diff --git a/toolkit/andlabs-direct/button.go b/toolkit/andlabs-direct/button.go
new file mode 100644
index 0000000..e0b7d97
--- /dev/null
+++ b/toolkit/andlabs-direct/button.go
@@ -0,0 +1,79 @@
+package toolkit
+
+import "log"
+// import "os"
+
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+// make new Group here
+func (t Toolkit) NewButton(name string) *Toolkit {
+ var newt Toolkit
+ var b *ui.Button
+
+ if t.broken() {
+ return nil
+ }
+
+ if (DebugToolkit) {
+ log.Println("gui.Toolbox.NewButton() create", name)
+ }
+ b = ui.NewButton(name)
+ newt.uiButton = b
+
+ b.OnClicked(func(*ui.Button) {
+ log.Println("TODO: IN TOOLKIT GOROUTINE. SHOULD LEAVE HERE VIA channels. button name =", name)
+ t.Dump()
+ newt.Dump()
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() Should do something here")
+ }
+ if (newt.Custom == nil) {
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() toolkit.Custom == nil")
+ }
+ } else {
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() toolkit.Custom() START")
+ }
+ newt.Custom()
+ return
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() toolkit.Custom() END")
+ }
+ }
+ if (t.Custom == nil) {
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() parent toolkit.Custom == nil")
+ }
+ } else {
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() running parent toolkit.Custom() START (IS THIS A BAD IDEA?)")
+ }
+ t.Custom()
+ return
+ if (DebugToolkit) {
+ log.Println("wit/gui/toolkit NewButton() running parent toolkit.Custom() END (IS THIS A BAD IDEA?)")
+ }
+ }
+ log.Println("TODO: LEFT TOOLKIT GOROUTINE WITH NOTHING TO DO button name =", name)
+ })
+
+ if (DebugToolkit) {
+ log.Println("gui.Toolbox.NewButton() about to append to Box parent t:", name)
+ t.Dump()
+ log.Println("gui.Toolbox.NewButton() about to append to Box new t:", name)
+ newt.Dump()
+ }
+ 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")
+ return &t
+ }
+
+ return &newt
+}
diff --git a/toolkit/andlabs2/checkbox.go b/toolkit/andlabs-direct/checkbox.go
index b4b1524..b3b3121 100644
--- a/toolkit/andlabs2/checkbox.go
+++ b/toolkit/andlabs-direct/checkbox.go
@@ -1,13 +1,13 @@
-package main
+package toolkit
import "log"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t andlabsT) NewCheckbox(name string) *andlabsT {
+func (t Toolkit) NewCheckbox(name string) *Toolkit {
log.Println("gui.Toolkit.NewCheckbox()", name)
- var newt andlabsT
+ var newt Toolkit
if t.broken() {
return nil
@@ -25,7 +25,7 @@ func (t andlabsT) NewCheckbox(name string) *andlabsT {
return &newt
}
-func (t andlabsT) Checked() bool {
+func (t Toolkit) Checked() bool {
if t.broken() {
return false
}
diff --git a/toolkit/andlabs2/common.go b/toolkit/andlabs-direct/common.go
index fc6cbe8..451f9d6 100644
--- a/toolkit/andlabs2/common.go
+++ b/toolkit/andlabs-direct/common.go
@@ -1,4 +1,4 @@
-package main
+package toolkit
import "log"
@@ -9,7 +9,7 @@ func init() {
setDefaultBehavior(true)
}
-func (t andlabsT) commonChange(widget string) {
+func (t Toolkit) commonChange(widget string) {
s := t.String()
if (DebugToolkit) {
log.Println("gui.Toolkit.ui.OnChanged() =", s)
@@ -36,7 +36,7 @@ func (t andlabsT) commonChange(widget string) {
// does some sanity checks on the internal structs of the binary tree
// TODO: probably this should not panic unless it's running in devel mode (?)
-func (t *andlabsT) broken() bool {
+func (t *Toolkit) broken() bool {
if (t.uiBox == nil) {
if (t.uiWindow != nil) {
if (DebugToolkit) {
diff --git a/toolkit/andlabs2/demo.go b/toolkit/andlabs-direct/demo.go
index 0781f88..7ba1822 100644
--- a/toolkit/andlabs2/demo.go
+++ b/toolkit/andlabs-direct/demo.go
@@ -1,4 +1,4 @@
-package main
+package toolkit
import "log"
@@ -19,7 +19,7 @@ func BlankWindow(w *ui.Window) *ui.Box {
return hbox
}
-func (t *andlabsT) DemoNumbersPage() {
+func (t *Toolkit) DemoNumbersPage() {
var w *ui.Window
log.Println("Starting wit/gui toolkit andlabs/ui DemoNumbersPage()")
diff --git a/toolkit/andlabs-direct/dropdown.go b/toolkit/andlabs-direct/dropdown.go
new file mode 100644
index 0000000..ca09a99
--- /dev/null
+++ b/toolkit/andlabs-direct/dropdown.go
@@ -0,0 +1,55 @@
+package toolkit
+
+import "log"
+import "os"
+// import "time"
+
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+func (t *Toolkit) NewDropdown(title string) *Toolkit {
+ // make new node here
+ if (DebugToolkit) {
+ log.Println("gui.Toolbox.NewDropdownCombobox()", title)
+ }
+ var newt Toolkit
+
+ if t.broken() {
+ return nil
+ }
+
+ s := ui.NewCombobox()
+ newt.uiCombobox = s
+ newt.uiBox = t.uiBox
+ t.uiBox.Append(s, stretchy)
+
+ // initialize the index
+ newt.c = 0
+ newt.val = make(map[int]string)
+
+ s.OnSelected(func(spin *ui.Combobox) {
+ i := spin.Selected()
+ if (newt.val == nil) {
+ log.Println("make map didn't work")
+ os.Exit(0)
+ }
+ newt.text = newt.val[i]
+ newt.commonChange("Dropdown")
+ })
+
+ return &newt
+}
+
+func (t *Toolkit) AddDropdown(title string) {
+ t.uiCombobox.Append(title)
+ if (t.val == nil) {
+ log.Println("make map didn't work")
+ return
+ }
+ t.val[t.c] = title
+ t.c = t.c + 1
+}
+
+func (t Toolkit) SetDropdown(i int) {
+ t.uiCombobox.SetSelected(i)
+}
diff --git a/toolkit/andlabs2/group.go b/toolkit/andlabs-direct/group.go
index 39f740b..5b315a4 100644
--- a/toolkit/andlabs2/group.go
+++ b/toolkit/andlabs-direct/group.go
@@ -1,4 +1,4 @@
-package main
+package toolkit
import "log"
import "os"
@@ -6,23 +6,9 @@ import "os"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-import "git.wit.org/wit/gui/toolkit"
-
-func NewGroup(parentW *toolkit.Widget, w *toolkit.Widget) {
- log.Println("gui.andlabs.NewGroup()", w.Name)
-
- t := mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewGroup() toolkit struct == nil. name=", parentW.Name, w.Name)
- listMap()
- }
- newt := t.NewGroup(w.Name)
- mapWidgetsToolkits(w, newt)
-}
-
// make new Group here
-func (t andlabsT) NewGroup(title string) *andlabsT {
- var newt andlabsT
+func (t Toolkit) NewGroup(title string) *Toolkit {
+ var newt Toolkit
if (DebugToolkit) {
log.Println("gui.Toolbox.NewGroup() create", title)
diff --git a/toolkit/andlabs-direct/label.go b/toolkit/andlabs-direct/label.go
new file mode 100644
index 0000000..2819ff1
--- /dev/null
+++ b/toolkit/andlabs-direct/label.go
@@ -0,0 +1,21 @@
+package toolkit
+
+import "log"
+
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+func (t *Toolkit) NewLabel(name string) *Toolkit {
+ // make new node here
+ log.Println("gui.Toolbox.NewLabel", name)
+
+ if t.broken() {
+ return nil
+ }
+ var newt Toolkit
+ newt.uiLabel = ui.NewLabel(name)
+ newt.uiBox = t.uiBox
+ t.uiBox.Append(newt.uiLabel, false)
+
+ return &newt
+}
diff --git a/toolkit/andlabs-direct/main.go b/toolkit/andlabs-direct/main.go
new file mode 100644
index 0000000..da639fa
--- /dev/null
+++ b/toolkit/andlabs-direct/main.go
@@ -0,0 +1,31 @@
+package toolkit
+
+import (
+ "log"
+
+ "github.com/andlabs/ui"
+ // the _ means we only need this for the init()
+ _ "github.com/andlabs/ui/winmanifest"
+)
+
+func Main(f func()) {
+ if (DebugToolkit) {
+ log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
+ }
+ ui.Main(f)
+}
+
+// Other goroutines must use this to access the GUI
+//
+// You can not acess / process the GUI thread directly from
+// other goroutines. This is due to the nature of how
+// Linux, MacOS and Windows work (they all work differently. suprise. surprise.)
+//
+// For example: Queue(NewWindow())
+//
+func Queue(f func()) {
+ if (DebugToolkit) {
+ log.Println("Sending function to gui.Main() (using gtk via andlabs/ui)")
+ }
+ ui.QueueMain(f)
+}
diff --git a/toolkit/andlabs/old/area.go b/toolkit/andlabs-direct/old/area.go
index 7c42c6c..7c42c6c 100644
--- a/toolkit/andlabs/old/area.go
+++ b/toolkit/andlabs-direct/old/area.go
diff --git a/toolkit/andlabs/old/color.go b/toolkit/andlabs-direct/old/color.go
index cf4a362..cf4a362 100644
--- a/toolkit/andlabs/old/color.go
+++ b/toolkit/andlabs-direct/old/color.go
diff --git a/toolkit/andlabs/old/seperator.go b/toolkit/andlabs-direct/old/seperator.go
index ca152a8..ca152a8 100644
--- a/toolkit/andlabs/old/seperator.go
+++ b/toolkit/andlabs-direct/old/seperator.go
diff --git a/toolkit/andlabs/old/structs.go b/toolkit/andlabs-direct/old/structs.go
index 4a16438..4a16438 100644
--- a/toolkit/andlabs/old/structs.go
+++ b/toolkit/andlabs-direct/old/structs.go
diff --git a/toolkit/andlabs/old/table.go b/toolkit/andlabs-direct/old/table.go
index 92ae871..92ae871 100644
--- a/toolkit/andlabs/old/table.go
+++ b/toolkit/andlabs-direct/old/table.go
diff --git a/toolkit/andlabs/old/tableCallbacks.go b/toolkit/andlabs-direct/old/tableCallbacks.go
index 6eefd8d..6eefd8d 100644
--- a/toolkit/andlabs/old/tableCallbacks.go
+++ b/toolkit/andlabs-direct/old/tableCallbacks.go
diff --git a/toolkit/andlabs-direct/slider.go b/toolkit/andlabs-direct/slider.go
new file mode 100644
index 0000000..ad801f8
--- /dev/null
+++ b/toolkit/andlabs-direct/slider.go
@@ -0,0 +1,31 @@
+package toolkit
+
+import "log"
+import "os"
+
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+func (t Toolkit) NewSlider(title string, x int, y int) *Toolkit {
+ // make new node here
+ log.Println("gui.Toolkit.NewSpinbox()", x, y)
+ var newt Toolkit
+
+ 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)
+ return nil
+ }
+
+ s := ui.NewSlider(x, y)
+ newt.uiSlider = s
+ newt.uiBox = t.uiBox
+ t.uiBox.Append(s, stretchy)
+
+ s.OnChanged(func(spin *ui.Slider) {
+ newt.commonChange("Slider")
+ })
+
+ return &newt
+}
diff --git a/toolkit/andlabs2/spinner.go b/toolkit/andlabs-direct/spinner.go
index 6505b48..885192c 100644
--- a/toolkit/andlabs2/spinner.go
+++ b/toolkit/andlabs-direct/spinner.go
@@ -1,4 +1,4 @@
-package main
+package toolkit
import "log"
import "os"
@@ -6,10 +6,10 @@ import "os"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t andlabsT) NewSpinner(title string, x int, y int) *andlabsT {
+func (t Toolkit) NewSpinner(title string, x int, y int) *Toolkit {
// make new node here
log.Println("gui.Toolkit.NewSpinner()", x, y)
- var newt andlabsT
+ var newt Toolkit
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")
diff --git a/toolkit/andlabs2/structs.go b/toolkit/andlabs-direct/structs.go
index 2f3fa72..9bba671 100644
--- a/toolkit/andlabs2/structs.go
+++ b/toolkit/andlabs-direct/structs.go
@@ -1,4 +1,4 @@
-package main
+package toolkit
import "log"
@@ -47,15 +47,15 @@ func GetDebugToolkit () bool {
}
// stores the raw toolkit internals
-type andlabsT struct {
+type Toolkit struct {
id string
Name string
Width int
Height int
- OnChanged func(*andlabsT)
- OnExit func(*andlabsT)
+ OnChanged func(*Toolkit)
+ OnExit func(*Toolkit)
Custom func()
@@ -84,18 +84,18 @@ type andlabsT struct {
text string
}
-func (t *andlabsT) String() string {
+func (t *Toolkit) String() string {
return t.GetText()
}
-func forceDump(t *andlabsT) {
+func forceDump(t *Toolkit) {
tmp := DebugToolkit
DebugToolkit = true
t.Dump()
DebugToolkit = tmp
}
-func (t *andlabsT) GetText() string {
+func (t *Toolkit) GetText() string {
t.Dump()
if (DebugToolkit) {
log.Println("gui.Toolkit.Text() Enter")
@@ -128,7 +128,7 @@ func (t *andlabsT) GetText() string {
return ""
}
-func (t *andlabsT) SetText(s string) bool {
+func (t *Toolkit) SetText(s string) bool {
if (DebugToolkit) {
log.Println("gui.Toolkit.Text() Enter")
scs := spew.ConfigState{MaxDepth: 1}
@@ -151,7 +151,7 @@ func (t *andlabsT) SetText(s string) bool {
return false
}
-func sanity(t *andlabsT) bool {
+func sanity(t *Toolkit) bool {
if (DebugToolkit) {
log.Println("gui.Toolkit.Value() Enter")
scs := spew.ConfigState{MaxDepth: 1}
@@ -166,7 +166,7 @@ func sanity(t *andlabsT) bool {
return true
}
-func (t *andlabsT) SetValue(i int) bool {
+func (t *Toolkit) SetValue(i int) bool {
log.Println("gui.Toolkit.SetValue() START")
if (sanity(t)) {
return false
@@ -176,7 +176,7 @@ func (t *andlabsT) SetValue(i int) bool {
return true
}
-func (t *andlabsT) Value() int {
+func (t *Toolkit) Value() int {
if (DebugToolkit) {
log.Println("gui.Toolkit.Value() Enter")
scs := spew.ConfigState{MaxDepth: 1}
@@ -202,7 +202,7 @@ func (t *andlabsT) Value() int {
return 0
}
-func (t *andlabsT) Dump() {
+func (t *Toolkit) Dump() {
if ! DebugToolkit {
return
}
diff --git a/toolkit/andlabs2/tab.go b/toolkit/andlabs-direct/tab.go
index 0556fb9..c641fc0 100644
--- a/toolkit/andlabs2/tab.go
+++ b/toolkit/andlabs-direct/tab.go
@@ -1,13 +1,12 @@
-package main
+package toolkit
import (
"log"
"time"
- "git.wit.org/wit/gui/toolkit"
-
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
+
)
/*
@@ -22,9 +21,9 @@ import (
once there is one. If you send a Window here, it will replace
any existing tabs rather than adding a new one
*/
-func (t *andlabsT) newTab(name string) *andlabsT {
+func (t *Toolkit) AddTab(name string) *Toolkit {
// var w *ui.Window
- var newt *andlabsT
+ var newt *Toolkit
log.Println("gui.toolkit.AddTab() sleep 3")
@@ -69,8 +68,8 @@ func tabSetMargined(tab *ui.Tab) {
}
}
-func newTab(w *ui.Window, name string) *andlabsT {
- var t andlabsT
+func newTab(w *ui.Window, name string) *Toolkit {
+ var t Toolkit
if (DebugToolkit) {
log.Println("gui.toolkit.NewTab() ADD", name)
}
@@ -100,8 +99,8 @@ func newTab(w *ui.Window, name string) *andlabsT {
return &t
}
-func (t *andlabsT) appendTab(name string) *andlabsT {
- var newT andlabsT
+func (t *Toolkit) appendTab(name string) *Toolkit {
+ var newT Toolkit
if (DebugToolkit) {
log.Println("gui.toolkit.NewTab() ADD", name)
}
@@ -132,16 +131,3 @@ func (t *andlabsT) appendTab(name string) *andlabsT {
newT.uiBox = hbox
return &newT
}
-
-func NewTab(parentW *toolkit.Widget, w *toolkit.Widget) {
- var newt *andlabsT
- log.Println("gui.andlabs.NewTab()", w.Name)
-
- t := mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
- return
- }
- newt = t.newTab(w.Name)
- mapWidgetsToolkits(w, newt)
-}
diff --git a/toolkit/andlabs-direct/textbox.go b/toolkit/andlabs-direct/textbox.go
new file mode 100644
index 0000000..44946b8
--- /dev/null
+++ b/toolkit/andlabs-direct/textbox.go
@@ -0,0 +1,34 @@
+package toolkit
+
+import "log"
+
+import "github.com/andlabs/ui"
+import _ "github.com/andlabs/ui/winmanifest"
+
+func (t Toolkit) NewTextbox(name string) *Toolkit {
+ if (DebugToolkit) {
+ log.Println("gui.Toolkit.NewTextbox()", name)
+ }
+ var newt Toolkit
+
+ if t.broken() {
+ return nil
+ }
+
+ c := ui.NewNonWrappingMultilineEntry()
+ newt.uiMultilineEntry = c
+
+ newt.uiBox = t.uiBox
+ newt.Name = name
+ if (defaultBehavior) {
+ t.uiBox.Append(c, true)
+ } else {
+ t.uiBox.Append(c, stretchy)
+ }
+
+ c.OnChanged(func(spin *ui.MultilineEntry) {
+ newt.commonChange("Textbox")
+ })
+
+ return &newt
+}
diff --git a/toolkit/andlabs-direct/window.go b/toolkit/andlabs-direct/window.go
new file mode 100644
index 0000000..efbd672
--- /dev/null
+++ b/toolkit/andlabs-direct/window.go
@@ -0,0 +1,66 @@
+package toolkit
+
+import (
+ "log"
+
+ "github.com/andlabs/ui"
+ _ "github.com/andlabs/ui/winmanifest"
+)
+
+func (t *Toolkit) MessageWindow(msg1 string, msg2 string) {
+ ui.MsgBox(t.uiWindow, msg1, msg2)
+}
+
+func (t *Toolkit) ErrorWindow(msg1 string, msg2 string) {
+ ui.MsgBoxError(t.uiWindow, msg1, msg2)
+}
+
+func NewWindow(title string, x int, y int) *Toolkit {
+ var t Toolkit
+ if (DebugToolkit) {
+ log.Println("toolkit NewWindow", title, x, y)
+ }
+ w := ui.NewWindow(title, x, y, menubar)
+ w.SetBorderless(canvas)
+ w.SetMargined(margin)
+ w.OnClosing(func(*ui.Window) bool {
+ if (DebugToolkit) {
+ log.Println("ui.Window().OnExit() SHOULD ATTEMPT CALLBACK here")
+ t.Dump()
+ }
+ if (t.OnExit != nil) {
+ if (DebugToolkit) {
+ log.Println("ui.Window().OnExit() ATTEMPTING toolkit.OnExit CALLBACK")
+ }
+ t.OnExit(&t)
+ }
+ if (t.Custom != nil) {
+ if (DebugToolkit) {
+ log.Println("ui.Window().Custom() ATTEMPTING toolkit.Custom CALLBACK")
+ }
+ t.Custom()
+ }
+ if (DebugToolkit) {
+ log.Println("ui.Window().OnExit() Toolkit.OnExit is nil")
+ }
+ return true
+ })
+ w.Show()
+ t.uiWindow = w
+ t.UiWindowBad = w // deprecate this as soon as possible
+ return &t
+}
+
+func (t *Toolkit) SetWindowTitle(title string) {
+ if (DebugToolkit) {
+ log.Println("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)
+ }
+ }
+}
diff --git a/toolkit/andlabs/Makefile b/toolkit/andlabs/Makefile
new file mode 100644
index 0000000..8b0502c
--- /dev/null
+++ b/toolkit/andlabs/Makefile
@@ -0,0 +1,4 @@
+all: plugin
+
+plugin:
+ GO111MODULE="off" go build -buildmode=plugin -o ../andlabs.so
diff --git a/toolkit/andlabs/box.go b/toolkit/andlabs/box.go
index 29a8331..bb9945e 100644
--- a/toolkit/andlabs/box.go
+++ b/toolkit/andlabs/box.go
@@ -1,4 +1,4 @@
-package toolkit
+package main
import "log"
@@ -6,12 +6,12 @@ import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
// create a new box
-func (t *Toolkit) GetBox() *ui.Box {
+func (t *andlabsT) GetBox() *ui.Box {
return t.uiBox
}
// create a new box
-func (t *Toolkit) NewBox() *Toolkit {
+func (t *andlabsT) NewBox() *andlabsT {
if (DebugToolkit) {
log.Println("gui.Toolbox.NewBox() START create default")
}
@@ -20,7 +20,7 @@ func (t *Toolkit) NewBox() *Toolkit {
if (DebugToolkit) {
log.Println("\tgui.Toolbox.NewBox() is a Group")
}
- var newTK Toolkit
+ var newTK andlabsT
vbox := ui.NewVerticalBox()
vbox.SetPadded(padded)
@@ -33,7 +33,7 @@ func (t *Toolkit) NewBox() *Toolkit {
if (DebugToolkit) {
log.Println("\tgui.Toolbox.NewBox() is a Box")
}
- var newTK Toolkit
+ var newTK andlabsT
vbox := ui.NewVerticalBox()
vbox.SetPadded(padded)
@@ -47,7 +47,7 @@ func (t *Toolkit) NewBox() *Toolkit {
if (DebugToolkit) {
log.Println("\tgui.Toolbox.NewBox() is a Window")
}
- var newT Toolkit
+ var newT andlabsT
vbox := ui.NewVerticalBox()
vbox.SetPadded(padded)
diff --git a/toolkit/andlabs/button.go b/toolkit/andlabs/button.go
index e0b7d97..bd80683 100644
--- a/toolkit/andlabs/button.go
+++ b/toolkit/andlabs/button.go
@@ -1,68 +1,56 @@
-package toolkit
+package main
import "log"
// import "os"
+
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-// make new Group here
-func (t Toolkit) NewButton(name string) *Toolkit {
- var newt Toolkit
+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)
- if t.broken() {
- return nil
+ t = mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
+ return
}
- if (DebugToolkit) {
- log.Println("gui.Toolbox.NewButton() create", name)
+ if t.broken() {
+ return
}
- b = ui.NewButton(name)
+ newt = new(andlabsT)
+
+ b = ui.NewButton(w.Name)
newt.uiButton = b
b.OnClicked(func(*ui.Button) {
- log.Println("TODO: IN TOOLKIT GOROUTINE. SHOULD LEAVE HERE VIA channels. button name =", name)
- t.Dump()
- newt.Dump()
if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() Should do something here")
+ log.Println("TODO: IN TOOLKIT GOROUTINE. SHOULD LEAVE HERE VIA channels. button name =", w.Name)
+ log.Println("FOUND WIDGET!", w)
}
- if (newt.Custom == nil) {
- if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() toolkit.Custom == nil")
- }
- } else {
- if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() toolkit.Custom() START")
- }
- newt.Custom()
+ if (w.Custom != nil) {
+ w.Custom()
return
- if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() toolkit.Custom() END")
- }
}
- if (t.Custom == nil) {
- if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() parent toolkit.Custom == nil")
- }
- } else {
- if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() running parent toolkit.Custom() START (IS THIS A BAD IDEA?)")
- }
- t.Custom()
+ if (w.Event != nil) {
+ w.Event(w)
return
- if (DebugToolkit) {
- log.Println("wit/gui/toolkit NewButton() running parent toolkit.Custom() END (IS THIS A BAD IDEA?)")
- }
}
- log.Println("TODO: LEFT TOOLKIT GOROUTINE WITH NOTHING TO DO button name =", name)
+ t.Dump()
+ newt.Dump()
+ if (DebugToolkit) {
+ log.Println("TODO: LEFT TOOLKIT GOROUTINE WITH NOTHING TO DO button name =", w.Name)
+ }
})
if (DebugToolkit) {
- log.Println("gui.Toolbox.NewButton() about to append to Box parent t:", name)
+ 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:", name)
+ log.Println("gui.Toolbox.NewButton() about to append to Box new t:", w.Name)
newt.Dump()
}
if (t.uiBox != nil) {
@@ -72,8 +60,8 @@ func (t Toolkit) NewButton(name string) *Toolkit {
} 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")
- return &t
+ return
}
- return &newt
+ mapWidgetsToolkits(w, newt)
}
diff --git a/toolkit/andlabs/checkbox.go b/toolkit/andlabs/checkbox.go
index b3b3121..b4b1524 100644
--- a/toolkit/andlabs/checkbox.go
+++ b/toolkit/andlabs/checkbox.go
@@ -1,13 +1,13 @@
-package toolkit
+package main
import "log"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t Toolkit) NewCheckbox(name string) *Toolkit {
+func (t andlabsT) NewCheckbox(name string) *andlabsT {
log.Println("gui.Toolkit.NewCheckbox()", name)
- var newt Toolkit
+ var newt andlabsT
if t.broken() {
return nil
@@ -25,7 +25,7 @@ func (t Toolkit) NewCheckbox(name string) *Toolkit {
return &newt
}
-func (t Toolkit) Checked() bool {
+func (t andlabsT) Checked() bool {
if t.broken() {
return false
}
diff --git a/toolkit/andlabs/common.go b/toolkit/andlabs/common.go
index 451f9d6..fc6cbe8 100644
--- a/toolkit/andlabs/common.go
+++ b/toolkit/andlabs/common.go
@@ -1,4 +1,4 @@
-package toolkit
+package main
import "log"
@@ -9,7 +9,7 @@ func init() {
setDefaultBehavior(true)
}
-func (t Toolkit) commonChange(widget string) {
+func (t andlabsT) commonChange(widget string) {
s := t.String()
if (DebugToolkit) {
log.Println("gui.Toolkit.ui.OnChanged() =", s)
@@ -36,7 +36,7 @@ func (t Toolkit) commonChange(widget string) {
// does some sanity checks on the internal structs of the binary tree
// TODO: probably this should not panic unless it's running in devel mode (?)
-func (t *Toolkit) broken() bool {
+func (t *andlabsT) broken() bool {
if (t.uiBox == nil) {
if (t.uiWindow != nil) {
if (DebugToolkit) {
diff --git a/toolkit/andlabs/demo.go b/toolkit/andlabs/demo.go
index 7ba1822..0781f88 100644
--- a/toolkit/andlabs/demo.go
+++ b/toolkit/andlabs/demo.go
@@ -1,4 +1,4 @@
-package toolkit
+package main
import "log"
@@ -19,7 +19,7 @@ func BlankWindow(w *ui.Window) *ui.Box {
return hbox
}
-func (t *Toolkit) DemoNumbersPage() {
+func (t *andlabsT) DemoNumbersPage() {
var w *ui.Window
log.Println("Starting wit/gui toolkit andlabs/ui DemoNumbersPage()")
diff --git a/toolkit/andlabs/dropdown.go b/toolkit/andlabs/dropdown.go
index ca09a99..1e1886a 100644
--- a/toolkit/andlabs/dropdown.go
+++ b/toolkit/andlabs/dropdown.go
@@ -1,18 +1,19 @@
-package toolkit
+package main
import "log"
-import "os"
// import "time"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t *Toolkit) NewDropdown(title string) *Toolkit {
+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 Toolkit
+ var newt andlabsT
if t.broken() {
return nil
@@ -31,7 +32,7 @@ func (t *Toolkit) NewDropdown(title string) *Toolkit {
i := spin.Selected()
if (newt.val == nil) {
log.Println("make map didn't work")
- os.Exit(0)
+ newt.text = "error"
}
newt.text = newt.val[i]
newt.commonChange("Dropdown")
@@ -40,7 +41,7 @@ func (t *Toolkit) NewDropdown(title string) *Toolkit {
return &newt
}
-func (t *Toolkit) AddDropdown(title string) {
+func (t *andlabsT) AddDropdownName(title string) {
t.uiCombobox.Append(title)
if (t.val == nil) {
log.Println("make map didn't work")
@@ -50,6 +51,40 @@ func (t *Toolkit) AddDropdown(title string) {
t.c = t.c + 1
}
-func (t Toolkit) SetDropdown(i int) {
+func (t andlabsT) SetDropdown(i int) {
t.uiCombobox.SetSelected(i)
}
+
+func NewDropdown(parentW *toolkit.Widget, w *toolkit.Widget) {
+ log.Println("gui.andlabs.NewDropdown()", w.Name)
+
+ t := mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewDropdown() toolkit struct == nil. name=", parentW.Name, w.Name)
+ listMap()
+ }
+ newt := t.NewDropdown(w.Name)
+ mapWidgetsToolkits(w, newt)
+}
+
+func AddDropdownName(w *toolkit.Widget, s string) {
+ log.Println("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)
+ listMap()
+ }
+ t.AddDropdownName(s)
+}
+
+func SetDropdown(w *toolkit.Widget, i int) {
+ log.Println("gui.andlabs.SetDropdown()", i)
+
+ t := mapToolkits[w]
+ if (t == nil) {
+ log.Println("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 5b315a4..e93247a 100644
--- a/toolkit/andlabs/group.go
+++ b/toolkit/andlabs/group.go
@@ -1,14 +1,29 @@
-package toolkit
+package main
-import "log"
-import "os"
+import (
+ "log"
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
+ "git.wit.org/wit/gui/toolkit"
+
+ "github.com/andlabs/ui"
+ _ "github.com/andlabs/ui/winmanifest"
+)
+
+func NewGroup(parentW *toolkit.Widget, w *toolkit.Widget) {
+ log.Println("gui.andlabs.NewGroup()", w.Name)
+
+ t := mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewGroup() toolkit struct == nil. name=", parentW.Name, w.Name)
+ listMap()
+ }
+ newt := t.NewGroup(w.Name)
+ mapWidgetsToolkits(w, newt)
+}
// make new Group here
-func (t Toolkit) NewGroup(title string) *Toolkit {
- var newt Toolkit
+func (t andlabsT) NewGroup(title string) *andlabsT {
+ var newt andlabsT
if (DebugToolkit) {
log.Println("gui.Toolbox.NewGroup() create", title)
@@ -22,8 +37,7 @@ func (t Toolkit) NewGroup(title string) *Toolkit {
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.Println("probably could just make a box here?")
- os.Exit(0)
+ log.Fatalln("probably could just make a box here?")
}
hbox := ui.NewVerticalBox()
diff --git a/toolkit/andlabs/label.go b/toolkit/andlabs/label.go
index 2819ff1..c5a6896 100644
--- a/toolkit/andlabs/label.go
+++ b/toolkit/andlabs/label.go
@@ -1,21 +1,42 @@
-package toolkit
+package main
import "log"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t *Toolkit) NewLabel(name string) *Toolkit {
- // make new node here
- log.Println("gui.Toolbox.NewLabel", name)
+import "git.wit.org/wit/gui/toolkit"
+
+func NewLabel(parentW *toolkit.Widget, w *toolkit.Widget) {
+ var t, newt *andlabsT
+ log.Println("gui.andlabs.NewButton()", w.Name)
+
+ t = mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
+ return
+ }
if t.broken() {
- return nil
+ return
}
- var newt Toolkit
- newt.uiLabel = ui.NewLabel(name)
+ newt = new(andlabsT)
+
+ newt.uiLabel = ui.NewLabel(w.Name)
newt.uiBox = t.uiBox
- t.uiBox.Append(newt.uiLabel, false)
- return &newt
+ 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()
+ }
+ 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")
+ return
+ }
+
+ mapWidgetsToolkits(w, newt)
}
diff --git a/toolkit/andlabs/main.go b/toolkit/andlabs/main.go
index da639fa..85e6913 100644
--- a/toolkit/andlabs/main.go
+++ b/toolkit/andlabs/main.go
@@ -1,7 +1,10 @@
-package toolkit
+package main
import (
"log"
+// "time"
+
+ "git.wit.org/wit/gui/toolkit"
"github.com/andlabs/ui"
// the _ means we only need this for the init()
@@ -12,7 +15,17 @@ func Main(f func()) {
if (DebugToolkit) {
log.Println("Starting gui.Main() (using gtk via andlabs/ui)")
}
- ui.Main(f)
+ 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)")
+ // time.Sleep(1 * time.Second)
+ // NewWindow2("helloworld2", 200, 100)
+ f()
+ })
}
// Other goroutines must use this to access the GUI
@@ -25,7 +38,20 @@ func Main(f func()) {
//
func Queue(f func()) {
if (DebugToolkit) {
- log.Println("Sending function to gui.Main() (using gtk via andlabs/ui)")
+ log.Println("Sending function to ui.QueueMain() (using gtk via andlabs/ui)")
}
- ui.QueueMain(f)
+ //ui.QueueMain(f)
+ f()
+}
+
+func Init() {
+ log.Println("should Init() here")
+
+ mapWidgets = make(map[*andlabsT]*toolkit.Widget)
+ mapToolkits = make(map[*toolkit.Widget]*andlabsT)
+}
+
+func Quit() {
+ log.Println("should Quit() here")
+ // myExit(nil)
}
diff --git a/toolkit/andlabs2/plugin.go b/toolkit/andlabs/plugin.go
index f78e95e..f78e95e 100644
--- a/toolkit/andlabs2/plugin.go
+++ b/toolkit/andlabs/plugin.go
diff --git a/toolkit/andlabs/slider.go b/toolkit/andlabs/slider.go
index ad801f8..f9ff0f3 100644
--- a/toolkit/andlabs/slider.go
+++ b/toolkit/andlabs/slider.go
@@ -1,15 +1,19 @@
-package toolkit
+package main
-import "log"
-import "os"
+import (
+ "log"
+ "os"
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
+ "git.wit.org/wit/gui/toolkit"
-func (t Toolkit) NewSlider(title string, x int, y int) *Toolkit {
+ "github.com/andlabs/ui"
+ _ "github.com/andlabs/ui/winmanifest"
+)
+
+func (t andlabsT) NewSlider(title string, x int, y int) *andlabsT {
// make new node here
log.Println("gui.Toolkit.NewSpinbox()", x, y)
- var newt Toolkit
+ 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")
@@ -29,3 +33,16 @@ func (t Toolkit) NewSlider(title string, x int, y int) *Toolkit {
return &newt
}
+
+func NewSlider(parentW *toolkit.Widget, w *toolkit.Widget) {
+ var newt *andlabsT
+ log.Println("gui.andlabs.NewTab()", w.Name)
+
+ t := mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
+ return
+ }
+ newt = t.NewSlider(w.Name, w.X, w.Y)
+ mapWidgetsToolkits(w, newt)
+}
diff --git a/toolkit/andlabs/spinner.go b/toolkit/andlabs/spinner.go
index 885192c..6505b48 100644
--- a/toolkit/andlabs/spinner.go
+++ b/toolkit/andlabs/spinner.go
@@ -1,4 +1,4 @@
-package toolkit
+package main
import "log"
import "os"
@@ -6,10 +6,10 @@ import "os"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t Toolkit) NewSpinner(title string, x int, y int) *Toolkit {
+func (t andlabsT) NewSpinner(title string, x int, y int) *andlabsT {
// make new node here
log.Println("gui.Toolkit.NewSpinner()", x, y)
- var newt Toolkit
+ 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")
diff --git a/toolkit/andlabs/structs.go b/toolkit/andlabs/structs.go
index 9bba671..2f3fa72 100644
--- a/toolkit/andlabs/structs.go
+++ b/toolkit/andlabs/structs.go
@@ -1,4 +1,4 @@
-package toolkit
+package main
import "log"
@@ -47,15 +47,15 @@ func GetDebugToolkit () bool {
}
// stores the raw toolkit internals
-type Toolkit struct {
+type andlabsT struct {
id string
Name string
Width int
Height int
- OnChanged func(*Toolkit)
- OnExit func(*Toolkit)
+ OnChanged func(*andlabsT)
+ OnExit func(*andlabsT)
Custom func()
@@ -84,18 +84,18 @@ type Toolkit struct {
text string
}
-func (t *Toolkit) String() string {
+func (t *andlabsT) String() string {
return t.GetText()
}
-func forceDump(t *Toolkit) {
+func forceDump(t *andlabsT) {
tmp := DebugToolkit
DebugToolkit = true
t.Dump()
DebugToolkit = tmp
}
-func (t *Toolkit) GetText() string {
+func (t *andlabsT) GetText() string {
t.Dump()
if (DebugToolkit) {
log.Println("gui.Toolkit.Text() Enter")
@@ -128,7 +128,7 @@ func (t *Toolkit) GetText() string {
return ""
}
-func (t *Toolkit) SetText(s string) bool {
+func (t *andlabsT) SetText(s string) bool {
if (DebugToolkit) {
log.Println("gui.Toolkit.Text() Enter")
scs := spew.ConfigState{MaxDepth: 1}
@@ -151,7 +151,7 @@ func (t *Toolkit) SetText(s string) bool {
return false
}
-func sanity(t *Toolkit) bool {
+func sanity(t *andlabsT) bool {
if (DebugToolkit) {
log.Println("gui.Toolkit.Value() Enter")
scs := spew.ConfigState{MaxDepth: 1}
@@ -166,7 +166,7 @@ func sanity(t *Toolkit) bool {
return true
}
-func (t *Toolkit) SetValue(i int) bool {
+func (t *andlabsT) SetValue(i int) bool {
log.Println("gui.Toolkit.SetValue() START")
if (sanity(t)) {
return false
@@ -176,7 +176,7 @@ func (t *Toolkit) SetValue(i int) bool {
return true
}
-func (t *Toolkit) Value() int {
+func (t *andlabsT) Value() int {
if (DebugToolkit) {
log.Println("gui.Toolkit.Value() Enter")
scs := spew.ConfigState{MaxDepth: 1}
@@ -202,7 +202,7 @@ func (t *Toolkit) Value() int {
return 0
}
-func (t *Toolkit) Dump() {
+func (t *andlabsT) Dump() {
if ! DebugToolkit {
return
}
diff --git a/toolkit/andlabs/tab.go b/toolkit/andlabs/tab.go
index c641fc0..0556fb9 100644
--- a/toolkit/andlabs/tab.go
+++ b/toolkit/andlabs/tab.go
@@ -1,12 +1,13 @@
-package toolkit
+package main
import (
"log"
"time"
+ "git.wit.org/wit/gui/toolkit"
+
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
-
)
/*
@@ -21,9 +22,9 @@ import (
once there is one. If you send a Window here, it will replace
any existing tabs rather than adding a new one
*/
-func (t *Toolkit) AddTab(name string) *Toolkit {
+func (t *andlabsT) newTab(name string) *andlabsT {
// var w *ui.Window
- var newt *Toolkit
+ var newt *andlabsT
log.Println("gui.toolkit.AddTab() sleep 3")
@@ -68,8 +69,8 @@ func tabSetMargined(tab *ui.Tab) {
}
}
-func newTab(w *ui.Window, name string) *Toolkit {
- var t Toolkit
+func newTab(w *ui.Window, name string) *andlabsT {
+ var t andlabsT
if (DebugToolkit) {
log.Println("gui.toolkit.NewTab() ADD", name)
}
@@ -99,8 +100,8 @@ func newTab(w *ui.Window, name string) *Toolkit {
return &t
}
-func (t *Toolkit) appendTab(name string) *Toolkit {
- var newT Toolkit
+func (t *andlabsT) appendTab(name string) *andlabsT {
+ var newT andlabsT
if (DebugToolkit) {
log.Println("gui.toolkit.NewTab() ADD", name)
}
@@ -131,3 +132,16 @@ func (t *Toolkit) appendTab(name string) *Toolkit {
newT.uiBox = hbox
return &newT
}
+
+func NewTab(parentW *toolkit.Widget, w *toolkit.Widget) {
+ var newt *andlabsT
+ log.Println("gui.andlabs.NewTab()", w.Name)
+
+ t := mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
+ return
+ }
+ newt = t.newTab(w.Name)
+ mapWidgetsToolkits(w, newt)
+}
diff --git a/toolkit/andlabs/textbox.go b/toolkit/andlabs/textbox.go
index 44946b8..c7a9390 100644
--- a/toolkit/andlabs/textbox.go
+++ b/toolkit/andlabs/textbox.go
@@ -1,16 +1,18 @@
-package toolkit
+package main
import "log"
+import "git.wit.org/wit/gui/toolkit"
+
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
-func (t Toolkit) NewTextbox(name string) *Toolkit {
+func (t andlabsT) NewTextbox(name string) *andlabsT {
+ var newt andlabsT
+
if (DebugToolkit) {
log.Println("gui.Toolkit.NewTextbox()", name)
}
- var newt Toolkit
-
if t.broken() {
return nil
}
@@ -32,3 +34,37 @@ func (t Toolkit) NewTextbox(name string) *Toolkit {
return &newt
}
+
+func NewTextbox(parentW *toolkit.Widget, w *toolkit.Widget) {
+ var t, newt *andlabsT
+ log.Println("gui.andlabs.NewTextbox()", w.Name)
+
+ t = mapToolkits[parentW]
+ if (t == nil) {
+ log.Println("go.andlabs.NewTextbox() toolkit struct == nil. name=", parentW.Name, w.Name)
+ return
+ }
+
+ if t.broken() {
+ return
+ }
+ newt = new(andlabsT)
+
+ 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()
+ }
+ 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")
+ return
+ }
+
+ mapWidgetsToolkits(w, newt)
+}
diff --git a/toolkit/andlabs/window.go b/toolkit/andlabs/window.go
index efbd672..b360cb8 100644
--- a/toolkit/andlabs/window.go
+++ b/toolkit/andlabs/window.go
@@ -1,57 +1,69 @@
-package toolkit
+package main
import (
"log"
"github.com/andlabs/ui"
_ "github.com/andlabs/ui/winmanifest"
+
+ "git.wit.org/wit/gui/toolkit"
)
-func (t *Toolkit) MessageWindow(msg1 string, msg2 string) {
+func (t *andlabsT) MessageWindow(msg1 string, msg2 string) {
ui.MsgBox(t.uiWindow, msg1, msg2)
}
-func (t *Toolkit) ErrorWindow(msg1 string, msg2 string) {
+func (t *andlabsT) ErrorWindow(msg1 string, msg2 string) {
ui.MsgBoxError(t.uiWindow, msg1, msg2)
}
-func NewWindow(title string, x int, y int) *Toolkit {
- var t Toolkit
+func NewWindow(w *toolkit.Widget) {
+ var t *andlabsT
+
if (DebugToolkit) {
- log.Println("toolkit NewWindow", title, x, y)
+ log.Println("toolkit NewWindow", w.Name, w.Width, w.Height)
+ }
+
+ if (w == nil) {
+ log.Println("wit/gui plugin error. widget == nil")
+ return
}
- w := ui.NewWindow(title, x, y, menubar)
- w.SetBorderless(canvas)
- w.SetMargined(margin)
- w.OnClosing(func(*ui.Window) bool {
+ t = new(andlabsT)
+ // t = NewWindow2(w.Name, w.Width, w.Height)
+
+// func NewWindow2(title string, x int, y int) *andlabsT {
+ // menubar bool is if the OS defined border on the window should be used
+ win := ui.NewWindow(w.Name, w.Width, w.Height, menubar)
+ 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()
}
- if (t.OnExit != nil) {
- if (DebugToolkit) {
- log.Println("ui.Window().OnExit() ATTEMPTING toolkit.OnExit CALLBACK")
- }
- t.OnExit(&t)
+ if (w.Custom != nil) {
+ w.Custom()
+ return true
}
- if (t.Custom != nil) {
- if (DebugToolkit) {
- log.Println("ui.Window().Custom() ATTEMPTING toolkit.Custom CALLBACK")
- }
- t.Custom()
+ if (w.Event != nil) {
+ w.Event(w)
+ return true
}
if (DebugToolkit) {
- log.Println("ui.Window().OnExit() Toolkit.OnExit is nil")
+ log.Println("andlabs.ui.Window().OnClosing() was not defined")
}
- return true
+ return false
})
- w.Show()
- t.uiWindow = w
- t.UiWindowBad = w // deprecate this as soon as possible
- return &t
+ win.Show()
+ t.uiWindow = win
+ t.UiWindowBad = win // deprecate this as soon as possible
+ t.Name = w.Name
+
+ mapWidgetsToolkits(w, t)
+ return
}
-func (t *Toolkit) SetWindowTitle(title string) {
+func (t *andlabsT) SetWindowTitle(title string) {
if (DebugToolkit) {
log.Println("toolkit NewWindow", t.Name, "title", title)
}
diff --git a/toolkit/andlabs2/Makefile b/toolkit/andlabs2/Makefile
deleted file mode 100644
index 54cf7f5..0000000
--- a/toolkit/andlabs2/Makefile
+++ /dev/null
@@ -1,4 +0,0 @@
-all: plugin
-
-plugin:
- GO111MODULE="off" go build -buildmode=plugin -o ../andlabs2.so
diff --git a/toolkit/andlabs2/button.go b/toolkit/andlabs2/button.go
deleted file mode 100644
index bd80683..0000000
--- a/toolkit/andlabs2/button.go
+++ /dev/null
@@ -1,67 +0,0 @@
-package main
-
-import "log"
-// import "os"
-
-
-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)
-
- t = mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
- return
- }
-
- if t.broken() {
- return
- }
- newt = new(andlabsT)
-
- b = ui.NewButton(w.Name)
- 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)
- return
- }
- t.Dump()
- newt.Dump()
- if (DebugToolkit) {
- log.Println("TODO: LEFT TOOLKIT GOROUTINE WITH NOTHING TO DO button name =", w.Name)
- }
- })
-
- 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()
- }
- 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")
- return
- }
-
- mapWidgetsToolkits(w, newt)
-}
diff --git a/toolkit/andlabs2/dropdown.go b/toolkit/andlabs2/dropdown.go
deleted file mode 100644
index 1e1886a..0000000
--- a/toolkit/andlabs2/dropdown.go
+++ /dev/null
@@ -1,90 +0,0 @@
-package main
-
-import "log"
-// import "time"
-
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
-
-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
-
- if t.broken() {
- return nil
- }
-
- s := ui.NewCombobox()
- newt.uiCombobox = s
- newt.uiBox = t.uiBox
- t.uiBox.Append(s, stretchy)
-
- // initialize the index
- newt.c = 0
- newt.val = make(map[int]string)
-
- s.OnSelected(func(spin *ui.Combobox) {
- i := spin.Selected()
- if (newt.val == nil) {
- log.Println("make map didn't work")
- newt.text = "error"
- }
- newt.text = newt.val[i]
- newt.commonChange("Dropdown")
- })
-
- return &newt
-}
-
-func (t *andlabsT) AddDropdownName(title string) {
- t.uiCombobox.Append(title)
- if (t.val == nil) {
- log.Println("make map didn't work")
- return
- }
- t.val[t.c] = title
- t.c = t.c + 1
-}
-
-func (t andlabsT) SetDropdown(i int) {
- t.uiCombobox.SetSelected(i)
-}
-
-func NewDropdown(parentW *toolkit.Widget, w *toolkit.Widget) {
- log.Println("gui.andlabs.NewDropdown()", w.Name)
-
- t := mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewDropdown() toolkit struct == nil. name=", parentW.Name, w.Name)
- listMap()
- }
- newt := t.NewDropdown(w.Name)
- mapWidgetsToolkits(w, newt)
-}
-
-func AddDropdownName(w *toolkit.Widget, s string) {
- log.Println("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)
- listMap()
- }
- t.AddDropdownName(s)
-}
-
-func SetDropdown(w *toolkit.Widget, i int) {
- log.Println("gui.andlabs.SetDropdown()", i)
-
- t := mapToolkits[w]
- if (t == nil) {
- log.Println("go.andlabs.SetDropdown() toolkit struct == nil. name=", w.Name, i)
- listMap()
- }
- t.SetDropdown(i)
-}
diff --git a/toolkit/andlabs2/label.go b/toolkit/andlabs2/label.go
deleted file mode 100644
index c5a6896..0000000
--- a/toolkit/andlabs2/label.go
+++ /dev/null
@@ -1,42 +0,0 @@
-package main
-
-import "log"
-
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
-
-import "git.wit.org/wit/gui/toolkit"
-
-func NewLabel(parentW *toolkit.Widget, w *toolkit.Widget) {
- var t, newt *andlabsT
- log.Println("gui.andlabs.NewButton()", w.Name)
-
- t = mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewButton() toolkit struct == nil. name=", parentW.Name, w.Name)
- return
- }
-
- if t.broken() {
- return
- }
- newt = new(andlabsT)
-
- newt.uiLabel = ui.NewLabel(w.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()
- }
- 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")
- return
- }
-
- mapWidgetsToolkits(w, newt)
-}
diff --git a/toolkit/andlabs2/main.go b/toolkit/andlabs2/main.go
deleted file mode 100644
index 8a28710..0000000
--- a/toolkit/andlabs2/main.go
+++ /dev/null
@@ -1,56 +0,0 @@
-package main
-
-import (
- "log"
-// "time"
-
- "git.wit.org/wit/gui/toolkit"
-
- "github.com/andlabs/ui"
- // the _ means we only need this for the init()
- _ "github.com/andlabs/ui/winmanifest"
-)
-
-func Main(f func()) {
- if (DebugToolkit) {
- log.Println("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)")
- // time.Sleep(1 * time.Second)
- // NewWindow2("helloworld2", 200, 100)
- f()
- })
-}
-
-// Other goroutines must use this to access the GUI
-//
-// You can not acess / process the GUI thread directly from
-// other goroutines. This is due to the nature of how
-// Linux, MacOS and Windows work (they all work differently. suprise. surprise.)
-//
-// 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)
-}
-
-func Init() {
- log.Println("should Init() here")
-
- mapWidgets = make(map[*andlabsT]*toolkit.Widget)
- mapToolkits = make(map[*toolkit.Widget]*andlabsT)
-}
-
-func Quit() {
- log.Println("should Quit() here")
- // myExit(nil)
-}
diff --git a/toolkit/andlabs2/slider.go b/toolkit/andlabs2/slider.go
deleted file mode 100644
index f9ff0f3..0000000
--- a/toolkit/andlabs2/slider.go
+++ /dev/null
@@ -1,48 +0,0 @@
-package main
-
-import (
- "log"
- "os"
-
- "git.wit.org/wit/gui/toolkit"
-
- "github.com/andlabs/ui"
- _ "github.com/andlabs/ui/winmanifest"
-)
-
-func (t andlabsT) NewSlider(title string, x int, y int) *andlabsT {
- // make new node here
- log.Println("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)
- return nil
- }
-
- s := ui.NewSlider(x, y)
- newt.uiSlider = s
- newt.uiBox = t.uiBox
- t.uiBox.Append(s, stretchy)
-
- s.OnChanged(func(spin *ui.Slider) {
- newt.commonChange("Slider")
- })
-
- return &newt
-}
-
-func NewSlider(parentW *toolkit.Widget, w *toolkit.Widget) {
- var newt *andlabsT
- log.Println("gui.andlabs.NewTab()", w.Name)
-
- t := mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewTab() toolkit struct == nil. name=", parentW.Name, w.Name)
- return
- }
- newt = t.NewSlider(w.Name, w.X, w.Y)
- mapWidgetsToolkits(w, newt)
-}
diff --git a/toolkit/andlabs2/textbox.go b/toolkit/andlabs2/textbox.go
deleted file mode 100644
index c7a9390..0000000
--- a/toolkit/andlabs2/textbox.go
+++ /dev/null
@@ -1,70 +0,0 @@
-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) NewTextbox(name string) *andlabsT {
- var newt andlabsT
-
- if (DebugToolkit) {
- log.Println("gui.Toolkit.NewTextbox()", name)
- }
- if t.broken() {
- return nil
- }
-
- c := ui.NewNonWrappingMultilineEntry()
- newt.uiMultilineEntry = c
-
- newt.uiBox = t.uiBox
- newt.Name = name
- if (defaultBehavior) {
- t.uiBox.Append(c, true)
- } else {
- t.uiBox.Append(c, stretchy)
- }
-
- c.OnChanged(func(spin *ui.MultilineEntry) {
- newt.commonChange("Textbox")
- })
-
- return &newt
-}
-
-func NewTextbox(parentW *toolkit.Widget, w *toolkit.Widget) {
- var t, newt *andlabsT
- log.Println("gui.andlabs.NewTextbox()", w.Name)
-
- t = mapToolkits[parentW]
- if (t == nil) {
- log.Println("go.andlabs.NewTextbox() toolkit struct == nil. name=", parentW.Name, w.Name)
- return
- }
-
- if t.broken() {
- return
- }
- newt = new(andlabsT)
-
- 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()
- }
- 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")
- return
- }
-
- mapWidgetsToolkits(w, newt)
-}
diff --git a/toolkit/andlabs2/window.go b/toolkit/andlabs2/window.go
deleted file mode 100644
index b360cb8..0000000
--- a/toolkit/andlabs2/window.go
+++ /dev/null
@@ -1,78 +0,0 @@
-package main
-
-import (
- "log"
-
- "github.com/andlabs/ui"
- _ "github.com/andlabs/ui/winmanifest"
-
- "git.wit.org/wit/gui/toolkit"
-)
-
-func (t *andlabsT) MessageWindow(msg1 string, msg2 string) {
- ui.MsgBox(t.uiWindow, msg1, msg2)
-}
-
-func (t *andlabsT) ErrorWindow(msg1 string, msg2 string) {
- ui.MsgBoxError(t.uiWindow, msg1, msg2)
-}
-
-func NewWindow(w *toolkit.Widget) {
- var t *andlabsT
-
- if (DebugToolkit) {
- log.Println("toolkit NewWindow", w.Name, w.Width, w.Height)
- }
-
- if (w == nil) {
- log.Println("wit/gui plugin error. widget == nil")
- return
- }
- t = new(andlabsT)
- // t = NewWindow2(w.Name, w.Width, w.Height)
-
-// func NewWindow2(title string, x int, y int) *andlabsT {
- // menubar bool is if the OS defined border on the window should be used
- win := ui.NewWindow(w.Name, w.Width, w.Height, menubar)
- 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()
- }
- 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")
- }
- return false
- })
- win.Show()
- t.uiWindow = win
- t.UiWindowBad = win // deprecate this as soon as possible
- t.Name = w.Name
-
- mapWidgetsToolkits(w, t)
- return
-}
-
-func (t *andlabsT) SetWindowTitle(title string) {
- if (DebugToolkit) {
- log.Println("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)
- }
- }
-}
diff --git a/toolkit/gocui/gocui.go b/toolkit/gocui/gocui.go
index d614387..0d7c5a5 100644
--- a/toolkit/gocui/gocui.go
+++ b/toolkit/gocui/gocui.go
@@ -28,6 +28,7 @@ var (
helpLabel *gocui.View
err error
ch chan(func ())
+ outf *os.File
)
func Init() {
@@ -50,6 +51,16 @@ func Init() {
stringWidget = make(map[string]*toolkit.Widget)
ch = make(chan func())
+
+ outf, err = os.OpenFile("/tmp/witgui.log", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
+ if err != nil {
+ log.Fatalf("error opening file: %v", err)
+ }
+ // hmm. where to put this?
+ // defer outf.Close()
+
+ log.SetOutput(outf)
+ log.Println("This is a test log entry")
}
func Queue(f func()) {
@@ -58,6 +69,8 @@ func Queue(f func()) {
}
func Main(f func()) {
+ // close the STDOUT log file
+ defer outf.Close()
if (baseGui == nil) {
panic("WTF Main()")
}
@@ -76,7 +89,7 @@ func layout(g *gocui.Gui) error {
var err error
maxX, _ := g.Size()
- helpLabel, err = g.SetView("help", maxX-32, 0, maxX-1, 11, 0)
+ helpLabel, err = g.SetView("help", maxX-32, 0, maxX-1, 12, 0)
if err != nil {
if !errors.Is(err, gocui.ErrUnknownView) {
return err
@@ -90,6 +103,7 @@ func layout(g *gocui.Gui) error {
fmt.Fprintln(helpLabel, "Arrow keys: Move Button")
fmt.Fprintln(helpLabel, "t: Move Button to the top")
fmt.Fprintln(helpLabel, "b: Move Button to the button")
+ fmt.Fprintln(helpLabel, "STDOUT: /tmp/witgui.log")
fmt.Fprintln(helpLabel, "Ctrl-C or Q: Exit")
}
return nil
diff --git a/toolkit/gocui/keybindings.go b/toolkit/gocui/keybindings.go
index 69def39..48edf71 100644
--- a/toolkit/gocui/keybindings.go
+++ b/toolkit/gocui/keybindings.go
@@ -130,7 +130,7 @@ func initKeybindings(g *gocui.Gui) error {
g.SetCurrentView("help")
// moveView(g, tmp, 0, -delta)
if err := g.DeleteView("help"); err != nil {
- panic(err)
+ log.Fatalln("gocui SetKeybinding()", err)
}
return nil
}); err != nil {