diff options
Diffstat (limited to 'box.go')
| -rw-r--r-- | box.go | 139 |
1 files changed, 31 insertions, 108 deletions
@@ -1,6 +1,7 @@ package gui import "log" +// import "os" // import "reflect" import "github.com/andlabs/ui" @@ -8,123 +9,45 @@ import _ "github.com/andlabs/ui/winmanifest" // import "github.com/davecgh/go-spew/spew" -// add(nil, newbox, "") // use this when the Window is created. Always called 'MAINBOX' -// add(gw.BoxMap["MAINBOX"], newbox, name) // use this to add a box off the main box -// add(gw.BoxMap["BUTTONBOX"], newbox, name) // use this to add something to the box called 'BUTTONBOX' -// add(box, newbox, name) // add 'newbox' to 'box' and call it 'name' -func add(box *GuiBox, newbox *GuiBox) { - log.Println("gui.add() START box =", box) - log.Println("gui.add() START newbox =", newbox) +func (n *Node) AddComboBox(title string, s ...string) *Node { + newNode := n.AddNode(title) + box := n.uiBox if (box == nil) { - log.Println("\tgui.add() add to Window as MAINBOX") - if (newbox.Window.UiTab != nil) { - // create a new tab here - // add the box to it as MAINBOX - log.Println("\tgui.add() add to Window as a UiTab") - // TODO: allow passing where to append - // newbox.Window.UiTab.InsertAt(newbox.Name, 0, newbox.UiBox) - newbox.Window.UiTab.Append(newbox.Name, newbox.UiBox) - newbox.Window.UiTab.SetMargined(0, true) - - // TODO: figure out how to make a new Tab/Window/Box here - // window := InitGuiWindow(Data.Config, newbox.Name, gw.MakeWindow, gw.UiWindow, gw.UiTab) - // window.UiTab.Delete(0) - // window.MakeWindow(window) - // newbox.Window = window - - newbox.Window.BoxMap["MAINBOX"] = newbox - log.Println("gui.add() END") - return - } else { - log.Println("\tgui.add() ERROR DONT KNOW HOW TO ADD TO A RAW WINDOW YET") - // add this to the window - } - log.Println("\tgui.add() ERROR DON'T KNOW HOW TO add to Window as MAINBOX DONE") - log.Println("gui.add() END") - return - } - log.Println("\tgui.add() adding", newbox.Name, "to", box.Name) - // copy the box settings over - newbox.Window = box.Window - if (box.UiBox == nil) { - log.Println("\tgui.add() ERROR box.UiBox == nil") - panic("crap") + return n } - if (newbox.UiBox == nil) { - log.Println("\tgui.add() ERROR newbox.UiBox == nil") - panic("crap") - } - // log.Println("\tgui.add() newbox.UiBox == ", newbox.UiBox.GetParent()) - // spew.Dump(newbox.UiBox) - box.UiBox.Append(newbox.UiBox, false) - - // add the newbox to the Window.BoxMap[] - box.Window.BoxMap[newbox.Name] = newbox - log.Println("gui.add() END") -} -func NewBox(box *GuiBox, axis int, name string) *GuiBox { - log.Println("VerticalBox START") - var newbox *GuiBox - newbox = new(GuiBox) - newbox.Window = box.Window - newbox.Name = name + ecbox := ui.NewEditableCombobox() + newNode.uiText = ecbox + // newNode.Dump() + // log.Println("ecbox", ecbox) - var uiBox *ui.Box - if (axis == Xaxis) { - uiBox = ui.NewHorizontalBox() - } else { - uiBox = ui.NewVerticalBox() + for id, name := range s { + log.Println("Adding Combobox Entry:", id, name) + ecbox.Append(name) } - uiBox.SetPadded(true) - newbox.UiBox = uiBox - add(box, newbox) - return newbox -} - -func HardBox(gw *GuiWindow, axis int, name string) *GuiBox { - log.Println("HardBox() START axis =", axis) - // add a Vertical Seperator if there is already a box - // Is this right? - box := gw.BoxMap["MAINBOX"] - if (box != nil) { - if (axis == Xaxis) { - VerticalBreak(box) + ecbox.OnChanged(func(*ui.EditableCombobox) { + test := ecbox.Text() + log.Println("node.Name = '" + newNode.Name + "' text for '" + title + "' is now: '" + test + "'") + if (newNode.OnChanged == nil) { + log.Println("Not doing custom OnChanged since OnChanged == nil") + newNode.Dump() } else { - HorizontalBreak(box) + newNode.OnChanged() } - } - - // make the new vbox - var uiBox *ui.Box - if (axis == Xaxis) { - uiBox = ui.NewHorizontalBox() - } else { - uiBox = ui.NewVerticalBox() - } - uiBox.SetPadded(true) - - // Init a new GuiBox - newbox := new(GuiBox) - newbox.Window = gw - newbox.UiBox = uiBox - newbox.Name = name - - add(gw.BoxMap["MAINBOX"], newbox) + }) - log.Println("HardBoxk END") - return newbox + box.Append(ecbox, Config.Stretchy) + return newNode } -func HorizontalBreak(box *GuiBox) { - log.Println("VerticalSeparator added to box =", box.Name) - tmp := ui.NewHorizontalSeparator() - box.UiBox.Append(tmp, false) -} - -func VerticalBreak(box *GuiBox) { - log.Println("VerticalSeparator added to box =", box.Name) - tmp := ui.NewVerticalSeparator() - box.UiBox.Append(tmp, false) +func (n *Node) GetText() string { + if (n.uiMultilineEntry != nil) { + return n.uiMultilineEntry.Text() + } + if (n.uiText == nil) { + return "" + } + ecbox := n.uiText + return ecbox.Text() } |
