From 46fe81665c20b71571023e2dd607832d725a085e Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Mon, 3 Jun 2019 19:07:39 -0700 Subject: [PATCH] fixed a commit --- Makefile | 1 + debug.go | 8 ++++- gui.go | 88 +------------------------------------------------------ window.go | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 91 insertions(+), 88 deletions(-) create mode 100644 window.go diff --git a/Makefile b/Makefile index 6353f93..2b7dd82 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ # simple sortcut to push all git changes push: + git checkout devel git pull git add --all -git commit -a -s diff --git a/debug.go b/debug.go index 1a20532..3369be6 100644 --- a/debug.go +++ b/debug.go @@ -40,7 +40,13 @@ func DumpBoxes() { 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.NumPages() =", window.UiTab.NumPages()) - spew.Dump(window.UiTab) + // tmp := spew.NewDefaultConfig() + // tmp.MaxDepth = 2 + // tmp.Dump(window.UiTab) + if (Config.Debug) { + scs := spew.ConfigState{MaxDepth: 2} + scs.Dump(window.UiTab) + } } } for i, window := range Data.Windows { diff --git a/gui.go b/gui.go index ef1ff49..fca054e 100644 --- a/gui.go +++ b/gui.go @@ -1,7 +1,7 @@ package gui import "log" -import "time" +// import "time" import "regexp" import "github.com/andlabs/ui" @@ -20,80 +20,6 @@ func GuiInit() { }) } -func InitGuiWindow(name string, gw *GuiWindow) *GuiWindow { - log.Println("InitGuiWindow() START") - var newGuiWindow GuiWindow - newGuiWindow.Width = Config.Width - newGuiWindow.Height = Config.Height - newGuiWindow.Name = name - newGuiWindow.MakeWindow = gw.MakeWindow - newGuiWindow.UiWindow = gw.UiWindow - newGuiWindow.UiTab = gw.UiTab - newGuiWindow.BoxMap = make(map[string]*GuiBox) - newGuiWindow.EntryMap = make(map[string]*GuiEntry) - Data.Windows = append(Data.Windows, &newGuiWindow) - - if (Data.WindowMap == nil) { - log.Println("gui.InitGuiWindow() making the Data.WindowMap here") - Data.WindowMap = make(map[string]*GuiWindow) - } - Data.WindowMap[name] = &newGuiWindow - - // make a blank entry for testing - // newGuiWindow.EntryMap["test"] = nil - - if (Data.buttonMap == nil) { - GuiInit() - } - log.Println("InitGuiWindow() END *GuiWindow =", &newGuiWindow) - return &newGuiWindow -} - - -func StartNewWindow(bg bool, name string, callback func(*GuiWindow) *GuiBox) { - log.Println("StartNewWindow() Create a new window") - var junk GuiWindow - junk.MakeWindow = callback - window := InitGuiWindow(name, &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(gw.Name, 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() -} - /* // string handling examples that might be helpful for normalizeInt() isAlpha := regexp.MustCompile(`^[A-Za-z]+$`).MatchString @@ -127,15 +53,3 @@ func normalizeInt(s string) string { log.Println("normalizeInt() s =", clean) return clean } - -func MessageWindow(gw *GuiWindow, msg1 string, msg2 string) { - log.Println("gui.MessageWindow() msg1 =", msg1) - log.Println("gui.MessageWindow() msg2 =", msg2) - ui.MsgBox(gw.UiWindow, msg1, msg2) -} - -func ErrorWindow(gw *GuiWindow, msg1 string, msg2 string) { - log.Println("gui.ErrorWindow() msg1 =", msg1) - log.Println("gui.ErrorWindow() msg2 =", msg2) - ui.MsgBoxError(gw.UiWindow, msg1, msg2) -} diff --git a/window.go b/window.go new file mode 100644 index 0000000..0100778 --- /dev/null +++ b/window.go @@ -0,0 +1,82 @@ +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.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) +}