From 0af6ad0f3325254191c61fdcda0ef2178130fb2f Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Mon, 3 Jun 2019 18:53:14 -0700 Subject: [PATCH] not sure what happened Signed-off-by: Jeff Carr --- gui.go | 6 ++++ window.go | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 window.go diff --git a/gui.go b/gui.go index ef1ff49..5a09f6b 100644 --- a/gui.go +++ b/gui.go @@ -20,6 +20,7 @@ func GuiInit() { }) } +<<<<<<< Updated upstream func InitGuiWindow(name string, gw *GuiWindow) *GuiWindow { log.Println("InitGuiWindow() START") var newGuiWindow GuiWindow @@ -94,6 +95,8 @@ func InitTabWindow(gw *GuiWindow) { gw.UiWindow.Show() } +======= +>>>>>>> Stashed changes /* // string handling examples that might be helpful for normalizeInt() isAlpha := regexp.MustCompile(`^[A-Za-z]+$`).MatchString @@ -127,6 +130,7 @@ func normalizeInt(s string) string { log.Println("normalizeInt() s =", clean) return clean } +<<<<<<< Updated upstream func MessageWindow(gw *GuiWindow, msg1 string, msg2 string) { log.Println("gui.MessageWindow() msg1 =", msg1) @@ -139,3 +143,5 @@ func ErrorWindow(gw *GuiWindow, msg1 string, msg2 string) { log.Println("gui.ErrorWindow() msg2 =", msg2) ui.MsgBoxError(gw.UiWindow, msg1, msg2) } +======= +>>>>>>> Stashed changes diff --git a/window.go b/window.go new file mode 100644 index 0000000..344db65 --- /dev/null +++ b/window.go @@ -0,0 +1,83 @@ +package gui + +import "log" +import "time" +import "regexp" + +import "github.com/andlabs/ui" +import _ "github.com/andlabs/ui/winmanifest" + +func InitGuiWindow(action string, gw *GuiWindow) *GuiWindow { + log.Println("InitGuiWindow() START") + var newGuiWindow GuiWindow + newGuiWindow.Width = Config.Width + newGuiWindow.Height = Config.Height +// newGuiWindow.Action = action + newGuiWindow.MakeWindow = gw.MakeWindow + newGuiWindow.UiWindow = gw.UiWindow + newGuiWindow.UiTab = gw.UiTab + newGuiWindow.BoxMap = make(map[string]*GuiBox) + newGuiWindow.EntryMap = make(map[string]*GuiEntry) + newGuiWindow.EntryMap["test"] = nil + Data.Windows = append(Data.Windows, &newGuiWindow) + + if (Data.buttonMap == nil) { + GuiInit() + } + log.Println("InitGuiWindow() END *GuiWindow =", &newGuiWindow) + return &newGuiWindow +} + + +func StartNewWindow(bg bool, action string, callback func(*GuiWindow) *GuiBox) { + log.Println("StartNewWindow() Create a new window") + var junk GuiWindow + junk.MakeWindow = callback +// junk.Action = action + window := InitGuiWindow(action, &junk) + if (bg) { + log.Println("StartNewWindow() START NEW GOROUTINE for ui.Main()") + go ui.Main(func() { + log.Println("gui.StartNewWindow() inside ui.Main()") + go InitTabWindow(window) + }) + time.Sleep(2000 * time.Millisecond) // this might make it more stable on windows? + } else { + log.Println("StartNewWindow() WAITING for ui.Main()") + ui.Main(func() { + log.Println("gui.StartNewWindow() inside ui.Main()") + InitTabWindow(window) + }) + } +} + +func InitTabWindow(gw *GuiWindow) { + log.Println("InitTabWindow() START. THIS WINDOW IS NOT YET SHOWN") + + gw.UiWindow = ui.NewWindow("InitTabWindow()", int(gw.Width), int(gw.Height), true) + gw.UiWindow.SetBorderless(false) + + gw.UiWindow.OnClosing(func(*ui.Window) bool { + log.Println("InitTabWindow() OnClosing() THIS WINDOW IS CLOSING gw=", gw) + ui.Quit() + return true + }) + + gw.UiTab = ui.NewTab() + gw.UiWindow.SetChild(gw.UiTab) + gw.UiWindow.SetMargined(true) + + + box := gw.MakeWindow(gw) + log.Println("InitTabWindow() END box =", box) + log.Println("InitTabWindow() END gw =", gw) + gw.UiWindow.Show() +} + +func MessageWindow(gw *GuiWindow, msg1 string, msg2 string) { + ui.MsgBox(gw.UiWindow, msg1, msg2) +} + +func ErrorWindow(gw *GuiWindow, msg1 string, msg2 string) { + ui.MsgBoxError(gw.UiWindow, msg1, msg2) +}