finally vm list working again
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
4163665b22
commit
8ad635c307
65
debug.go
65
debug.go
|
@ -3,7 +3,7 @@ package gui
|
||||||
import "log"
|
import "log"
|
||||||
import "time"
|
import "time"
|
||||||
import "fmt"
|
import "fmt"
|
||||||
import "reflect"
|
// import "reflect"
|
||||||
|
|
||||||
// import "github.com/andlabs/ui"
|
// import "github.com/andlabs/ui"
|
||||||
// import _ "github.com/andlabs/ui/winmanifest"
|
// import _ "github.com/andlabs/ui/winmanifest"
|
||||||
|
@ -32,13 +32,27 @@ func WatchGUI() {
|
||||||
|
|
||||||
func DumpBoxes() {
|
func DumpBoxes() {
|
||||||
for name, window := range Data.WindowMap {
|
for name, window := range Data.WindowMap {
|
||||||
log.Println("gui.DumpBoxes()", name)
|
log.Println("gui.DumpBoxes() MAP: ", name)
|
||||||
log.Println("gui.DumpBoxes()\tWindow.name =", window.Name)
|
log.Println("gui.DumpBoxes()\tWindow.name =", window.Name)
|
||||||
log.Println("gui.DumpBoxes()\tWindow.UiWindow type =", reflect.TypeOf(window.UiWindow))
|
// log.Println("gui.DumpBoxes()\tWindow.UiWindow type =", reflect.TypeOf(window.UiWindow))
|
||||||
log.Println("gui.DumpBoxes()\tWindow.UiWindow =", window.UiWindow)
|
// log.Println("gui.DumpBoxes()\tWindow.UiWindow =", window.UiWindow)
|
||||||
|
if (window.TabNumber == nil) {
|
||||||
|
log.Println("gui.DumpBoxes() \tWindows.TabNumber = nil")
|
||||||
|
} else {
|
||||||
|
log.Println("gui.DumpBoxes() \tWindows.TabNumber =", *window.TabNumber)
|
||||||
|
}
|
||||||
|
for name, abox := range window.BoxMap {
|
||||||
|
log.Printf("gui.DumpBoxes() \tBOX mapname=%-12s abox.Name=%-12s", name, abox.Name)
|
||||||
|
if (name == "MAINBOX") {
|
||||||
|
if (Config.Debug) {
|
||||||
|
scs := spew.ConfigState{MaxDepth: 1}
|
||||||
|
scs.Dump(abox.UiBox)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
if (window.UiTab != nil) {
|
if (window.UiTab != nil) {
|
||||||
log.Println("gui.DumpBoxes()\tWindow.UiTab type =", reflect.TypeOf(window.UiTab))
|
// log.Println("gui.DumpBoxes()\tWindow.UiTab type =", reflect.TypeOf(window.UiTab))
|
||||||
log.Println("gui.DumpBoxes()\tWindow.UiTab =", window.UiTab)
|
// log.Println("gui.DumpBoxes()\tWindow.UiTab =", window.UiTab)
|
||||||
pages := window.UiTab.NumPages()
|
pages := window.UiTab.NumPages()
|
||||||
log.Println("gui.DumpBoxes()\tWindow.UiTab.NumPages() =", pages)
|
log.Println("gui.DumpBoxes()\tWindow.UiTab.NumPages() =", pages)
|
||||||
// for i := 0; i < pages; i++ {
|
// for i := 0; i < pages; i++ {
|
||||||
|
@ -54,29 +68,10 @@ func DumpBoxes() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for i, window := range Data.Windows {
|
for i, window := range Data.Windows {
|
||||||
log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber =", window.TabNumber)
|
if (window.TabNumber == nil) {
|
||||||
for name, abox := range window.BoxMap {
|
log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber = nil")
|
||||||
log.Printf("gui.DumpBoxes() \tBOX mapname=%-12s abox.Name=%-12s", name, abox.Name)
|
} else {
|
||||||
if (name == "MAINBOX") {
|
log.Println("gui.DumpBoxes() Data.Windows", i, "Name =", window.Name, "TabNumber =", *window.TabNumber)
|
||||||
if (Config.Debug) {
|
|
||||||
scs := spew.ConfigState{MaxDepth: 1}
|
|
||||||
scs.Dump(abox.UiBox)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
if (name == "DEBUG") {
|
|
||||||
log.Println("\t\twatchGUI() BOX abox =", reflect.TypeOf(abox))
|
|
||||||
win := abox.Window
|
|
||||||
log.Println("\t\twatchGUI() BOX win =", reflect.TypeOf(win))
|
|
||||||
area := win.Area
|
|
||||||
log.Println("\t\twatchGUI() BOX area =", reflect.TypeOf(area), area.UiArea)
|
|
||||||
// spew.Dump(area.UiArea)
|
|
||||||
// area.UiArea.Show()
|
|
||||||
// time.Sleep(2000 * time.Millisecond)
|
|
||||||
// os.Exit(0)
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,16 +90,4 @@ func addTableTab() {
|
||||||
|
|
||||||
log.Println("Sleep for 2 seconds, then try to add new tabs")
|
log.Println("Sleep for 2 seconds, then try to add new tabs")
|
||||||
time.Sleep(1 * 1000 * 1000 * 1000)
|
time.Sleep(1 * 1000 * 1000 * 1000)
|
||||||
// AddTableTab(Data.Window1.T, 1, "test seven", 7, parts, nil)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
func runTestHide(b *GuiButton) {
|
|
||||||
log.Println("runTestHide START")
|
|
||||||
Data.Window1.Box1.Hide()
|
|
||||||
Data.Window1.Box2.Hide()
|
|
||||||
// time.Sleep(2000 * time.Millisecond)
|
|
||||||
Data.State = "HIDE"
|
|
||||||
log.Println("runTestHide END")
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
6
gui.go
6
gui.go
|
@ -12,12 +12,12 @@ const Yaxis = 1 // box that is vertical
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
log.Println("gui.init() has been run")
|
log.Println("gui.init() has been run")
|
||||||
|
|
||||||
|
Data.buttonMap = make(map[*ui.Button]*GuiButton)
|
||||||
|
Data.WindowMap = make(map[string]*GuiWindow)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GuiInit() {
|
func GuiInit() {
|
||||||
Data.buttonMap = make(map[*ui.Button]*GuiButton)
|
|
||||||
Data.WindowMap = make(map[string]*GuiWindow)
|
|
||||||
|
|
||||||
ui.OnShouldQuit(func() bool {
|
ui.OnShouldQuit(func() bool {
|
||||||
ui.Quit()
|
ui.Quit()
|
||||||
return true
|
return true
|
||||||
|
|
|
@ -64,7 +64,7 @@ type GuiWindow struct {
|
||||||
Width int
|
Width int
|
||||||
Height int
|
Height int
|
||||||
Axis int // does it add items to the X or Y axis
|
Axis int // does it add items to the X or Y axis
|
||||||
TabNumber int // the andlabs/ui tab index
|
TabNumber *int // the andlabs/ui tab index
|
||||||
|
|
||||||
// the callback function to make the window contents
|
// the callback function to make the window contents
|
||||||
MakeWindow func(*GuiWindow) *GuiBox
|
MakeWindow func(*GuiWindow) *GuiBox
|
||||||
|
|
32
table.go
32
table.go
|
@ -98,6 +98,10 @@ func InitColumns(mh *TableData, parts []TableColumnData) {
|
||||||
}
|
}
|
||||||
|
|
||||||
func AddTableTab(gw *GuiWindow, name string, rowcount int, parts []TableColumnData) *TableData {
|
func AddTableTab(gw *GuiWindow, name string, rowcount int, parts []TableColumnData) *TableData {
|
||||||
|
// gw.Name = name
|
||||||
|
// gw = InitGuiWindow(gw)
|
||||||
|
box := InitWindow(gw, name, Yaxis)
|
||||||
|
|
||||||
mh := new(TableData)
|
mh := new(TableData)
|
||||||
|
|
||||||
mh.RowCount = rowcount
|
mh.RowCount = rowcount
|
||||||
|
@ -134,25 +138,25 @@ func AddTableTab(gw *GuiWindow, name string, rowcount int, parts []TableColumnDa
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var gb *GuiBox
|
// var gb *GuiBox
|
||||||
gb = new(GuiBox)
|
// gb = new(GuiBox)
|
||||||
|
|
||||||
vbox := ui.NewVerticalBox()
|
// vbox := ui.NewVerticalBox()
|
||||||
vbox.SetPadded(true)
|
// vbox.SetPadded(true)
|
||||||
gb.UiBox = vbox
|
// gb.UiBox = vbox
|
||||||
gb.Window = gw
|
// gb.Window = gw
|
||||||
gw.BoxMap[name] = gb
|
gw.BoxMap[name] = box
|
||||||
mh.Box = gb
|
mh.Box = box
|
||||||
|
|
||||||
vbox.Append(table, true)
|
box.UiBox.Append(table, true)
|
||||||
gw.UiTab.Append(name, vbox)
|
// gw.UiTab.Append(name, vbox)
|
||||||
|
|
||||||
vbox.Append(ui.NewVerticalSeparator(), false)
|
// vbox.Append(ui.NewVerticalSeparator(), false)
|
||||||
|
|
||||||
hbox := ui.NewHorizontalBox()
|
// hbox := ui.NewHorizontalBox()
|
||||||
hbox.SetPadded(true)
|
// hbox.SetPadded(true)
|
||||||
|
|
||||||
vbox.Append(hbox, false)
|
// vbox.Append(hbox, false)
|
||||||
|
|
||||||
return mh
|
return mh
|
||||||
}
|
}
|
||||||
|
|
73
window.go
73
window.go
|
@ -24,10 +24,14 @@ func InitGuiWindow(gw *GuiWindow) *GuiWindow {
|
||||||
newGuiWindow.EntryMap["test"] = nil
|
newGuiWindow.EntryMap["test"] = nil
|
||||||
Data.Windows = append(Data.Windows, &newGuiWindow)
|
Data.Windows = append(Data.Windows, &newGuiWindow)
|
||||||
|
|
||||||
if (Data.WindowMap == nil) {
|
if (gw.UiTab == nil) {
|
||||||
log.Println("gui.InitGuiWindow() making the Data.WindowMap here")
|
tabnum := 0
|
||||||
Data.WindowMap = make(map[string]*GuiWindow)
|
newGuiWindow.TabNumber = &tabnum
|
||||||
|
} else {
|
||||||
|
tabnum := gw.UiTab.NumPages()
|
||||||
|
newGuiWindow.TabNumber = &tabnum
|
||||||
}
|
}
|
||||||
|
|
||||||
Data.WindowMap[newGuiWindow.Name] = &newGuiWindow
|
Data.WindowMap[newGuiWindow.Name] = &newGuiWindow
|
||||||
|
|
||||||
if (Data.buttonMap == nil) {
|
if (Data.buttonMap == nil) {
|
||||||
|
@ -49,26 +53,28 @@ func StartNewWindow(bg bool, name string, axis int, callback func(*GuiWindow) *G
|
||||||
log.Println("StartNewWindow() START NEW GOROUTINE for ui.Main()")
|
log.Println("StartNewWindow() START NEW GOROUTINE for ui.Main()")
|
||||||
go ui.Main(func() {
|
go ui.Main(func() {
|
||||||
log.Println("gui.StartNewWindow() inside ui.Main()")
|
log.Println("gui.StartNewWindow() inside ui.Main()")
|
||||||
go InitTabWindow(window)
|
go initTabWindow(window)
|
||||||
})
|
})
|
||||||
time.Sleep(2000 * time.Millisecond) // this might make it more stable on windows?
|
time.Sleep(2000 * time.Millisecond) // this might make it more stable on windows?
|
||||||
} else {
|
} else {
|
||||||
log.Println("StartNewWindow() WAITING for ui.Main()")
|
log.Println("StartNewWindow() WAITING for ui.Main()")
|
||||||
ui.Main(func() {
|
ui.Main(func() {
|
||||||
log.Println("gui.StartNewWindow() inside ui.Main()")
|
log.Println("gui.StartNewWindow() inside ui.Main()")
|
||||||
InitTabWindow(window)
|
initTabWindow(window)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func InitTabWindow(gw *GuiWindow) {
|
// This creates the raw andlabs/ui Window
|
||||||
log.Println("InitTabWindow() START. THIS WINDOW IS NOT YET SHOWN")
|
func initTabWindow(gw *GuiWindow) {
|
||||||
|
log.Println("initTabWindow() START. THIS WINDOW IS NOT YET SHOWN")
|
||||||
|
log.Println("initTabWindow() START. name =", gw.Name)
|
||||||
|
|
||||||
gw.UiWindow = ui.NewWindow(gw.Name, int(gw.Width), int(gw.Height), true)
|
gw.UiWindow = ui.NewWindow(gw.Name, int(gw.Width), int(gw.Height), true)
|
||||||
gw.UiWindow.SetBorderless(false)
|
gw.UiWindow.SetBorderless(false)
|
||||||
|
|
||||||
gw.UiWindow.OnClosing(func(*ui.Window) bool {
|
gw.UiWindow.OnClosing(func(*ui.Window) bool {
|
||||||
log.Println("InitTabWindow() OnClosing() THIS WINDOW IS CLOSING gw=", gw)
|
log.Println("initTabWindow() OnClosing() THIS WINDOW IS CLOSING gw=", gw)
|
||||||
ui.Quit()
|
ui.Quit()
|
||||||
return true
|
return true
|
||||||
})
|
})
|
||||||
|
@ -76,10 +82,15 @@ func InitTabWindow(gw *GuiWindow) {
|
||||||
gw.UiTab = ui.NewTab()
|
gw.UiTab = ui.NewTab()
|
||||||
gw.UiWindow.SetChild(gw.UiTab)
|
gw.UiWindow.SetChild(gw.UiTab)
|
||||||
gw.UiWindow.SetMargined(true)
|
gw.UiWindow.SetMargined(true)
|
||||||
|
tmp := 0
|
||||||
|
gw.TabNumber = &tmp
|
||||||
|
|
||||||
|
DumpBoxes()
|
||||||
|
// for {}
|
||||||
|
|
||||||
box := gw.MakeWindow(gw)
|
box := gw.MakeWindow(gw)
|
||||||
log.Println("InitTabWindow() END box =", box)
|
log.Println("initTabWindow() END box =", box)
|
||||||
log.Println("InitTabWindow() END gw =", gw)
|
log.Println("initTabWindow() END gw =", gw)
|
||||||
gw.UiWindow.Show()
|
gw.UiWindow.Show()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -90,3 +101,45 @@ func MessageWindow(gw *GuiWindow, msg1 string, msg2 string) {
|
||||||
func ErrorWindow(gw *GuiWindow, msg1 string, msg2 string) {
|
func ErrorWindow(gw *GuiWindow, msg1 string, msg2 string) {
|
||||||
ui.MsgBoxError(gw.UiWindow, msg1, msg2)
|
ui.MsgBoxError(gw.UiWindow, msg1, msg2)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// This creates a new 'window' (which is just a tab in the window)
|
||||||
|
// This is this way because on Linux you can have more than one
|
||||||
|
// actual window but that does not appear to work on the MacOS or Windows
|
||||||
|
//
|
||||||
|
func InitWindow(gw *GuiWindow, name string, axis int) *GuiBox {
|
||||||
|
window := Data.WindowMap[name]
|
||||||
|
if (window != nil) {
|
||||||
|
box := window.BoxMap["MAINBOX"]
|
||||||
|
log.Println("gui.InitWindow() tab already exists name =", name)
|
||||||
|
ErrorWindow(box.Window, "Create Window Error", "Window " + name + " already exists")
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
// if there is not an account, then go to 'make account'
|
||||||
|
gw.Name = name
|
||||||
|
var junk GuiWindow
|
||||||
|
// junk.MakeWindow = callback
|
||||||
|
junk.Name = name
|
||||||
|
junk.Axis = axis
|
||||||
|
junk.UiWindow = gw.UiWindow
|
||||||
|
junk.UiTab = gw.UiTab
|
||||||
|
newWindow := InitGuiWindow(gw)
|
||||||
|
|
||||||
|
var box *GuiBox
|
||||||
|
if (axis == Xaxis) {
|
||||||
|
box = HardBox(newWindow, Xaxis, name)
|
||||||
|
} else {
|
||||||
|
box = HardBox(newWindow, Yaxis, name)
|
||||||
|
}
|
||||||
|
return box
|
||||||
|
}
|
||||||
|
|
||||||
|
func DeleteWindow(name string) {
|
||||||
|
log.Println("gui.DeleteWindow() START name =", name)
|
||||||
|
window := Data.WindowMap[name]
|
||||||
|
if (window == nil) {
|
||||||
|
log.Println("gui.DeleteWindow() NO WINDOW WITH name =", name)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue