Converted most of the rest of the test program. Now I just need to figure out what I'm going to do about dialog modality... ugh.
This commit is contained in:
parent
35b2c6fa53
commit
7a1331c04c
264
test/main.go
264
test/main.go
|
@ -334,55 +334,85 @@ func myMain() {
|
||||||
areaboundsTest()
|
areaboundsTest()
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
w := NewWindow("Main Window", 320, 240)
|
runMainTest()
|
||||||
b := NewButton("Click Me")
|
}
|
||||||
b2 := NewButton("Or Me")
|
|
||||||
bmsg := NewButton("Or Even Me!")
|
type testwinhandler struct {
|
||||||
s2 := NewHorizontalStack(b, b2, bmsg)
|
w *Window
|
||||||
|
b *Button
|
||||||
|
b2 *Button
|
||||||
|
bmsg *Button
|
||||||
|
c *Checkbox
|
||||||
|
cb1 *Combobox
|
||||||
|
cb2 *Combobox
|
||||||
|
e *LineEdit
|
||||||
|
l *Label
|
||||||
|
resetl func()
|
||||||
|
b3 *Button
|
||||||
|
pbar *ProgressBar
|
||||||
|
prog int
|
||||||
|
incButton *Button
|
||||||
|
decButton *Button
|
||||||
|
indetButton *Button
|
||||||
|
invalidButton *Button
|
||||||
|
password *LineEdit
|
||||||
|
lb1 *Listbox
|
||||||
|
lb2 *Listbox
|
||||||
|
i int
|
||||||
|
doAdjustments func()
|
||||||
|
}
|
||||||
|
|
||||||
|
func runMainTest() {
|
||||||
|
handler := new(testwinhandler)
|
||||||
|
handler.w = NewWindow("Main Window", 320, 240, handler)
|
||||||
|
handler.b = NewButton("Click Me")
|
||||||
|
handler.b2 = NewButton("Or Me")
|
||||||
|
handler.bmsg = NewButton("Or Even Me!")
|
||||||
|
s2 := NewHorizontalStack(handler.b, handler.b2, handler.bmsg)
|
||||||
s2.SetStretchy(2)
|
s2.SetStretchy(2)
|
||||||
c := NewCheckbox("Check Me")
|
handler.c = NewCheckbox("Check Me")
|
||||||
cb1 := NewEditableCombobox("You can edit me!", "Yes you can!", "Yes you will!")
|
handler.cb1 = NewEditableCombobox("You can edit me!", "Yes you can!", "Yes you will!")
|
||||||
cb2 := NewCombobox("You can't edit me!", "No you can't!", "No you won't!")
|
handler.cb2 = NewCombobox("You can't edit me!", "No you can't!", "No you won't!")
|
||||||
e := NewLineEdit("Enter text here too")
|
handler.e = NewLineEdit("Enter text here too")
|
||||||
l := NewLabel("This is a label")
|
handler.l = NewLabel("This is a label")
|
||||||
resetl := func() {
|
handler.resetl = func() {
|
||||||
l.SetText("This is a label")
|
handler.l.SetText("This is a label")
|
||||||
}
|
}
|
||||||
b3 := NewButton("List Info")
|
handler.b3 := NewButton("List Info")
|
||||||
s3 := NewHorizontalStack(l, b3)
|
s3 := NewHorizontalStack(handler.l, handler.b3)
|
||||||
s3.SetStretchy(0)
|
s3.SetStretchy(0)
|
||||||
// s3.SetStretchy(1)
|
// s3.SetStretchy(1)
|
||||||
pbar := NewProgressBar()
|
handler.pbar = NewProgressBar()
|
||||||
prog := 0
|
handler.prog = 0
|
||||||
incButton := NewButton("Inc")
|
handler.incButton = NewButton("Inc")
|
||||||
decButton := NewButton("Dec")
|
handler.decButton = NewButton("Dec")
|
||||||
indetButton := NewButton("Indeterminate")
|
handler.indetButton = NewButton("Indeterminate")
|
||||||
invalidButton := NewButton("Run Invalid Test")
|
handler.invalidButton = NewButton("Run Invalid Test")
|
||||||
sincdec := NewHorizontalStack(incButton, decButton, indetButton, invalidButton)
|
sincdec := NewHorizontalStack(handler.incButton, handler.decButton, handler.indetButton, handler.invalidButton)
|
||||||
password := NewPasswordEdit()
|
handler.password = NewPasswordEdit()
|
||||||
s0 := NewVerticalStack(s2, c, cb1, cb2, e, s3, pbar, sincdec, Space(), password)
|
s0 := NewVerticalStack(handler.s2, handler.c, handler.cb1, handler.cb2, handler.e, handler.s3, handler.pbar, handler.sincdec, Space(), handler.password)
|
||||||
s0.SetStretchy(8)
|
s0.SetStretchy(8)
|
||||||
lb1 := NewMultiSelListbox("Select One", "Or More", "To Continue")
|
handler.lb1 = NewMultiSelListbox("Select One", "Or More", "To Continue")
|
||||||
lb2 := NewListbox("Select", "Only", "One", "Please")
|
handler.lb2 = NewListbox("Select", "Only", "One", "Please")
|
||||||
i := 0
|
handler.i = 0
|
||||||
doAdjustments := func() {
|
handler.doAdjustments = func() {
|
||||||
cb1.Append("append")
|
handler.cb1.Append("append")
|
||||||
cb2.InsertBefore(fmt.Sprintf("before %d", i), 1)
|
handler.cb2.InsertBefore(fmt.Sprintf("before %d", i), 1)
|
||||||
lb1.InsertBefore(fmt.Sprintf("%d", i), 2)
|
handler.lb1.InsertBefore(fmt.Sprintf("%d", i), 2)
|
||||||
lb2.Append("Please")
|
handler.lb2.Append("Please")
|
||||||
i++
|
handler.i++
|
||||||
}
|
}
|
||||||
doAdjustments()
|
handler.doAdjustments()
|
||||||
cb1.Append("append multi 1", "append multi 2")
|
handler.cb1.Append("append multi 1", "append multi 2")
|
||||||
lb2.Append("append multi 1", "append multi 2")
|
handler.lb2.Append("append multi 1", "append multi 2")
|
||||||
s1 := NewVerticalStack(lb2, lb1)
|
s1 := NewVerticalStack(handler.lb2, handler.lb1)
|
||||||
s1.SetStretchy(0)
|
s1.SetStretchy(0)
|
||||||
s1.SetStretchy(1)
|
s1.SetStretchy(1)
|
||||||
s := NewHorizontalStack(s1, s0)
|
s := NewHorizontalStack(s1, s0)
|
||||||
s.SetStretchy(0)
|
s.SetStretchy(0)
|
||||||
s.SetStretchy(1)
|
s.SetStretchy(1)
|
||||||
if *invalidBefore {
|
if *invalidBefore {
|
||||||
invalidTest(cb1, lb1, s, NewGrid(1, Space()))
|
invalidTest(handler.cb1, handler.lb1, s, NewGrid(1, Space()))
|
||||||
}
|
}
|
||||||
w.SetSpaced(*spacingTest)
|
w.SetSpaced(*spacingTest)
|
||||||
w.Open(s)
|
w.Open(s)
|
||||||
|
@ -393,12 +423,17 @@ func myMain() {
|
||||||
listboxPreferredSizeTest()
|
listboxPreferredSizeTest()
|
||||||
}
|
}
|
||||||
|
|
||||||
ticker := time.Tick(time.Second)
|
// == TODO ==
|
||||||
|
|
||||||
dialog_bMsgBox := NewButton("MsgBox()")
|
dialog_bMsgBox := NewButton("MsgBox()")
|
||||||
dialog_bMsgBoxError := NewButton("MsgBoxError()")
|
dialog_bMsgBoxError := NewButton("MsgBoxError()")
|
||||||
centerButton := NewButton("Center")
|
centerButton := NewButton("Center")
|
||||||
dialog_win := NewWindow("Dialogs", 200, 200)
|
dh := &dialoghandler{
|
||||||
|
bMsgBox: dialog_bMsgBox,
|
||||||
|
bMsgBoxError: dialog_bMsgBoxError,
|
||||||
|
bCenter: centerButton,
|
||||||
|
// send: w.Send,
|
||||||
|
}
|
||||||
|
dh.w = NewWindow("Dialogs", 200, 200, dh)
|
||||||
if *dialogTest {
|
if *dialogTest {
|
||||||
s := NewVerticalStack(
|
s := NewVerticalStack(
|
||||||
dialog_bMsgBox,
|
dialog_bMsgBox,
|
||||||
|
@ -406,11 +441,9 @@ func myMain() {
|
||||||
Space(),
|
Space(),
|
||||||
centerButton)
|
centerButton)
|
||||||
s.SetStretchy(2)
|
s.SetStretchy(2)
|
||||||
dialog_win.Open(s)
|
dh.w.Open(s)
|
||||||
}
|
}
|
||||||
|
|
||||||
var dialog_sret chan struct{} = nil
|
|
||||||
|
|
||||||
if *labelAlignTest {
|
if *labelAlignTest {
|
||||||
s := NewHorizontalStack(NewStandaloneLabel("Label"), NewLineEdit("Label"))
|
s := NewHorizontalStack(NewStandaloneLabel("Label"), NewLineEdit("Label"))
|
||||||
s.SetStretchy(1)
|
s.SetStretchy(1)
|
||||||
|
@ -440,89 +473,104 @@ func myMain() {
|
||||||
NewButton("Button"),
|
NewButton("Button"),
|
||||||
s)
|
s)
|
||||||
s.SetStretchy(4)
|
s.SetStretchy(4)
|
||||||
NewWindow("Label Align Test", 500, 300).Open(s)
|
NewWindow("Label Align Test", 500, 300, nullwinhandler{}).Open(s)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
mainloop:
|
func (handler *testwinhandler) Event(e Event, d interface{}) {
|
||||||
for {
|
switch e {
|
||||||
select {
|
case Closing:
|
||||||
case curtime := <-ticker:
|
|
||||||
// l.SetText(curtime.String())
|
|
||||||
_=curtime
|
|
||||||
case <-w.Closing:
|
|
||||||
println("window closed event received")
|
println("window closed event received")
|
||||||
break mainloop
|
*(d.(*bool)) = true
|
||||||
case <-AppQuit:
|
case Clicked:
|
||||||
println("application quit event received")
|
switch d {
|
||||||
break mainloop
|
case handler.b:
|
||||||
case <-b.Clicked:
|
handler.w.SetTitle(fmt.Sprintf("%v | %s | %s | %s | %s",
|
||||||
w.SetTitle(fmt.Sprintf("%v | %s | %s | %s | %s",
|
handler.c.Checked(),
|
||||||
c.Checked(),
|
handler.cb1.Selection(),
|
||||||
cb1.Selection(),
|
handler.cb2.Selection(),
|
||||||
cb2.Selection(),
|
handler.e.Text(),
|
||||||
e.Text(),
|
handler.password.Text()))
|
||||||
password.Text()))
|
handler.doAdjustments()
|
||||||
doAdjustments()
|
case handler.b2:
|
||||||
case <-b2.Clicked:
|
if handler.cb1.Len() > 1 {
|
||||||
if cb1.Len() > 1 {
|
handler.cb1.Delete(1)
|
||||||
cb1.Delete(1)
|
|
||||||
}
|
}
|
||||||
if cb2.Len() > 2 {
|
if handler.cb2.Len() > 2 {
|
||||||
cb2.Delete(2)
|
handler.cb2.Delete(2)
|
||||||
}
|
}
|
||||||
if lb1.Len() > 3 || *macCrashTest {
|
if handler.lb1.Len() > 3 || *macCrashTest {
|
||||||
lb1.Delete(3)
|
handler.lb1.Delete(3)
|
||||||
}
|
}
|
||||||
if lb2.Len() > 4 {
|
if handler.lb2.Len() > 4 {
|
||||||
lb2.Delete(4)
|
handler.lb2.Delete(4)
|
||||||
}
|
}
|
||||||
case <-b3.Clicked:
|
case handler.b3:
|
||||||
f := MsgBox
|
f := MsgBox
|
||||||
if c.Checked() {
|
if handler.c.Checked() {
|
||||||
f = MsgBoxError
|
f = MsgBoxError
|
||||||
}
|
}
|
||||||
f("List Info",
|
f("List Info",
|
||||||
fmt.Sprintf("cb1: %d %q (len %d)\ncb2: %d %q (len %d)\nlb1: %d %q (len %d)\nlb2: %d %q (len %d)",
|
fmt.Sprintf("cb1: %d %q (len %d)\ncb2: %d %q (len %d)\nlb1: %d %q (len %d)\nlb2: %d %q (len %d)",
|
||||||
cb1.SelectedIndex(), cb1.Selection(), cb1.Len(),
|
handler.cb1.SelectedIndex(), handler.cb1.Selection(), handler.cb1.Len(),
|
||||||
cb2.SelectedIndex(), cb2.Selection(), cb2.Len(),
|
handler.cb2.SelectedIndex(), handler.cb2.Selection(), handler.cb2.Len(),
|
||||||
lb1.SelectedIndices(), lb1.Selection(), lb1.Len(),
|
handler.lb1.SelectedIndices(), handler.lb1.Selection(), handler.lb1.Len(),
|
||||||
lb2.SelectedIndices(), lb2.Selection(), lb2.Len()))
|
handler.lb2.SelectedIndices(), handler.lb2.Selection(), handler.lb2.Len()))
|
||||||
case <-incButton.Clicked:
|
case handler.incButton:
|
||||||
prog++
|
handler.prog++
|
||||||
if prog > 100 {
|
if handler.prog > 100 {
|
||||||
prog = 100
|
handler.prog = 100
|
||||||
}
|
}
|
||||||
pbar.SetProgress(prog)
|
handler.pbar.SetProgress(handler.prog)
|
||||||
cb1.Append("append multi 1", "append multi 2")
|
handler.cb1.Append("append multi 1", "append multi 2")
|
||||||
lb2.Append("append multi 1", "append multi 2")
|
handler.lb2.Append("append multi 1", "append multi 2")
|
||||||
case <-decButton.Clicked:
|
case handler.decButton:
|
||||||
prog--
|
handler.prog--
|
||||||
if prog < 0 {
|
if handler.prog < 0 {
|
||||||
prog = 0
|
handler.prog = 0
|
||||||
}
|
}
|
||||||
pbar.SetProgress(prog)
|
handler.pbar.SetProgress(handler.prog)
|
||||||
case <-indetButton.Clicked:
|
case handler.indetButton:
|
||||||
pbar.SetProgress(-1)
|
handler.pbar.SetProgress(-1)
|
||||||
case <-invalidButton.Clicked:
|
case handler.invalidButton:
|
||||||
invalidTest(cb1, lb1, nil, nil)
|
invalidTest(handler.cb1, handler.lb1, nil, nil)
|
||||||
case <-bmsg.Clicked:
|
case handler.bmsg:
|
||||||
MsgBox("Title Only, no parent", "")
|
MsgBox("Title Only, no parent", "")
|
||||||
MsgBox("Title and Text", "parent")
|
MsgBox("Title and Text", "parent")
|
||||||
// dialogs
|
}
|
||||||
case <-dialog_bMsgBox.Clicked:
|
// == TODO ==
|
||||||
dialog_sret = dialog_win.MsgBox("Message Box", "Dismiss")
|
// case CusotmEvent:
|
||||||
l.SetText("DIALOG")
|
// l.SetText("DIALOG")
|
||||||
case <-dialog_bMsgBoxError.Clicked:
|
// case CustomEvent + 1:
|
||||||
dialog_sret = dialog_win.MsgBoxError("Message Box", "Dismiss")
|
// resetl()
|
||||||
l.SetText("DIALOG")
|
}
|
||||||
case <-dialog_sret:
|
}
|
||||||
dialog_sret = nil
|
|
||||||
resetl()
|
type dialoghandler struct {
|
||||||
case <-centerButton.Clicked:
|
bMsgBox *Button
|
||||||
dialog_win.Center()
|
bMsgBoxError *Button
|
||||||
|
w *Window
|
||||||
|
bCenter *Button
|
||||||
|
send func(Event, interface{})
|
||||||
|
}
|
||||||
|
|
||||||
|
// == TODO ==
|
||||||
|
func (handler *dialoghandler) Event(e Event, d Data) {
|
||||||
|
if e == Clicked {
|
||||||
|
switch d {
|
||||||
|
case handler.bMsgBox:
|
||||||
|
// dialog_sret = handler.w.MsgBox("Message Box", "Dismiss")
|
||||||
|
// handler.send(CustomEvent, nil)
|
||||||
|
case handler.bMsgBoxError:
|
||||||
|
// dialog_sret = handler.w.MsgBoxError("Message Box", "Dismiss")
|
||||||
|
// handler.send(CustomEvent, nil)
|
||||||
|
// case <-dialog_sret:
|
||||||
|
// dialog_sret = nil
|
||||||
|
// handler.send(CustomEvent + 1, nil)
|
||||||
|
case handler.bCenter:
|
||||||
|
handler.w.Center()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
w.Hide()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
|
Loading…
Reference in New Issue