package gui import "log" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" func ShowVM() { name := Data.CurrentVM log.Println("ShowVM() START Data.CurrentVM=", Data.CurrentVM) VMwin := ui.NewWindow("VM " + name, 500, 300, false) VMwin.OnClosing(func(*ui.Window) bool { return true }) ui.OnShouldQuit(func() bool { VMwin.Destroy() VMwin = nil return true }) VMtab := ui.NewTab() VMwin.SetChild(VMtab) VMwin.SetMargined(true) createVmBox(VMtab, buttonVmClick) // vmBox := createVmBox(buttonVmClick) // VMtab.Append(Data.CurrentVM, vmBox) // VMtab.SetMargined(0, true) VMwin.Show() } func AddVmConfigureTab(name string) { createVmBox(Data.cloudTab, buttonVmClick) // vmBox := createVmBox(Data.cloudTab, buttonVmClick) // Data.cloudTab.Append(name, vmBox) // Data.cloudTab.SetMargined(0, true) } func createVmBox(tab *ui.Tab, custom func(b *ButtonMap,s string)) { vbox := ui.NewVerticalBox() vbox.SetPadded(true) hboxAccount := ui.NewHorizontalBox() hboxAccount.SetPadded(true) vbox.Append(hboxAccount, false) // Start 'Provider' vertical box vboxC := ui.NewVerticalBox() vboxC.SetPadded(true) vboxC.Append(ui.NewLabel("Cloud Provider:"), false) cbox := ui.NewCombobox() cbox.Append("WIT") cbox.Append("Evocative") vboxC.Append(cbox, false) cbox.SetSelected(0) cbox.OnSelected(func(*ui.Combobox) { log.Println("OK. Selected Cloud Provider =", cbox.Selected()) }) hboxAccount.Append(vboxC, false) // End 'Cloud Provider' vertical box // Start 'Region' vertical box vboxR := ui.NewVerticalBox() vboxR.SetPadded(true) vboxR.Append(ui.NewLabel("Region:"), false) regbox := ui.NewCombobox() regbox.Append("Any") regbox.Append("SF") vboxR.Append(regbox, false) regbox.SetSelected(0) regbox.OnSelected(func(*ui.Combobox) { log.Println("OK. Selected something =", regbox.Selected()) }) hboxAccount.Append(vboxR, false) // End 'Region' vertical box // Start 'Nickname' vertical box vboxN := ui.NewVerticalBox() vboxN.SetPadded(true) vboxN.Append(ui.NewLabel("Account Nickname:"), false) entryNick := ui.NewEntry() entryNick.SetReadOnly(false) vboxN.Append(entryNick, false) entryNick.OnChanged(func(*ui.Entry) { log.Println("OK. nickname =", entryNick.Text()) Data.AccNick = entryNick.Text() }) hboxAccount.Append(vboxN, false) // End 'Nickname' vertical box // Start 'Username' vertical box vboxU := ui.NewVerticalBox() vboxU.SetPadded(true) vboxU.Append(ui.NewLabel("Account Username:"), false) entryUser := ui.NewEntry() entryUser.SetReadOnly(false) vboxU.Append(entryUser, false) entryUser.OnChanged(func(*ui.Entry) { log.Println("OK. username =", entryUser.Text()) Data.AccUser = entryUser.Text() }) hboxAccount.Append(vboxU, false) // End 'Username' vertical box // Start 'Password' vertical box vboxP := ui.NewVerticalBox() vboxP.SetPadded(true) vboxP.Append(ui.NewLabel("Account Password:"), false) entryPass := ui.NewEntry() entryPass.SetReadOnly(false) vboxP.Append(entryPass, false) entryPass.OnChanged(func(*ui.Entry) { log.Println("OK. password =", entryPass.Text()) Data.AccPass = entryPass.Text() }) hboxAccount.Append(vboxP, false) // End 'Password' vertical box vbox.Append(ui.NewHorizontalSeparator(), false) hboxButtons := ui.NewHorizontalBox() hboxButtons.SetPadded(true) vbox.Append(hboxButtons, false) okButton := CreateButton("Add Account", "ADD", custom) hboxButtons.Append(okButton, false) backButton := CreateButton("Back", "BACK", custom) hboxButtons.Append(backButton, false) hboxButtons.Append(CreateButton("Power On", "POWERON", custom), false) hboxButtons.Append(CreateButton("Power Off", "POWEROFF", custom), false) hboxButtons.Append(CreateButton("Destroy", "DESTROY", custom), false) tab.Append(Data.CurrentVM, vbox) tab.SetMargined(0, true) } func buttonVmClick(b *ButtonMap, s string) { log.Println("gui.buttonVmClick() START") if (Data.ButtonClick != nil) { log.Println("Data.ButtonClick() START") Data.ButtonClick(nil) } }