clean more of the button handling

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2019-05-24 12:51:04 -07:00
parent 1756f961e4
commit 238c39de36
4 changed files with 82 additions and 12 deletions

18
gui.go
View File

@ -114,6 +114,18 @@ func mouseClick(b *ButtonMap, s string) {
}
}
// This is one of the routines that is called from the
// defaultButtonClick() below when the button is found
// in the AllButtons %map
func buttonMapClick(b *ButtonMap, s string) {
log.Println("gui.buttonVmClick() START")
if (Data.MouseClick != nil) {
log.Println("Data.ButtonClick() START")
Data.MouseClick(nil)
}
}
// This is the raw routine passed to every button in andlabs libui / ui
func defaultButtonClick(button *ui.Button) {
log.Println("defaultButtonClick() button =", button)
for key, foo := range Data.AllButtons {
@ -140,6 +152,9 @@ func defaultButtonClick(button *ui.Button) {
}
}
// This is the raw routine passed to every button in andlabs libui / ui
// (this has to be different for FontButtons)
// TODO; merge the logic with the function above
func defaultFontButtonClick(button *ui.FontButton) {
log.Println("defaultButtonClick() button =", button)
for key, foo := range Data.AllButtons {
@ -224,8 +239,11 @@ func closeButton(name string, mytab *ui.Tab) ui.Control {
func addVmButtonClick(button *ui.Button) {
log.Println("addVMButtonClick()")
if (Data.Debug) {
spew.Dump(button)
}
createAddVmBox(Data.cloudTab, "Create New Virtual Machine", buttonMapClick)
}
func addVmButton(name string) ui.Control {
tmpButton := ui.NewButton(name)

View File

@ -176,6 +176,7 @@ type TableData struct {
lastRow int
lastColumn int
parentTab *ui.Tab
}
//

View File

@ -106,7 +106,9 @@ func defaultSetCellValue(mh *TableData, row int, column int) {
if (Data.Debug) {
go ui.Main(ShowVM)
} else {
AddVmConfigureTab(vmname, mh.Rows[row].PbVM)
// AddVmConfigureTab(vmname, mh.Rows[row].PbVM)
// createVmBox(Data.cloudTab, buttonVmClick, mh.Rows[row].PbVM)
createVmBox(Data.cloudTab, buttonMapClick, mh.Rows[row].PbVM)
}
}
}

View File

@ -27,7 +27,7 @@ func ShowVM() {
VMwin.SetChild(VMtab)
VMwin.SetMargined(true)
createVmBox(VMtab, buttonVmClick, Data.CurrentPbVM)
createVmBox(VMtab, buttonMapClick, Data.CurrentPbVM)
// vmBox := createVmBox(buttonVmClick)
// VMtab.Append(Data.CurrentVM, vmBox)
// VMtab.SetMargined(0, true)
@ -36,14 +36,14 @@ func ShowVM() {
}
func AddVmConfigureTab(name string, pbVM *pb.Event_VM) {
createVmBox(Data.cloudTab, buttonVmClick, Data.CurrentPbVM)
createVmBox(Data.cloudTab, buttonMapClick, Data.CurrentPbVM)
// vmBox := createVmBox(Data.cloudTab, buttonVmClick)
// Data.cloudTab.Append(name, vmBox)
// Data.cloudTab.SetMargined(0, true)
}
// makeEntryBox(box, "hostname:", "blah.foo.org") {
func makeEntryBox(hbox *ui.Box, a string, b string, edit bool) {
func makeEntryVbox(hbox *ui.Box, a string, b string, edit bool) {
// Start 'Nickname' vertical box
vboxN := ui.NewVerticalBox()
vboxN.SetPadded(true)
@ -65,6 +65,28 @@ func makeEntryBox(hbox *ui.Box, a string, b string, edit bool) {
// End 'Nickname' vertical box
}
func makeEntryHbox(hbox *ui.Box, a string, b string, edit bool) {
// Start 'Nickname' vertical box
hboxN := ui.NewHorizontalBox()
hboxN.SetPadded(true)
hboxN.Append(ui.NewLabel(a), false)
entryNick := ui.NewEntry()
entryNick.SetText(b)
if (edit == false) {
entryNick.SetReadOnly(true)
}
hboxN.Append(entryNick, false)
entryNick.OnChanged(func(*ui.Entry) {
log.Println("OK. TEXT WAS CHANGED TO =", entryNick.Text())
// Data.AccNick = entryNick.Text()
})
hbox.Append(hboxN, false)
// End 'Nickname' vertical box
}
func createVmBox(tab *ui.Tab, custom func(b *ButtonMap,s string), pbVM *pb.Event_VM) {
log.Println("createVmBox() START")
log.Println("createVmBox() pbVM.Name", pbVM.Name)
@ -80,12 +102,12 @@ func createVmBox(tab *ui.Tab, custom func(b *ButtonMap,s string), pbVM *pb.Event
vbox.Append(hboxAccount, false)
// Add hostname entry box
makeEntryBox(hboxAccount, "hostname:", pbVM.Hostname, true)
makeEntryBox(hboxAccount, "IPv6:", pbVM.IPv6, true)
makeEntryBox(hboxAccount, "RAM:", fmt.Sprintf("%d",pbVM.Memory), true)
makeEntryBox(hboxAccount, "CPU:", fmt.Sprintf("%d",pbVM.Cpus), true)
makeEntryBox(hboxAccount, "Disk (GB):", fmt.Sprintf("%d",pbVM.Disk), true)
makeEntryBox(hboxAccount, "OS Image:", pbVM.BaseImage, true)
makeEntryVbox(hboxAccount, "hostname:", pbVM.Hostname, true)
makeEntryVbox(hboxAccount, "IPv6:", pbVM.IPv6, true)
makeEntryVbox(hboxAccount, "RAM:", fmt.Sprintf("%d",pbVM.Memory), true)
makeEntryVbox(hboxAccount, "CPU:", fmt.Sprintf("%d",pbVM.Cpus), true)
makeEntryVbox(hboxAccount, "Disk (GB):", fmt.Sprintf("%d",pbVM.Disk), true)
makeEntryVbox(hboxAccount, "OS Image:", pbVM.BaseImage, true)
vbox.Append(ui.NewHorizontalSeparator(), false)
@ -104,6 +126,32 @@ func createVmBox(tab *ui.Tab, custom func(b *ButtonMap,s string), pbVM *pb.Event
tab.SetMargined(0, true)
}
func createAddVmBox(tab *ui.Tab, name string, custom func(b *ButtonMap,s string)) {
log.Println("createAddVmBox() START")
vbox := ui.NewVerticalBox()
vbox.SetPadded(true)
hboxAccount := ui.NewHorizontalBox()
hboxAccount.SetPadded(true)
vbox.Append(hboxAccount, false)
// Add hostname entry box
makeEntryHbox(hboxAccount, "hostname:", "", true)
vbox.Append(ui.NewHorizontalSeparator(), false)
hboxButtons := ui.NewHorizontalBox()
hboxButtons.SetPadded(true)
vbox.Append(hboxButtons, false)
hboxButtons.Append(CreateButton("Add Virtual Machine", "CREATE", custom), false)
hboxButtons.Append(CreateButton("Cancel", "DONE", custom), false)
tab.Append(name, vbox)
tab.SetMargined(0, true)
}
/*
func buttonVmClick(b *ButtonMap, s string) {
log.Println("gui.buttonVmClick() START")
if (Data.MouseClick != nil) {
@ -111,3 +159,4 @@ func buttonVmClick(b *ButtonMap, s string) {
Data.MouseClick(nil)
}
}
*/