more work on stability

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2019-05-30 00:51:59 -07:00
parent cf74635790
commit c634315046
4 changed files with 47 additions and 58 deletions

10
area.go
View File

@ -20,17 +20,17 @@ func findFB(button *ButtonMap) *ButtonMap {
return a
}
func makeSplashArea(ah *AreaHandler) {
func makeSplashArea(wm *WindowMap, ah *AreaHandler) {
// make this button just to get the default font (but don't display the button)
// There should be another way to do this (?)
wm := ah.WM
newB := CreateFontButton(wm, "AREA")
newB := CreateFontButton(wm, "AREA")
// ah.Attrstr = makeAttributedString()
ah.Area = ui.NewArea(ah)
newB.A = ah.Area
Data.AllButtons[1].A = ah.Area
ah.Button = &Data.AllButtons[1]
// Data.AllButtons[1].A = ah.Area
// ah.Button = &Data.AllButtons[1]
ah.Button = newB
if (Data.Debug) {
spew.Dump(ah.Area)

View File

@ -3,7 +3,7 @@ package gui
import "log"
import "time"
import "regexp"
import "reflect"
// import "reflect"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
@ -224,79 +224,68 @@ func StartNewWindow(c *pb.Config, bg bool, action string) {
return true
})
for i, aWM := range(Data.Windows) {
log.Println(aWM)
if (aWM.W == nil) {
log.Println("ShowWindow() THIS WINDOW IS NOT YET SHOWN i=", i)
log.Println("ShowWindow() THIS WINDOW IS NOT YET SHOWN aWM=", reflect.TypeOf(aWM))
// Data.NewWindow = &aWM
// Data.NewWindow = i
// ui.Main(InitWindow)
time.Sleep(200 * time.Millisecond)
if (bg) {
ui.Main(func() {
InitWindow(Data.Windows[i], i)
})
} else {
ui.Main(func() {
InitWindow(Data.Windows[i], i)
})
}
return
}
if (bg) {
log.Println("ShowWindow() IN NEW GOROUTINE")
go ui.Main(func() {
InitWindow(&newWindowMap)
})
time.Sleep(2000 * time.Millisecond)
} else {
log.Println("ShowWindow() WAITING for ui.Main()")
ui.Main(func() {
InitWindow(&newWindowMap)
})
}
}
func getSplashText() *ui.AttributedString {
func getSplashText(a string) *ui.AttributedString {
var aText *ui.AttributedString
aText = ui.NewAttributedString("Click to continue")
aText = ui.NewAttributedString(a)
return aText
}
func InitWindow(wm *WindowMap, i int) {
func InitWindow(wm *WindowMap) {
log.Println("InitWindow() THIS WINDOW IS NOT YET SHOWN")
// i := Data.NewWindow
log.Println("InitWindow() THIS WINDOW IS NOT YET SHOWN i=", i)
c := Data.Windows[i].C
Data.Windows[i].W = ui.NewWindow("", int(c.Width), int(c.Height), true)
Data.Windows[i].W.SetBorderless(false)
c := wm.C
wm.W = ui.NewWindow("", int(c.Width), int(c.Height), true)
wm.W.SetBorderless(false)
// create a 'fake' button entry for the mouse clicks
var newBM ButtonMap
newBM.Action = "QUIT"
newBM.W = Data.Windows[i].W
newBM.WM = Data.Windows[i]
newBM.W = wm.W
newBM.WM = wm
Data.AllButtons = append(Data.AllButtons, newBM)
Data.Windows[i].W.OnClosing(func(*ui.Window) bool {
log.Println("InitWindow() OnClosing() THIS WINDOW IS CLOSING i=", i)
wm.W.OnClosing(func(*ui.Window) bool {
log.Println("InitWindow() OnClosing() THIS WINDOW IS CLOSING wm=", wm)
// mouseClick(&newBM)
ui.Quit()
return true
})
Data.Windows[i].T = ui.NewTab()
Data.Windows[i].W.SetChild(Data.Windows[i].T)
Data.Windows[i].W.SetMargined(true)
wm.T = ui.NewTab()
wm.W.SetChild(wm.T)
wm.W.SetMargined(true)
log.Println("InitWindow() i =", i)
log.Println("InitWindow() Data.Windows[i] =", Data.Windows[i])
log.Println("InitWindow() Data.Windows[i].Action =", Data.Windows[i].Action)
log.Println("InitWindow() wm =", wm)
log.Println("InitWindow() wm.Action =", wm.Action)
if (Data.Windows[i].Action == "SPLASH") {
if (wm.Action == "SPLASH") {
log.Println("InitWindow() TRYING SPLASH")
tmp := getSplashText()
damnit := "click" + string(c.Hostname)
tmp := getSplashText(damnit)
log.Println("InitWindow() TRYING SPLASH tmp =", tmp)
Data.Windows[i].Box1 = ShowSplashBox(Data.Windows[i], i, tmp)
wm.Box1 = ShowSplashBox(wm, tmp)
Data.Windows[i].T.Append("WIT Splash", Data.Windows[i].Box1)
Data.Windows[i].T.SetMargined(0, true)
wm.T.Append("WIT Splash", wm.Box1)
wm.T.SetMargined(0, true)
}
Data.Windows[i].W.Show()
Data.State = "splash"
wm.W.Show()
}
// makeEntryBox(box, "hostname:", "blah.foo.org") {

View File

@ -11,7 +11,7 @@ import "runtime"
import "github.com/andlabs/ui"
import _ "github.com/andlabs/ui/winmanifest"
func ShowSplashBox(wm *WindowMap, i int, newText *ui.AttributedString) *ui.Box {
func ShowSplashBox(wm *WindowMap, newText *ui.AttributedString) *ui.Box {
log.Println("ShowSplashBox() START")
log.Println("ShowSplashBox() START wm =", wm)
if (wm == nil) {
@ -23,12 +23,12 @@ func ShowSplashBox(wm *WindowMap, i int, newText *ui.AttributedString) *ui.Box {
newbox.SetPadded(true)
// initialize the AreaHandler{}
Data.Windows[i].AH = new(AreaHandler)
Data.Windows[i].AH.WM = wm
Data.Windows[i].AH.Attrstr = newText
makeSplashArea(Data.Windows[i].AH)
wm.AH = new(AreaHandler)
wm.AH.WM = wm
wm.AH.Attrstr = newText
makeSplashArea(wm, wm.AH)
newbox.Append(Data.Windows[i].AH.Area, true)
newbox.Append(wm.AH.Area, true)
if runtime.GOOS == "linux" {
newbox.Append(ui.NewLabel("OS: Linux"), false)

View File

@ -17,8 +17,8 @@ var Data GuiData
type GuiData struct {
State string
Width int
Height int
// Width int
// Height int
// a fallback default function to handle mouse events
// if nothing else is defined to handle them