diff options
| author | Clement Benard <contact@clementbenard.com> | 2019-07-12 17:32:57 +0200 |
|---|---|---|
| committer | Clement Benard <contact@clementbenard.com> | 2019-07-12 17:32:57 +0200 |
| commit | 1b03644d1e0e1be27cdd22732f893d03c0e8421d (patch) | |
| tree | 3166a04f7ff255520cb922e3d4b29a7c0cfeb3d5 | |
| parent | 0cc6367a881ab7dba48ace7b111e0eb1151c10bb (diff) | |
| download | gui-1b03644d1e0e1be27cdd22732f893d03c0e8421d.zip | |
Somehow added the wrong file, fix that
| -rw-r--r-- | examples/layout/blinker.go | 60 | ||||
| -rwxr-xr-x | examples/layout/layout | bin | 5571064 -> 0 bytes |
2 files changed, 60 insertions, 0 deletions
diff --git a/examples/layout/blinker.go b/examples/layout/blinker.go new file mode 100644 index 0000000..76dbd95 --- /dev/null +++ b/examples/layout/blinker.go @@ -0,0 +1,60 @@ +package main + +import ( + "image" + "image/draw" + "log" + "time" + + "github.com/faiface/gui" + "github.com/faiface/gui/win" + "golang.org/x/image/colornames" +) + +func Blinker(env gui.Env) { + defer func() { + if recover() != nil { + log.Print("recovered blinker") + } + }() + + var r image.Rectangle + var visible bool = true + + redraw := func() func(draw.Image) image.Rectangle { + return func(drw draw.Image) image.Rectangle { + if visible { + draw.Draw(drw, r, image.White, image.ZP, draw.Src) + } else { + draw.Draw(drw, r, &image.Uniform{colornames.Firebrick}, image.ZP, draw.Src) + } + return r + } + } + + // first we draw a white rectangle + env.Draw() <- redraw() + func() { + for event := range env.Events() { + switch event := event.(type) { + case win.MoDown: + if event.Point.In(r) { + go func() { + for i := 0; i < 3; i++ { + visible = false + env.Draw() <- redraw() + time.Sleep(time.Second / 3) + visible = true + env.Draw() <- redraw() + time.Sleep(time.Second / 3) + } + }() + } + case gui.Resize: + log.Print(event) + r = event.Rectangle + env.Draw() <- redraw() + } + } + }() +} diff --git a/examples/layout/layout b/examples/layout/layout Binary files differdeleted file mode 100755 index 08d9e00..0000000 --- a/examples/layout/layout +++ /dev/null |