diff options
| author | Jeff Carr <[email protected]> | 2022-10-11 11:25:46 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2022-10-11 11:25:46 -0500 |
| commit | 8358ca44efa625be9cd69fab870dfcf9c2a05df5 (patch) | |
| tree | 82a012480818d6825f01ce9bc5b62847347629c1 /entry.go | |
| parent | 45644ef9bc333f5def62d1c7f474dc96274e63fa (diff) | |
Change Node to Box
Diffstat (limited to 'entry.go')
| -rw-r--r-- | entry.go | 104 |
1 files changed, 88 insertions, 16 deletions
@@ -1,25 +1,45 @@ package gui import "log" -import "errors" -// import "fmt" +import "fmt" import "github.com/andlabs/ui" -// import ui "git.wit.org/interesting/andlabs-ui" import _ "github.com/andlabs/ui/winmanifest" -// import "github.com/davecgh/go-spew/spew" +import "github.com/davecgh/go-spew/spew" // functions for handling text entry boxes +func NewLabel(box *GuiBox, text string) { + box.Append(ui.NewLabel(text), false) +} + func (n *Node) NewLabel(text string) *Node { // make new node here -newNode := n.makeNode(text, 333, 334) + // n.Append(ui.NewLabel(text), false) + newNode := makeNode(n, text, 333, 334) newNode.Dump() + // panic("node.NewLabel()") n.Append(newNode) return newNode } +func (b *GuiBox) GetText(name string) string { + if (b.Window.EntryMap == nil) { + log.Println("gui.GetText() ERROR b.Box.Window.EntryMap == nil") + return "" + } + spew.Dump(b.Window.EntryMap) + if (b.Window.EntryMap[name] == nil) { + log.Println("gui.GetText() ERROR box.Window.EntryMap[", name, "] == nil ") + return "" + } + e := b.Window.EntryMap[name] + log.Println("gui.GetText() box.Window.EntryMap[", name, "] = ", e.UiEntry.Text()) + log.Println("gui.GetText() END") + return e.UiEntry.Text() +} + func (n *Node) SetText(value string) error { log.Println("gui.SetText() value =", value) if (n.uiText != nil) { @@ -30,20 +50,72 @@ func (n *Node) SetText(value string) error { n.uiButton.SetText(value) 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") + return nil } -func (n *Node) SetMargined(x bool) { - if (n.uiGroup != nil) { - n.uiGroup.SetMargined(x) - return +func SetText(box *GuiBox, name string, value string) error { + if (box == nil) { + return fmt.Errorf("gui.SetText() ERROR box == nil") + } + if (box.Window.EntryMap == nil) { + return fmt.Errorf("gui.SetText() ERROR b.Box.Window.EntryMap == nil") + } + spew.Dump(box.Window.EntryMap) + if (box.Window.EntryMap[name] == nil) { + return fmt.Errorf("gui.SetText() ERROR box.Window.EntryMap[" + name + "] == nil ") } - log.Println("Couldn't find something that has a Margin setting") + e := box.Window.EntryMap[name] + log.Println("gui.SetText() box.Window.EntryMap[", name, "] = ", e.UiEntry.Text()) + e.UiEntry.SetText(value) + log.Println("gui.SetText() box.Window.EntryMap[", name, "] = ", e.UiEntry.Text()) + log.Println("gui.SetText() END") + return nil +} + +// makeEntryBox(box, "hostname:", "blah.foo.org") { +func MakeEntryVbox(box *GuiBox, a string, startValue string, edit bool, action string) *GuiEntry { + // Start 'Nickname' vertical box + vboxN := ui.NewVerticalBox() + vboxN.SetPadded(true) + vboxN.Append(ui.NewLabel(a), false) + + e := defaultMakeEntry(startValue, edit, action) + + vboxN.Append(e.UiEntry, false) + box.UiBox.Append(vboxN, false) + // End 'Nickname' vertical box + + return e +} + +func MakeEntryHbox(box *GuiBox, a string, startValue string, edit bool, action string) *GuiEntry { + hboxN := ui.NewHorizontalBox() + hboxN.SetPadded(true) + hboxN.Append(ui.NewLabel(a), false) + + e := defaultMakeEntry(startValue, edit, action) + hboxN.Append(e.UiEntry, true) + + box.UiBox.Append(hboxN, true) + + return e +} + +func AddEntry(box *GuiBox, name string) *GuiEntry { + var ge *GuiEntry + ge = new(GuiEntry) + + ue := ui.NewEntry() + ue.SetReadOnly(false) + ue.OnChanged(func(*ui.Entry) { + log.Println("gui.AddEntry() OK. ue.Text() =", ue.Text()) + }) + box.UiBox.Append(ue, false) + + ge.UiEntry = ue + box.Window.EntryMap[name] = ge + + return ge } func defaultEntryChange(e *ui.Entry) { |
