From 213c7d153b06d3e1211d1cdeae1e4f7833cb89f7 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 31 Oct 2021 14:21:36 -0500 Subject: REFACTOR: refactor everything to gui.Node struct Signed-off-by: Jeff Carr --- demo-window.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 demo-window.go (limited to 'demo-window.go') diff --git a/demo-window.go b/demo-window.go new file mode 100644 index 0000000..16566c4 --- /dev/null +++ b/demo-window.go @@ -0,0 +1,28 @@ +package gui + +// import "log" +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +var mybox *ui.Box + +func (n *Node) AddGroup(title string) *Node { + if (n == nil) { + return nil + } + hbox := n.uiBox + if (hbox == nil) { + return n + } + group := ui.NewGroup(title) + group.SetMargined(true) + hbox.Append(group, true) + + vbox := ui.NewVerticalBox() + vbox.SetPadded(true) + group.SetChild(vbox) + + newNode := n.AddNode(title) + newNode.uiBox = vbox + return newNode +} -- cgit v1.2.3 From 8236be92dc72c2b443dc6ccfc2c2f6877af22afa Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Wed, 3 Nov 2021 23:25:57 -0500 Subject: EDITBOX: pull in a edit box example Signed-off-by: Jeff Carr --- demo-window.go | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) (limited to 'demo-window.go') diff --git a/demo-window.go b/demo-window.go index 16566c4..f15f3ee 100644 --- a/demo-window.go +++ b/demo-window.go @@ -26,3 +26,48 @@ func (n *Node) AddGroup(title string) *Node { newNode.uiBox = vbox return newNode } + +func (n *Node) MakeBasicControlsPage(title string) *Node { + if (n == nil) { + return nil + } + origbox := n.uiBox + if (origbox == nil) { + return n + } + + vbox := ui.NewVerticalBox() + vbox.SetPadded(true) + + hbox := ui.NewHorizontalBox() + hbox.SetPadded(true) + vbox.Append(hbox, false) + + hbox.Append(ui.NewButton("Button"), false) + hbox.Append(ui.NewCheckbox("Checkbox"), false) + + vbox.Append(ui.NewLabel("This is a label. Right now, labels can only span one line."), false) + + vbox.Append(ui.NewHorizontalSeparator(), false) + + group := ui.NewGroup("Entries") + group.SetMargined(true) + vbox.Append(group, true) + + group.SetChild(ui.NewNonWrappingMultilineEntry()) + + entryForm := ui.NewForm() + entryForm.SetPadded(true) + group.SetChild(entryForm) + + entryForm.Append("Entry", ui.NewEntry(), false) + entryForm.Append("Password Entry", ui.NewPasswordEntry(), false) + entryForm.Append("Search Entry", ui.NewSearchEntry(), false) + entryForm.Append("Multiline Entry", ui.NewMultilineEntry(), true) + entryForm.Append("Multiline Entry No Wrap", ui.NewNonWrappingMultilineEntry(), true) + + origbox.Append(vbox, false) + newNode := n.AddNode(title) + newNode.uiBox = vbox + return newNode +} -- cgit v1.2.3 From 519271d056ab0304cde860fed34ba0fb6423ae68 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 4 Nov 2021 01:12:42 -0500 Subject: GOOD: add Node.SetMargined() Signed-off-by: Jeff Carr --- demo-window.go | 39 ++++++++++++++++++++++++++++++++++++++- entry.go | 16 +++++++++++++++- new-structs.go | 2 ++ 3 files changed, 55 insertions(+), 2 deletions(-) (limited to 'demo-window.go') diff --git a/demo-window.go b/demo-window.go index f15f3ee..3d17c35 100644 --- a/demo-window.go +++ b/demo-window.go @@ -1,6 +1,6 @@ package gui -// import "log" +import "log" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" @@ -71,3 +71,40 @@ func (n *Node) MakeBasicControlsPage(title string) *Node { newNode.uiBox = vbox return newNode } + +func (n *Node) MakeGroupEdit(title string) *Node { + n.Dump() + + group := ui.NewGroup(title) + group.SetMargined(true) + n.uiBox.Append(group, true) + + entrybox := ui.NewNonWrappingMultilineEntry() + + group.SetChild(entrybox) + + log.Println("entrybox =", entrybox) + n.uiMultilineEntry = entrybox + newNode := n.AddNode(title) + newNode.uiMultilineEntry = entrybox + newNode.uiGroup = group + return newNode + +/* + panic("dump") + entryForm := ui.NewForm() + entryForm.SetPadded(true) + group.SetChild(entryForm) + + entryForm.Append("Entry", ui.NewEntry(), false) + entryForm.Append("Password Entry", ui.NewPasswordEntry(), false) + entryForm.Append("Search Entry", ui.NewSearchEntry(), false) + entryForm.Append("Multiline Entry", ui.NewMultilineEntry(), true) + entryForm.Append("Multiline Entry No Wrap", ui.NewNonWrappingMultilineEntry(), true) + + origbox.Append(vbox, false) + newNode := n.AddNode(title) + newNode.uiBox = vbox +*/ + return n +} diff --git a/entry.go b/entry.go index d215cd2..a69adba 100644 --- a/entry.go +++ b/entry.go @@ -1,6 +1,7 @@ package gui import "log" +import "errors" // import "fmt" import "github.com/andlabs/ui" @@ -29,7 +30,20 @@ func (n *Node) SetText(value string) error { n.uiButton.SetText(value) return nil } - return nil + if (n.uiMultilineEntry != nil) { + n.uiMultilineEntry.SetText(value) + return nil + } + n.Dump() + return errors.New("couldn't find something to set the text to") +} + +func (n *Node) SetMargined(x bool) { + if (n.uiGroup != nil) { + n.uiGroup.SetMargined(x) + return + } + log.Println("Couldn't find something that has a Margin setting") } func defaultEntryChange(e *ui.Entry) { diff --git a/new-structs.go b/new-structs.go index 65b964f..5bceae2 100644 --- a/new-structs.go +++ b/new-structs.go @@ -65,6 +65,8 @@ type Node struct { uiBox *ui.Box uiArea *ui.Area uiText *ui.EditableCombobox + uiMultilineEntry *ui.MultilineEntry + uiGroup *ui.Group } func (n *Node) Parent() *Node { -- cgit v1.2.3 From ff30a1acbb0e56c358f0490b0e89e8324268b032 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Thu, 4 Nov 2021 02:23:41 -0500 Subject: GOOD: use global 'Stretchy' setting Signed-off-by: Jeff Carr --- box.go | 2 +- button.go | 4 ++-- debug-window.go | 6 +++--- demo-window.go | 22 ++-------------------- entry.go | 3 +-- gui.go | 1 + new-structs.go | 6 +++--- structs.go | 1 + 8 files changed, 14 insertions(+), 31 deletions(-) (limited to 'demo-window.go') diff --git a/box.go b/box.go index 65a8d39..5b4febe 100644 --- a/box.go +++ b/box.go @@ -37,7 +37,7 @@ func (n *Node) AddComboBox(title string, s ...string) *Node { } }) - box.Append(ecbox, false) + box.Append(ecbox, Config.Stretchy) return newNode } diff --git a/button.go b/button.go index ef73f73..9895ed8 100644 --- a/button.go +++ b/button.go @@ -32,7 +32,7 @@ func (n *Node) AddButton(name string, custom func(*Node)) *Node { log.Println("reflect.TypeOF(uiButton) =", reflect.TypeOf(button)) } // true == expand, false == make normal size button - n.uiBox.Append(button, false) + n.uiBox.Append(button, Config.Stretchy) n.uiButton = button newNode := n.makeNode(name, 888, 888 + Config.counter) @@ -73,6 +73,6 @@ func (n *Node) CreateColorButton(custom func(*Node), name string, values interfa Data.MouseClick(n) } }) - n.uiBox.Append(n.uiColorButton, false) + n.uiBox.Append(n.uiColorButton, Config.Stretchy) return n } diff --git a/debug-window.go b/debug-window.go index 288d433..72272ec 100644 --- a/debug-window.go +++ b/debug-window.go @@ -46,7 +46,7 @@ func makeWindowDebug() *ui.Box { } nodeCombo.SetSelected(0) - nodeBox.Append(nodeCombo, false) + nodeBox.Append(nodeCombo, Config.Stretchy) nodeCombo.OnSelected(func(*ui.Combobox) { y := nodeCombo.Selected() @@ -148,7 +148,7 @@ func addName(c *ui.Combobox, s string) { func addGroup(b *ui.Box, name string) *ui.Box { group := ui.NewGroup(name) group.SetMargined(true) - b.Append(group, true) + b.Append(group, Config.Stretchy) vbox := ui.NewVerticalBox() vbox.SetPadded(true) @@ -164,7 +164,7 @@ func addButton(box *ui.Box, name string) *ui.Button { log.Println("Should do something here") }) - box.Append(button, false) + box.Append(button, Config.Stretchy) return button } diff --git a/demo-window.go b/demo-window.go index 3d17c35..6cbb5fd 100644 --- a/demo-window.go +++ b/demo-window.go @@ -16,7 +16,7 @@ func (n *Node) AddGroup(title string) *Node { } group := ui.NewGroup(title) group.SetMargined(true) - hbox.Append(group, true) + hbox.Append(group, Config.Stretchy) vbox := ui.NewVerticalBox() vbox.SetPadded(true) @@ -77,7 +77,7 @@ func (n *Node) MakeGroupEdit(title string) *Node { group := ui.NewGroup(title) group.SetMargined(true) - n.uiBox.Append(group, true) + n.uiBox.Append(group, Config.Stretchy) entrybox := ui.NewNonWrappingMultilineEntry() @@ -89,22 +89,4 @@ func (n *Node) MakeGroupEdit(title string) *Node { newNode.uiMultilineEntry = entrybox newNode.uiGroup = group return newNode - -/* - panic("dump") - entryForm := ui.NewForm() - entryForm.SetPadded(true) - group.SetChild(entryForm) - - entryForm.Append("Entry", ui.NewEntry(), false) - entryForm.Append("Password Entry", ui.NewPasswordEntry(), false) - entryForm.Append("Search Entry", ui.NewSearchEntry(), false) - entryForm.Append("Multiline Entry", ui.NewMultilineEntry(), true) - entryForm.Append("Multiline Entry No Wrap", ui.NewNonWrappingMultilineEntry(), true) - - origbox.Append(vbox, false) - newNode := n.AddNode(title) - newNode.uiBox = vbox -*/ - return n } diff --git a/entry.go b/entry.go index a69adba..539c2f7 100644 --- a/entry.go +++ b/entry.go @@ -12,8 +12,7 @@ import _ "github.com/andlabs/ui/winmanifest" func (n *Node) NewLabel(text string) *Node { // make new node here - // n.Append(ui.NewLabel(text), false) - newNode := n.makeNode(text, 333, 334) +newNode := n.makeNode(text, 333, 334) newNode.Dump() n.Append(newNode) diff --git a/gui.go b/gui.go index 88554c8..6f7a236 100644 --- a/gui.go +++ b/gui.go @@ -24,6 +24,7 @@ func init() { Config.prefix = "wit" Config.DebugNode = false Config.DebugTabs = false + Config.Stretchy = true } func GuiInit() { diff --git a/new-structs.go b/new-structs.go index 5bceae2..e6b947e 100644 --- a/new-structs.go +++ b/new-structs.go @@ -242,7 +242,7 @@ func (n *Node) AddHorizontalBreak() *Node { log.Println("AddHorizontalBreak added to node =", n.Name) if (n.uiBox != nil) { tmp := ui.NewHorizontalSeparator() - n.uiBox.Append(tmp, false) + n.uiBox.Append(tmp, Config.Stretchy) } else { n.Dump() return nil @@ -254,7 +254,7 @@ func (n *Node) AddVerticalBreak() *Node { log.Println("AddVerticalBreak added to node =", n.Name) if (n.uiBox != nil) { tmp := ui.NewVerticalSeparator() - n.uiBox.Append(tmp, false) + n.uiBox.Append(tmp, Config.Stretchy) } else { n.Dump() return nil @@ -267,7 +267,7 @@ func (n *Node) AddHorizontalBox(title string) *Node { hbox.SetPadded(true) if (n.uiBox != nil) { log.Println("add new hbox to uiBox =", n.uiBox) - n.uiBox.Append(hbox, false) + n.uiBox.Append(hbox, Config.Stretchy) newNode := n.makeNode(title, 333, 333 + Config.counter) newNode.parent = n newNode.uiBox = hbox diff --git a/structs.go b/structs.go index 223ec4d..d82e621 100644 --- a/structs.go +++ b/structs.go @@ -22,6 +22,7 @@ type GuiConfig struct { Title string Width int Height int + Stretchy bool Exit func(*Node) Debug bool -- cgit v1.2.3