package main // import "os" import "log" import "fmt" import "time" import "github.com/davecgh/go-spew/spew" import "git.wit.com/wit/gui" import pb "git.wit.com/wit/witProtobuf" import "github.com/andlabs/ui" import _ "github.com/andlabs/ui/winmanifest" var first *gui.GuiWindow func main() { var c *pb.Config c = pb.MakeDefaultConfig() i := 1 c.Width = int32(400 + 50 * i) c.Hostname = fmt.Sprintf("splash %d", i) first = StartNewWindow(c, true, "SPLASH") i += 1 c.Width = int32(400 + 50 * i) c.Hostname = fmt.Sprintf("splash %d", i) StartNewWindow(c, true, "BLAH") i += 1 c.Width = int32(400 + 50 * i) c.Hostname = fmt.Sprintf("splash %d", i) StartNewWindow(c, false, "BLAH") for { i += 1 c.Width = int32(400 + 50 * i) c.Hostname = fmt.Sprintf("splash %d", i) StartNewWindow(c, false, "SPLASH") i += 1 c.Width = int32(400 + 50 * i) c.Hostname = fmt.Sprintf("splash %d", i) StartNewWindow(c, false, "BLAH") } } func StartNewWindow(c *pb.Config, bg bool, action string) *gui.GuiWindow { log.Println("InitNewWindow() Create a new window") var newGuiWindow *gui.GuiWindow newGuiWindow = new(gui.GuiWindow) newGuiWindow.C = c /* ui.OnShouldQuit(func() bool { // mouseClick(&newBM) ui.Quit() return true }) */ time.Sleep(1000 * time.Millisecond) if (bg) { log.Println("ShowWindow() IN NEW GOROUTINE") go ui.Main(func() { InitWindow(newGuiWindow) }) time.Sleep(2000 * time.Millisecond) } else { log.Println("ShowWindow() WAITING for ui.Main()") ui.Main(func() { InitWindow(newGuiWindow) }) } return newGuiWindow } func InitWindow(wm *gui.GuiWindow) { log.Println("InitWindow() NEW WINDOW wm =", wm) c := wm.C wm.W = ui.NewWindow("", int(c.Width), int(c.Height), true) // wm.W.SetBorderless(false) blah := wm wm.W.OnClosing(func(*ui.Window) bool { log.Println("InitWindow() OnClosing() blah") log.Println("InitWindow() OnClosing() blah") log.Println("InitWindow() OnClosing() blah") log.Println("InitWindow() OnClosing() blah") spew.Dump(blah) spew.Dump(wm) wm.C = nil log.Println("InitWindow() OnClosing() THIS WINDOW IS CLOSING wm=", wm) spew.Dump(wm) spew.Dump(wm.W) // mouseClick(&newBM) if (wm.W != nil) { wm.W.Hide() } time.Sleep(1000 * time.Millisecond) spew.Dump(wm) // wm.W.Destroy() ui.Quit() time.Sleep(1000 * time.Millisecond) return true }) // wm.W.SetChild(wm.T) // wm.W.SetMargined(true) log.Println("InitWindow() Show() wm.Action =", wm.Action) wm.W.Show() }