From 1b03644d1e0e1be27cdd22732f893d03c0e8421d Mon Sep 17 00:00:00 2001 From: Clement Benard Date: Fri, 12 Jul 2019 17:32:57 +0200 Subject: Somehow added the wrong file, fix that --- examples/layout/blinker.go | 60 +++++++++++++++++++++++++++++++++++++++++++++ examples/layout/layout | Bin 5571064 -> 0 bytes 2 files changed, 60 insertions(+) create mode 100644 examples/layout/blinker.go delete mode 100755 examples/layout/layout 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 deleted file mode 100755 index 08d9e00..0000000 Binary files a/examples/layout/layout and /dev/null differ -- cgit v1.2.3