summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--redo/zz_test.go99
1 files changed, 56 insertions, 43 deletions
diff --git a/redo/zz_test.go b/redo/zz_test.go
index 1d23f35..b70d66a 100644
--- a/redo/zz_test.go
+++ b/redo/zz_test.go
@@ -25,55 +25,68 @@ var ddata = []dtype{
{ "iota", "kappa" },
}
+type testwin struct {
+ t Tab
+ w Window
+ table Table
+ b Button
+ c Checkbox
+ e TextField
+ e2 TextField
+}
+
+func (tw *testwin) make(done chan struct{}) {
+ tw.t = NewTab()
+ tw.w = NewWindow("Hello", 320, 240, tw.t)
+ tw.w.OnClosing(func() bool {
+ if *closeOnClick {
+ panic("window closed normally in close on click mode (should not happen)")
+ }
+ println("window close event received")
+ Stop()
+ done <- struct{}{}
+ return true
+ })
+ tw.table = NewTable(reflect.TypeOf(ddata[0]))
+ tw.table.Lock()
+ dq := tw.table.Data().(*[]dtype)
+ *dq = ddata
+ tw.table.Unlock()
+ tw.t.Append("Table", tw.table)
+ tw.b = NewButton("There")
+ if *closeOnClick {
+ tw.b.SetText("Click to Close")
+ }
+ // GTK+ TODO: this is causing a resize event to happen afterward?!
+ tw.b.OnClicked(func() {
+ println("in OnClicked()")
+ if *closeOnClick {
+ tw.w.Close()
+ Stop()
+ done <- struct{}{}
+ }
+ })
+ tw.t.Append("Button", tw.b)
+ tw.c = NewCheckbox("You Should Now See Me Instead")
+ tw.c.OnClicked(func() {
+ tw.w.SetTitle(fmt.Sprint(tw.c.Checked()))
+ })
+ tw.t.Append("Checkbox", tw.c)
+ tw.e = NewTextField()
+ tw.t.Append("Text Field", tw.e)
+ tw.e2 = NewPasswordField()
+ tw.t.Append("Password Field", tw.e)
+ tw.w.Show()
+}
+
// because Cocoa hates being run off the main thread, even if it's run exclusively off the main thread
func init() {
flag.BoolVar(&spaced, "spaced", false, "enable spacing")
flag.Parse()
go func() {
+ tw := new(testwin)
done := make(chan struct{})
- Do(func() {
- t := NewTab()
- w := NewWindow("Hello", 320, 240, t)
- w.OnClosing(func() bool {
- if *closeOnClick {
- panic("window closed normally in close on click mode (should not happen)")
- }
- println("window close event received")
- Stop()
- done <- struct{}{}
- return true
- })
- table := NewTable(reflect.TypeOf(ddata[0]))
- table.Lock()
- dq := table.Data().(*[]dtype)
- *dq = ddata
- table.Unlock()
- t.Append("Table", table)
- b := NewButton("There")
- if *closeOnClick {
- b.SetText("Click to Close")
- }
- // GTK+ TODO: this is causing a resize event to happen afterward?!
- b.OnClicked(func() {
- println("in OnClicked()")
- if *closeOnClick {
- w.Close()
- Stop()
- done <- struct{}{}
- }
- })
- t.Append("Button", b)
- c := NewCheckbox("You Should Now See Me Instead")
- c.OnClicked(func() {
- w.SetTitle(fmt.Sprint(c.Checked()))
- })
- t.Append("Checkbox", c)
- e := NewTextField()
- t.Append("Text Field", e)
- e = NewPasswordField()
- t.Append("Password Field", e)
- w.Show()
- })
+ Do(func() { tw.make(done) })
<-done
}()
err := Go()