diff options
Diffstat (limited to 'toolkit/andlabs')
| -rw-r--r-- | toolkit/andlabs/box.go | 32 | ||||
| -rw-r--r-- | toolkit/andlabs/button.go | 2 | ||||
| -rw-r--r-- | toolkit/andlabs/checkbox.go | 34 | ||||
| -rw-r--r-- | toolkit/andlabs/common.go | 46 | ||||
| -rw-r--r-- | toolkit/andlabs/demo.go | 50 | ||||
| -rw-r--r-- | toolkit/andlabs/dropdown.go | 31 | ||||
| -rw-r--r-- | toolkit/andlabs/entry.go | 23 | ||||
| -rw-r--r-- | toolkit/andlabs/group.go | 6 | ||||
| -rw-r--r-- | toolkit/andlabs/label.go | 12 | ||||
| -rw-r--r-- | toolkit/andlabs/slider.go | 2 | ||||
| -rw-r--r-- | toolkit/andlabs/spinner.go | 2 | ||||
| -rw-r--r-- | toolkit/andlabs/structs.go | 105 | ||||
| -rw-r--r-- | toolkit/andlabs/tab.go | 82 | ||||
| -rw-r--r-- | toolkit/andlabs/textbox.go | 32 | ||||
| -rw-r--r-- | toolkit/andlabs/window.go | 6 |
15 files changed, 268 insertions, 197 deletions
diff --git a/toolkit/andlabs/box.go b/toolkit/andlabs/box.go index 548c90a..ac31f0d 100644 --- a/toolkit/andlabs/box.go +++ b/toolkit/andlabs/box.go @@ -15,35 +15,29 @@ func (t *Toolkit) NewBox() *Toolkit { log.Println("gui.Toolbox.NewBox() START create default") t.Dump() if (t.uiGroup != nil) { - log.Println("gui.Toolbox.NewBox() is a Group") + log.Println("\tgui.Toolbox.NewBox() is a Group") var newTK Toolkit vbox := ui.NewVerticalBox() - vbox.SetPadded(true) + vbox.SetPadded(padded) t.uiGroup.SetChild(vbox) newTK.uiBox = vbox return &newTK } if (t.uiBox != nil) { - log.Println("gui.Toolbox.NewBox() is a Box") - // return t + log.Println("\tgui.Toolbox.NewBox() is a Box") + var newTK Toolkit + + vbox := ui.NewVerticalBox() + vbox.SetPadded(padded) + t.uiBox.Append(vbox, stretchy) + newTK.uiBox = vbox + newTK.Name = t.Name + + return &newTK } - log.Println("gui.Toolbox.NewBox() FAILED. Couldn't figure out where to make a box") + log.Println("\tgui.Toolbox.NewBox() FAILED. Couldn't figure out where to make a box") t.Dump() return nil } - -// Make a new box -func MakeBox(name string) *Toolkit { - var newt Toolkit - - vbox := ui.NewVerticalBox() - vbox.SetPadded(border) - newt.uiBox = vbox - newt.Name = name - - log.Println("gui.Toolbox.MakeBox() name =", name) - newt.Dump() - return &newt -} diff --git a/toolkit/andlabs/button.go b/toolkit/andlabs/button.go index 3278c09..07b33aa 100644 --- a/toolkit/andlabs/button.go +++ b/toolkit/andlabs/button.go @@ -44,7 +44,7 @@ func (t Toolkit) NewButton(name string) *Toolkit { log.Println("TODO: LEFT TOOLKIT GOROUTINE button name =", name) }) - t.uiBox.Append(b, false) + t.uiBox.Append(b, stretchy) return &newt } diff --git a/toolkit/andlabs/checkbox.go b/toolkit/andlabs/checkbox.go new file mode 100644 index 0000000..b3b3121 --- /dev/null +++ b/toolkit/andlabs/checkbox.go @@ -0,0 +1,34 @@ +package toolkit + +import "log" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +func (t Toolkit) NewCheckbox(name string) *Toolkit { + log.Println("gui.Toolkit.NewCheckbox()", name) + var newt Toolkit + + if t.broken() { + return nil + } + + c := ui.NewCheckbox(name) + newt.uiCheckbox = c + newt.uiBox = t.uiBox + t.uiBox.Append(c, stretchy) + + c.OnToggled(func(spin *ui.Checkbox) { + newt.commonChange("Checkbox") + }) + + return &newt +} + +func (t Toolkit) Checked() bool { + if t.broken() { + return false + } + + return t.uiCheckbox.Checked() +} diff --git a/toolkit/andlabs/common.go b/toolkit/andlabs/common.go new file mode 100644 index 0000000..75f7444 --- /dev/null +++ b/toolkit/andlabs/common.go @@ -0,0 +1,46 @@ +package toolkit + +import "log" + +// import "github.com/andlabs/ui" +// import _ "github.com/andlabs/ui/winmanifest" + +func init() { + log.Println("gui/toolkit init() Setting defaultBehavior = true") + setDefaultBehavior(true) +} + +func (t Toolkit) commonChange(widget string) { + s := t.String() + log.Println("gui.Toolkit.ui.OnChanged() =", s) + if (DebugToolkit) { + log.Println("gui.Toolkit.ui.OnChanged() =", s) + } + if (t.OnChanged != nil) { + log.Println("gui.Toolkit.OnChanged() trying to run toolkit.OnChanged() entered val =", s) + t.OnChanged(&t) + return + } + if (t.Custom != nil) { + log.Println("gui.Toolkit.OnChanged() Running toolkit.Custom()") + t.Dump() + t.Custom() + return + } + log.Println("gui.Toolkit.OnChanged() ENDED without finding any callback") +} + +func (t Toolkit) broken() bool { + if (t.uiBox == nil) { + 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?") + // corruption or something horrible? + panic("wit/gui toolkit/andlabs func broken() invalid goroutine access into this toolkit?") + 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)") + return false + } + return false +} diff --git a/toolkit/andlabs/demo.go b/toolkit/andlabs/demo.go index 1b097d7..7ba1822 100644 --- a/toolkit/andlabs/demo.go +++ b/toolkit/andlabs/demo.go @@ -5,7 +5,12 @@ import "log" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" -import "github.com/davecgh/go-spew/spew" +/* + This is a code example taken directly from the toolkit andlabs/ui + + This code is here to double check that the toolkit itself still works + the same way. This is intended as a sanity check. +*/ func BlankWindow(w *ui.Window) *ui.Box { hbox := ui.NewHorizontalBox() @@ -17,53 +22,14 @@ func BlankWindow(w *ui.Window) *ui.Box { func (t *Toolkit) DemoNumbersPage() { var w *ui.Window + log.Println("Starting wit/gui toolkit andlabs/ui DemoNumbersPage()") + w = t.uiWindow t.uiBox = makeNumbersPage() t.uiBox.SetPadded(true) w.SetChild(t.uiBox) w.SetTitle("Internal demo of andlabs/ui toolkit") - - if (DebugToolkit) { - log.Println("gui.Toolbox.DemoNumbersPage()") - scs := spew.ConfigState{MaxDepth: 1} - scs.Dump(t) - } -} - -/* -func Demo(b *ui.Box) *Toolkit { - x := 22 - y := 33 - - // make new node here - log.Println("gui.Toolbox.NewSpinbox()", x, y) - var t Toolkit - - if (b == nil) { - log.Println("gui.ToolboxNode.NewSpinbox() node.UiBox == nil. I can't add a range UI element without a place to put it") - return nil - } - s := ui.NewSlider(x, y) - t.uiSlider = s - t.uiBox = b - t.uiBox.Append(s, false) - - s.OnChanged(func(spin *ui.Slider) { - i := spin.Value() - if (DebugToolkit) { - log.Println("gui.Toolbox.ui.OnChanged() val =", i) - scs := spew.ConfigState{MaxDepth: 1} - scs.Dump(t) - } - if (t.OnChanged != nil) { - log.Println("gui.Toolbox.OnChanged() entered val =", i) - t.OnChanged(&t) - } - }) - - return &t } -*/ func makeNumbersPage() *ui.Box { hbox := ui.NewHorizontalBox() diff --git a/toolkit/andlabs/dropdown.go b/toolkit/andlabs/dropdown.go index 14cbf14..51d618d 100644 --- a/toolkit/andlabs/dropdown.go +++ b/toolkit/andlabs/dropdown.go @@ -7,23 +7,19 @@ import "os" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" -import "github.com/davecgh/go-spew/spew" - -func (pt *Toolkit) NewDropdown(title string) *Toolkit { +func (t *Toolkit) NewDropdown(title string) *Toolkit { // make new node here log.Println("gui.Toolbox.NewDropdownCombobox()") var newt Toolkit - if (pt.uiBox == nil) { - log.Println("gui.ToolboxNode.NewDropdown() node.UiBox == nil. I can't add a range UI element without a place to put it") - os.Exit(0) + if t.broken() { return nil } s := ui.NewCombobox() newt.uiCombobox = s - newt.uiBox = pt.uiBox - pt.uiBox.Append(s, false) + newt.uiBox = t.uiBox + t.uiBox.Append(s, stretchy) // initialize the index newt.c = 0 @@ -36,24 +32,7 @@ func (pt *Toolkit) NewDropdown(title string) *Toolkit { os.Exit(0) } newt.text = newt.val[i] - val := newt.text - log.Println("gui.Toolbox.ui.Dropdown.OnChanged() val =", i, val) - if (DebugToolkit) { - log.Println("gui.Toolbox.ui.OnChanged() val =", i, val) - scs := spew.ConfigState{MaxDepth: 1} - scs.Dump(newt) - } - if (newt.OnChanged != nil) { - log.Println("gui.Toolbox.OnChanged() trying to run toolkit.OnChanged() entered val =", i, val) - newt.OnChanged(&newt) - return - } - if (newt.Custom != nil) { - log.Println("gui.Toolbox.OnChanged() Running toolkit.Custom()", i, val) - newt.Custom() - return - } - log.Println("gui.Toolbox.Dropdown.OnChanged() ENDED without finding any callback", i, val) + newt.commonChange("Dropdown") }) return &newt diff --git a/toolkit/andlabs/entry.go b/toolkit/andlabs/entry.go deleted file mode 100644 index c981732..0000000 --- a/toolkit/andlabs/entry.go +++ /dev/null @@ -1,23 +0,0 @@ -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/group.go b/toolkit/andlabs/group.go index 12d9206..c42ac0d 100644 --- a/toolkit/andlabs/group.go +++ b/toolkit/andlabs/group.go @@ -19,11 +19,11 @@ func (t Toolkit) NewGroup(title string) *Toolkit { log.Println("gui.Toolbox.NewGroup() create", title) g := ui.NewGroup(title) - g.SetMargined(true) - t.uiBox.Append(g, streachy) + g.SetMargined(margin) + t.uiBox.Append(g, stretchy) hbox := ui.NewVerticalBox() - hbox.SetPadded(true) + hbox.SetPadded(padded) g.SetChild(hbox) newt.uiGroup = g diff --git a/toolkit/andlabs/label.go b/toolkit/andlabs/label.go index 453412a..2819ff1 100644 --- a/toolkit/andlabs/label.go +++ b/toolkit/andlabs/label.go @@ -1,31 +1,21 @@ package toolkit import "log" -import "os" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" -// func NewLabel(b *ui.Box, name string) *Toolkit { - func (t *Toolkit) NewLabel(name string) *Toolkit { // make new node here log.Println("gui.Toolbox.NewLabel", name) - if (t.uiBox == nil) { - log.Println("gui.ToolboxNode.NewLabel() node.UiBox == nil. I can't add a range UI element without a place to put it") - os.Exit(0) + if t.broken() { return nil } var newt Toolkit newt.uiLabel = ui.NewLabel(name) newt.uiBox = t.uiBox t.uiBox.Append(newt.uiLabel, false) - log.Println("parent toolkit") - t.Dump() - log.Println("newt toolkit") - newt.Dump() - // panic("got here") return &newt } diff --git a/toolkit/andlabs/slider.go b/toolkit/andlabs/slider.go index 05eaba4..7d4f42a 100644 --- a/toolkit/andlabs/slider.go +++ b/toolkit/andlabs/slider.go @@ -24,7 +24,7 @@ func (t Toolkit) NewSlider(title string, x int, y int) *Toolkit { s := ui.NewSlider(x, y) newt.uiSlider = s newt.uiBox = t.uiBox - t.uiBox.Append(s, false) + t.uiBox.Append(s, stretchy) s.OnChanged(func(spin *ui.Slider) { i := spin.Value() diff --git a/toolkit/andlabs/spinner.go b/toolkit/andlabs/spinner.go index 12662e5..f147205 100644 --- a/toolkit/andlabs/spinner.go +++ b/toolkit/andlabs/spinner.go @@ -23,7 +23,7 @@ func (t Toolkit) NewSpinner(title string, x int, y int) *Toolkit { s := ui.NewSpinbox(x, y) newt.uiSpinbox = s newt.uiBox = t.uiBox - t.uiBox.Append(s, false) + t.uiBox.Append(s, stretchy) s.OnChanged(func(s *ui.Spinbox) { i := s.Value() diff --git a/toolkit/andlabs/structs.go b/toolkit/andlabs/structs.go index df34194..edad27e 100644 --- a/toolkit/andlabs/structs.go +++ b/toolkit/andlabs/structs.go @@ -7,11 +7,42 @@ import _ "github.com/andlabs/ui/winmanifest" import "github.com/davecgh/go-spew/spew" -var DebugToolkit bool = false +var defaultBehavior bool = true -var streachy = true -var border = 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) { + 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 Toolkit struct { @@ -31,7 +62,9 @@ type Toolkit struct { uiButton *ui.Button uiControl *ui.Control uiCombobox *ui.Combobox + uiCheckbox *ui.Checkbox uiEntry *ui.Entry + uiMultilineEntry *ui.MultilineEntry uiGroup *ui.Group uiLabel *ui.Label uiSlider *ui.Slider @@ -49,7 +82,18 @@ type Toolkit struct { text string } +func (t *Toolkit) String() string { + return t.GetText() +} + +func forceDump(t *Toolkit) { + DebugToolkit = true + t.Dump() + DebugToolkit = false +} + func (t *Toolkit) GetText() string { + forceDump(t) if (DebugToolkit) { log.Println("gui.Toolkit.Text() Enter") scs := spew.ConfigState{MaxDepth: 1} @@ -57,10 +101,19 @@ func (t *Toolkit) GetText() string { } if (t.uiEntry != nil) { if (DebugToolkit) { - log.Println("gui.Toolkit.Value() =", t.uiEntry.Text) + 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() + 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) @@ -83,6 +136,13 @@ func (t *Toolkit) SetText(s string) bool { 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 } @@ -138,34 +198,47 @@ func (t *Toolkit) Value() int { } func (t *Toolkit) Dump() { - log.Println("gui.Toolkit.Dump()", t.Name, t.Width, t.Height) + 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) + log.Println("gui.Toolkit.Dump() uiBox =", t.uiBox) } if (t.uiButton != nil) { - log.Println("gui.Toolkit.Dump() uiButton =", t.uiButton) + log.Println("gui.Toolkit.Dump() uiButton =", t.uiButton) } if (t.uiCombobox != nil) { - log.Println("gui.Toolkit.Dump() uiCombobox =", t.uiCombobox) + log.Println("gui.Toolkit.Dump() uiCombobox =", t.uiCombobox) } if (t.uiWindow != nil) { - log.Println("gui.Toolkit.Dump() uiWindow =", t.uiWindow) + log.Println("gui.Toolkit.Dump() uiWindow =", t.uiWindow) } if (t.uiTab != nil) { - log.Println("gui.Toolkit.Dump() uiTab =", t.uiTab) + log.Println("gui.Toolkit.Dump() uiTab =", t.uiTab) } if (t.uiGroup != nil) { - log.Println("gui.Toolkit.Dump() uiGroup =", t.uiGroup) + 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) + 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) + 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() Custom =", t.Custom) } - log.Println("gui.Toolkit.Dump() c =", t.c) - log.Println("gui.Toolkit.Dump() val =", t.val) + 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 922515d..a0565c0 100644 --- a/toolkit/andlabs/tab.go +++ b/toolkit/andlabs/tab.go @@ -22,59 +22,37 @@ import ( any existing tabs rather than adding a new one */ func (t *Toolkit) AddTab(name string) *Toolkit { - var w *ui.Window + // var w *ui.Window var newt *Toolkit log.Println("gui.toolkit.AddTab() sleep 3") - w = t.uiWindow - if (w == nil) { - log.Println("gui.toolkit.NewTab() node.UiWindow == nil. I can't add a tab without a window") + if (t.uiWindow == nil) { + log.Println("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) - newt = newTab(w, 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) newt = t.appendTab(name) - // this means you have to append a tab } - log.Println("t:") - t.Dump() - log.Println("newt:") - newt.Dump() - return newt -} - -func (t *Toolkit) SetTabBox(box *ui.Box) { - var tab *ui.Tab + newt.Name = name - log.Println("wit/gui/toolkit SetTabBox()") - t.Dump() - if (t.uiTab == nil) { - log.Println("wit/gui/toolkit SetTabBox() got uiTab == nil") - panic("fucknuts") - return - } - if (t.uiBox == nil) { - log.Println("wit/gui/toolkit SetTabBox() got uiBox == nil. Appending a new tab here") - tab = t.uiTab - tab.Append(t.Name, box) - tabSetMargined(tab) - return - } else { - log.Println("wit/gui/toolkit SetTabBox() got uiBox != nil. Appending the box to the existing box strechy = true") - t.uiBox.Append(box, true) // strechy == true - t.uiBox2 = box - // t.uiBox.Append(box, false) // strechy == false - return + if (DebugToolkit) { + log.Println("t:") + t.Dump() + log.Println("newt:") + newt.Dump() } + return newt } // This sets _all_ the tabs to Margin = true @@ -83,7 +61,8 @@ func (t *Toolkit) SetTabBox(box *ui.Box) { func tabSetMargined(tab *ui.Tab) { c := tab.NumPages() for i := 0; i < c; i++ { - tab.SetMargined(i, true) + log.Println("SetMargined", i, margin) + tab.SetMargined(i, margin) } } @@ -99,20 +78,18 @@ func newTab(w *ui.Window, name string) *Toolkit { return nil } log.Println("gui.toolkit.AddTab() START name =", name) - // time.Sleep(2 * time.Second) tab := ui.NewTab() - w.SetMargined(true) + w.SetMargined(margin) hbox := ui.NewHorizontalBox() // this makes everything go along the horizon - // hbox := ui.NewVerticalBox() - hbox.SetPadded(true) + hbox.SetPadded(padded) tab.Append(name, hbox) + tabSetMargined(tab) // TODO: run this in the right place(?) w.SetChild(tab) t.uiWindow = w t.uiTab = tab t.uiBox = hbox - // tabSetMargined(newNode.uiTab) return &t } @@ -120,24 +97,27 @@ func (t *Toolkit) appendTab(name string) *Toolkit { log.Println("gui.toolkit.NewTab() ADD", name) var newT Toolkit - if (t.uiWindow == 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) - return nil + if (t.uiTab == nil) { + log.Println("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") } log.Println("gui.toolkit.AddTab() START name =", name) - hbox := ui.NewHorizontalBox() // this makes everything go along the horizon - // hbox := ui.NewVerticalBox() - hbox.SetPadded(true) + var hbox *ui.Box + if (defaultBehavior) { + hbox = ui.NewHorizontalBox() + } else { + if (bookshelf) { + hbox = ui.NewHorizontalBox() + } else { + hbox = ui.NewVerticalBox() + } + } + hbox.SetPadded(padded) t.uiTab.Append(name, hbox) - // w.SetChild(tab) newT.uiWindow = t.uiWindow newT.uiTab = t.uiTab newT.uiBox = hbox - // tabSetMargined(newNode.uiTab) return &newT } diff --git a/toolkit/andlabs/textbox.go b/toolkit/andlabs/textbox.go new file mode 100644 index 0000000..95bfbaa --- /dev/null +++ b/toolkit/andlabs/textbox.go @@ -0,0 +1,32 @@ +package toolkit + +import "log" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +func (t Toolkit) NewTextbox(name string) *Toolkit { + 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/window.go b/toolkit/andlabs/window.go index f09a810..2aef431 100644 --- a/toolkit/andlabs/window.go +++ b/toolkit/andlabs/window.go @@ -18,8 +18,9 @@ func (t *Toolkit) ErrorWindow(msg1 string, msg2 string) { func NewWindow(title string, x int, y int) *Toolkit { var t Toolkit log.Println("toolkit NewWindow", title, x, y) - w := ui.NewWindow(title, x, y, false) - w.SetBorderless(false) + w := ui.NewWindow(title, x, y, menubar) + w.SetBorderless(canvas) + w.SetMargined(margin) w.OnClosing(func(*ui.Window) bool { log.Println("ui.Window().OnExit() SHOULD ATTEMPT CALLBACK here") t.Dump() @@ -34,7 +35,6 @@ func NewWindow(title string, x int, y int) *Toolkit { log.Println("ui.Window().OnExit() Toolkit.OnExit is nil") return true }) - w.SetMargined(true) w.Show() t.uiWindow = w t.UiWindowBad = w // deprecate this as soon as possible |
