summaryrefslogtreecommitdiff
path: root/mainCloudBox.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2019-06-01 15:42:15 -0700
committerJeff Carr <[email protected]>2019-06-01 15:42:15 -0700
commite924dec0335a034b0269c1b5edf8b701ba5634f1 (patch)
tree3f0f70fea007eb580a5f1f785a020a0ab978cce5 /mainCloudBox.go
parent9ed0fb858f579144f49fa7c153995727d8354f4c (diff)
parent9db539747b33632e758083b6b72e5249f3edeb1e (diff)
Merge branch 'devel'
Diffstat (limited to 'mainCloudBox.go')
-rw-r--r--mainCloudBox.go362
1 files changed, 0 insertions, 362 deletions
diff --git a/mainCloudBox.go b/mainCloudBox.go
deleted file mode 100644
index 6f5d971..0000000
--- a/mainCloudBox.go
+++ /dev/null
@@ -1,362 +0,0 @@
-package gui
-
-import "log"
-import "time"
-import "regexp"
-import "os"
-// import "reflect"
-
-import "github.com/andlabs/ui"
-import _ "github.com/andlabs/ui/winmanifest"
-
-import pb "git.wit.com/wit/witProtobuf"
-
-// import "github.com/davecgh/go-spew/spew"
-
-func makeCloudInfoBox(gw *GuiWindow) *GuiBox {
- var gb *GuiBox
- gb = new(GuiBox)
- gb.W = gw
-
- gb.EntryMap = make(map[string]*GuiEntry)
- gb.EntryMap["test"] = nil
-
- hbox := ui.NewHorizontalBox()
- hbox.SetPadded(true)
- // gw.Box1 = hbox
- gb.UiBox = hbox
-
- if (Data.Debug) {
- log.Println("makeCloudInfoBox() add debugging buttons")
- /*
- vbox := ui.NewVerticalBox()
- vbox.SetPadded(true)
- hbox.Append(vbox, false)
- */
-
- addDebuggingButtons(gb)
-
- hbox.Append(ui.NewVerticalSeparator(), false)
- }
-
- vbox := ui.NewVerticalBox()
- vbox.SetPadded(true)
- hbox.Append(vbox, true)
-
- hostnamebox := ui.NewHorizontalBox()
- hostnamebox.SetPadded(true)
- vbox.Append(hostnamebox, false)
-
- entryForm := ui.NewForm()
- entryForm.SetPadded(true)
- hostnamebox.Append(entryForm, true)
-
- hostnameEntry := ui.NewEntry()
- entryForm.Append("hostname:", hostnameEntry, false)
- tmp := Data.Hostname + " (" + Data.IPv6 + ")"
- hostnameEntry.SetText(tmp)
- hostnameEntry.SetReadOnly(true)
-
- anew := CreateButton(gb, nil, nil, "Edit", "EDIT", nil)
- hostnamebox.Append(anew.B, false)
-
- vbox.Append(ui.NewHorizontalSeparator(), false)
-
- agrid := ui.NewGrid()
- agrid.SetPadded(true)
-
- agrid.Append(ui.NewLabel("Accounts:"), 0, 0, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
- agrid.Append(ui.NewLabel("Domain Name"), 1, 0, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
- agrid.Append(ui.NewLabel("Email"), 2, 0, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
-
- row := 1
-
- for key, a := range Data.Config.Accounts {
- log.Println("account = ", key, a)
- log.Println("Accounts[key] = ", Data.Config.Accounts[key])
- log.Println("account.Nick = ", Data.Config.Accounts[key].Nick)
- log.Println("account.Username = ", Data.Config.Accounts[key].Username)
- log.Println("account.Token = ", Data.Config.Accounts[key].Token)
-
- agrid.Append(ui.NewLabel(Data.Config.Accounts[key].Domain), 1, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
- agrid.Append(ui.NewLabel(Data.Config.Accounts[key].Email), 2, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
-
- name := "Login " + Data.Config.Accounts[key].Nick
- l := CreateButton(gb, Data.Config.Accounts[key], nil, name, "LOGIN", nil)
- agrid.Append(l.B, 3, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
-
- name = "Show " + Data.Config.Accounts[key].Nick
- b := CreateButton(gb, Data.Config.Accounts[key], nil, name, "SHOW", nil)
- agrid.Append(b.B, 4, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
-
- row += 1
- }
-
- row += 1
- agrid.Append(ui.NewLabel(""), 1, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
- row += 1
- a := CreateButton(gb, nil, nil, "Add Account", "ADD TAB", nil)
- agrid.Append(a.B, 4, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
- q := CreateButton(gb, nil, nil, "Quit", "QUIT", nil)
- agrid.Append(q.B, 5, row, 1, 1, true, ui.AlignFill, false, ui.AlignFill)
-
- vbox.Append(agrid, false)
- return gb
-}
-
-func ShowAccountQuestionTab(gw *GuiWindow) {
- log.Println("ShowAccountQuestionTab() gw =", gw)
- if (gw.UiTab == nil) {
- log.Println("ShowAccountQuestionTab() gw.UiTab = nil THIS IS BAD")
- os.Exit(-1)
- }
- gw.UiTab.Delete(0)
-
- log.Println("Sleep(200)")
- time.Sleep(200 * time.Millisecond)
-
- abox := AddAccountQuestionBox(gw)
- gw.BoxMap["Box2"] = abox
- // gw.Box2 = AddAccountQuestionBox(gw)
- gw.UiTab.InsertAt("New Account?", 0, abox.UiBox)
- gw.UiTab.SetMargined(0, true)
-}
-
-func ShowAccountTab(gw *GuiWindow, i int) {
- log.Println("ShowAccountTab() START")
-
- log.Println("Sleep(200)")
- time.Sleep(200 * time.Millisecond)
-
- // Create the things for the Account Tab
- abox := AddAccountBox(gw)
-
- // Set the parents and data structure links
- // aTab.me = gw.UiTab
- // aTab.parentWindow = Data.Window1.W
- // aTab.tabOffset = 0
-
- if (i >= 0) {
- log.Println("ShowAccountTab() InsertAt i=", i)
- gw.UiTab.Delete(0)
- gw.UiTab.InsertAt("Add Account", i, abox.UiBox)
- gw.UiTab.SetMargined(0, true)
- } else {
- // TODO: After append try to discover the tab index #
- log.Println("ShowAccountTab() Append")
- AddBoxToTab("Create New Account", gw.UiTab, abox.UiBox)
- }
-}
-
-func ShowMainTab(gw *GuiWindow) {
- log.Println("ShowMainTab() gw =", gw)
- log.Println("ShowMainTab() gw.UiTab =", gw.UiTab)
- gw.UiTab.Delete(0)
-
- log.Println("Sleep(200)")
- time.Sleep(200 * time.Millisecond)
-
- abox := makeCloudInfoBox(gw)
- gw.BoxMap["Box3"] = abox
- gw.UiTab.InsertAt("Main", 0, abox.UiBox)
- gw.UiTab.SetMargined(0, true)
-}
-
-func GuiInit() {
- ui.OnShouldQuit(func() bool {
- // mouseClick(&newBM)
- ui.Quit()
- return true
- })
-}
-
-func StartNewWindow(c *pb.Config, bg bool, action string, text func() *ui.AttributedString) {
- log.Println("InitNewWindow() Create a new window")
- var newGuiWindow GuiWindow
- newGuiWindow.Width = int(c.Width)
- newGuiWindow.Height = int(c.Height)
- newGuiWindow.Action = action
- newGuiWindow.GetText = text
- Data.Windows = append(Data.Windows, &newGuiWindow)
-
- // make(newGuiWindow.BoxMap)
- newGuiWindow.BoxMap = make(map[string]*GuiBox)
-
- 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)
- })
- }
-}
-
-func getSplashText(a string) *ui.AttributedString {
- var aText *ui.AttributedString
- aText = ui.NewAttributedString(a)
- return aText
-}
-
-func InitWindow(gw *GuiWindow) {
- log.Println("InitWindow() THIS WINDOW IS NOT YET SHOWN")
-
- gw.UiWindow = ui.NewWindow("", int(gw.Width), int(gw.Height), true)
- gw.UiWindow.SetBorderless(false)
-
- // create a 'fake' button entry for the mouse clicks
- var newBM GuiButton
- newBM.Action = "QUIT"
-// newBM.W = gw.UiWindow
- newBM.GW = gw
- Data.AllButtons = append(Data.AllButtons, &newBM)
-
- gw.UiWindow.OnClosing(func(*ui.Window) bool {
- log.Println("InitWindow() OnClosing() THIS WINDOW IS CLOSING gw=", gw)
- // mouseClick(&newBM)
- ui.Quit()
- return true
- })
-
- gw.UiTab = ui.NewTab()
- gw.UiWindow.SetChild(gw.UiTab)
- gw.UiWindow.SetMargined(true)
-
- log.Println("InitWindow() gw =", gw)
- log.Println("InitWindow() gw.Action =", gw.Action)
-
- if (gw.Action == "SPLASH") {
- log.Println("InitWindow() TRYING SPLASH")
- damnit := "click" + string(Data.Config.Hostname)
- var tmp *ui.AttributedString
- if (gw.GetText == nil) {
- tmp = getSplashText(damnit)
- } else {
- tmp = gw.GetText()
- }
- log.Println("InitWindow() TRYING SPLASH tmp =", tmp)
- abox := ShowSplashBox(gw, tmp)
-
- gw.UiTab.Append("WIT Splash", abox.UiBox)
- gw.UiTab.SetMargined(0, true)
- }
-
- Data.State = "splash"
- gw.UiWindow.Show()
-}
-
-// makeEntryBox(box, "hostname:", "blah.foo.org") {
-func makeEntryVbox(hbox *ui.Box, a string, startValue string, edit bool, action string) *GuiEntry {
- // Start 'Nickname' vertical box
- vboxN := ui.NewVerticalBox()
- vboxN.SetPadded(true)
- vboxN.Append(ui.NewLabel(a), false)
-
- e := defaultMakeEntry(startValue, edit, action)
-
- vboxN.Append(e.UiEntry, false)
- hbox.Append(vboxN, false)
- // End 'Nickname' vertical box
-
- return e
-}
-
-/*
-// string handling examples that might be helpful for normalizeInt()
-isAlpha := regexp.MustCompile(`^[A-Za-z]+$`).MatchString
-
-for _, username := range []string{"userone", "user2", "user-three"} {
- if !isAlpha(username) {
- fmt.Printf("%q is not valid\n", username)
- }
-}
-
-const alpha = "abcdefghijklmnopqrstuvwxyz"
-
-func alphaOnly(s string) bool {
- for _, char := range s {
- if !strings.Contains(alpha, strings.ToLower(string(char))) {
- return false
- }
- }
- return true
-}
-*/
-
-func normalizeInt(s string) string {
- // reg, err := regexp.Compile("[^a-zA-Z0-9]+")
- reg, err := regexp.Compile("[^0-9]+")
- if err != nil {
- log.Println("normalizeInt() regexp.Compile() ERROR =", err)
- return s
- }
- clean := reg.ReplaceAllString(s, "")
- log.Println("normalizeInt() s =", clean)
- return clean
-}
-
-func defaultEntryChange(e *ui.Entry) {
- for key, em := range Data.AllEntries {
- if (Data.Debug) {
- log.Println("\tdefaultEntryChange() Data.AllEntries =", key, em)
- }
- if Data.AllEntries[key].UiEntry == e {
- log.Println("defaultEntryChange() FOUND",
- "action =", Data.AllEntries[key].Action,
- "Last =", Data.AllEntries[key].Last,
- "e.Text() =", e.Text())
- Data.AllEntries[key].Last = e.Text()
- if Data.AllEntries[key].Normalize != nil {
- fixed := Data.AllEntries[key].Normalize(e.Text())
- e.SetText(fixed)
- }
- return
- }
- }
- log.Println("defaultEntryChange() ERROR. MISSING ENTRY MAP. e.Text() =", e.Text())
-}
-
-func defaultMakeEntry(startValue string, edit bool, action string) *GuiEntry {
- e := ui.NewEntry()
- e.SetText(startValue)
- if (edit == false) {
- e.SetReadOnly(true)
- }
- e.OnChanged(defaultEntryChange)
-
- // add the entry field to the global map
- var newEntry GuiEntry
- newEntry.UiEntry = e
- newEntry.Edit = edit
- newEntry.Action = action
- if (action == "Memory") {
- newEntry.Normalize = normalizeInt
- }
- Data.AllEntries = append(Data.AllEntries, &newEntry)
-
- return &newEntry
-}
-
-func makeEntryHbox(hbox *ui.Box, a string, startValue string, edit bool, action string) *GuiEntry {
- // Start 'Nickname' vertical box
- hboxN := ui.NewHorizontalBox()
- hboxN.SetPadded(true)
- hboxN.Append(ui.NewLabel(a), false)
-
- e := defaultMakeEntry(startValue, edit, action)
- hboxN.Append(e.UiEntry, false)
-
- hbox.Append(hboxN, false)
- // End 'Nickname' vertical box
-
- return e
-}
-
-func AddBoxToTab(name string, tab *ui.Tab, box *ui.Box) {
- tab.Append(name, box)
- tab.SetMargined(0, true)
-}