176 lines
4.5 KiB
Go
176 lines
4.5 KiB
Go
package gui
|
|
|
|
import "log"
|
|
|
|
import "github.com/andlabs/ui"
|
|
import _ "github.com/andlabs/ui/winmanifest"
|
|
|
|
// import pb "git.wit.com/wit/witProtobuf"
|
|
// import "github.com/davecgh/go-spew/spew"
|
|
|
|
// THIS IS CLEAN
|
|
|
|
// 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)
|
|
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")
|
|
newbox.Window.UiTab.InsertAt(newbox.Name, 0, 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
|
|
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 InitGuiBox(gw *GuiWindow, box *GuiBox, uiBox *ui.Box, name string) *GuiBox {
|
|
log.Println("InitGuiBox() START")
|
|
var newGuiBox GuiBox
|
|
newGuiBox.UiBox = uiBox
|
|
newGuiBox.Window = gw
|
|
uiBox.SetPadded(true)
|
|
|
|
if (box != nil) {
|
|
log.Println("InitGuiBox() APPEND NEW BOX TO OLD BOX")
|
|
box.UiBox.Append(uiBox, false)
|
|
} else {
|
|
log.Println("InitGuiBox() APPEND NEW BOX TO TAB")
|
|
gw.UiTab.Append(name, uiBox)
|
|
}
|
|
gw.BoxMap[name] = &newGuiBox
|
|
log.Println("InitGuiBox() END")
|
|
return &newGuiBox
|
|
}
|
|
|
|
func HardHorizontalBox(gw *GuiWindow) *GuiBox {
|
|
log.Println("HardHorizontalBreak START")
|
|
var newbox *GuiBox
|
|
newbox = new(GuiBox)
|
|
newbox.Window = gw
|
|
|
|
box := gw.BoxMap["MAINBOX"]
|
|
if (box != nil) {
|
|
// There is already a box. Add a Seperator
|
|
tmp := ui.NewHorizontalSeparator()
|
|
box.UiBox.Append(tmp, true)
|
|
add(gw.BoxMap["MAINBOX"], newbox)
|
|
}
|
|
|
|
hbox := ui.NewVerticalBox()
|
|
hbox.SetPadded(true)
|
|
newbox.UiBox = hbox
|
|
newbox.Name = "Hbox1"
|
|
add(gw.BoxMap["MAINBOX"], newbox)
|
|
log.Println("HardHorizontalBreak END")
|
|
return newbox
|
|
}
|
|
|
|
func HardVerticalBreak(box *GuiBox) {
|
|
log.Println("HardVerticalBreak START")
|
|
gw := box.Window
|
|
mainbox := gw.BoxMap["MAIN"]
|
|
if (mainbox == nil) {
|
|
log.Println("HardHorizontalBreak ERROR MAIN box == nil")
|
|
return
|
|
}
|
|
|
|
tmp := ui.NewVerticalSeparator()
|
|
mainbox.UiBox.Append(tmp, false)
|
|
|
|
hbox := ui.NewVerticalBox()
|
|
hbox.SetPadded(true)
|
|
box.UiBox = hbox
|
|
mainbox.UiBox.Append(hbox, false)
|
|
log.Println("HardVerticalBreak END")
|
|
}
|
|
|
|
func HorizontalBreak(box *GuiBox) {
|
|
tmp := ui.NewHorizontalSeparator()
|
|
box.UiBox.Append(tmp, false)
|
|
}
|
|
|
|
func VerticalBreak(box *GuiBox) {
|
|
tmp := ui.NewVerticalSeparator()
|
|
box.UiBox.Append(tmp, false)
|
|
}
|
|
|
|
func AddGenericBox(gw *GuiWindow, name string) *GuiBox {
|
|
log.Println("AddGenericBox() START name =", name)
|
|
// create a new vertical box off of the mainbox
|
|
vbox := ui.NewVerticalBox()
|
|
vbox.SetPadded(true)
|
|
|
|
var newbox *GuiBox
|
|
newbox = new(GuiBox)
|
|
newbox.UiBox = vbox
|
|
newbox.Window = gw
|
|
newbox.Name = name
|
|
add(gw.BoxMap["MAINBOX"], newbox)
|
|
|
|
// create a new horizonal box off of the vertical box
|
|
hbox := ui.NewHorizontalBox()
|
|
hbox.SetPadded(true)
|
|
|
|
var newhbox *GuiBox
|
|
newhbox = new(GuiBox)
|
|
newhbox.UiBox = hbox
|
|
newhbox.Window = gw
|
|
newhbox.Name = "Hbox1"
|
|
add(newbox, newhbox)
|
|
|
|
return newbox
|
|
}
|
|
|
|
/*
|
|
func CreateGenericBox(gw *GuiWindow, name string) *GuiBox {
|
|
log.Println("CreateAddVmBox() START name =", name)
|
|
|
|
var box *GuiBox
|
|
box = new(GuiBox)
|
|
|
|
vbox := ui.NewVerticalBox()
|
|
vbox.SetPadded(true)
|
|
box.UiBox = vbox
|
|
box.Window = gw
|
|
gw.BoxMap["ADD VM" + name] = box
|
|
|
|
hbox := ui.NewHorizontalBox()
|
|
hbox.SetPadded(true)
|
|
vbox.Append(hbox, false)
|
|
|
|
gw.UiTab.Append(name, vbox)
|
|
gw.UiTab.SetMargined(0, true)
|
|
return box
|
|
}
|
|
*/
|