main.go_ raw
1 package main
2
3 import (
4 "log"
5 "os"
6
7 "github.com/p9c/p9/pkg/gel/gio/app"
8 "github.com/p9c/p9/pkg/gel/gio/io/system"
9 "github.com/p9c/p9/pkg/gel/gio/layout"
10 "github.com/p9c/p9/pkg/gel/gio/op"
11 "github.com/p9c/p9/pkg/gel/gio/op/paint"
12 "github.com/p9c/p9/pkg/gel/gio/unit"
13
14 "github.com/p9c/p9/pkg/gui"
15 "github.com/p9c/p9/pkg/gui/dialog"
16 "github.com/p9c/p9/pkg/gui/fonts/p9fonts"
17 )
18
19 var (
20 th = gui.NewTheme(p9fonts.Collection(), nil)
21 btnDanger = th.Clickable()
22 btnWarning = th.Clickable()
23 btnSuccess = th.Clickable()
24 )
25
26 func main() {
27 go func() {
28 w := app.NewWindow(app.Size(unit.Px(150*6+50), unit.Px(150*6-50)))
29 if e := loop(w); E.Chk(e) {
30 log.F.Ln(e)
31 }
32 os.Exit(0)
33 }()
34 app.Main()
35 }
36
37 func loop(w *app.Window) (e error) {
38 var ops op.Ops
39 d := dialog.New(th)
40 for {
41 e := <-w.Events()
42 switch e := e.(type) {
43 case system.DestroyEvent:
44 return e.Err
45 case system.FrameEvent:
46 gtx := layout.NewContext(&ops, e)
47 paint.Fill(gtx.Ops, gui.HexNRGB("e5e5e5FF"))
48 op.InvalidateOp{}.Add(gtx.Ops)
49
50 th.Inset(
51 0.25,
52 th.VFlex().
53 Rigid(
54 // th.Button(btnDanger).Text("Danger").Color("Danger").Fn,
55 // ).
56 // Rigid(
57 // th.Button(btnWarning).Text("Warning").Color("Warning").Fn,
58 // ).
59 // Rigid(
60 th.Button(btnSuccess).Text("Success").Color("Success").SetClick(
61 d.ShowDialog(
62 "Success",
63 "Success content",
64 "Success",
65 ),
66 ).Fn,
67 ).Fn,
68 ).Fn(gtx)
69
70 // for btnDanger.Clicked() {
71 // d.DrawDialog("Danger", "Danger content", "Danger")
72 // }
73
74 // for btnWarning.Clicked() {
75 // d.DrawDialog("Warning", "Warning content", "Warning")
76 // }
77
78 d.DrawDialog()(gtx)
79 e.Frame(gtx.Ops)
80 w.Invalidate()
81 }
82 }
83 }
84