aboutsummaryrefslogtreecommitdiffstats
path: root/layout/intercepter.go
diff options
context:
space:
mode:
authorSam Anthony <sam@samanthony.xyz>2024-08-24 15:04:33 -0400
committerSam Anthony <sam@samanthony.xyz>2024-08-24 15:04:33 -0400
commita8a38817d7bdd7505a7156e390460d48863a6bb3 (patch)
tree77e0d50b01c0777789b72f4a59e2158352104a41 /layout/intercepter.go
parenteac0b4b31a1ae323222076dcb31dc7cd4d9402d5 (diff)
downloadgui-a8a38817d7bdd7505a7156e390460d48863a6bb3.zip
implement new layout design
Diffstat (limited to 'layout/intercepter.go')
-rw-r--r--layout/intercepter.go43
1 files changed, 0 insertions, 43 deletions
diff --git a/layout/intercepter.go b/layout/intercepter.go
deleted file mode 100644
index eee7aff..0000000
--- a/layout/intercepter.go
+++ /dev/null
@@ -1,43 +0,0 @@
-package layout
-
-import (
- "image"
- "image/draw"
-
- "github.com/faiface/gui"
-)
-
-// Intercepter represents an element that can interact with Envs.
-// An Intercepter can modify Events, stop them or emit arbitrary ones.
-// It can also put itself in the draw pipeline, for throttling very
-// expensive draw calls for example.
-type Intercepter interface {
- Intercept(gui.Env) gui.Env
-}
-
-var _ Intercepter = RedrawIntercepter{}
-
-// RedrawIntercepter is a basic Intercepter, it is meant for use in simple Layouts
-// that only need to redraw themselves.
-type RedrawIntercepter struct {
- Redraw func(draw.Image, image.Rectangle)
-}
-
-// Intercept implements Intercepter
-func (ri RedrawIntercepter) Intercept(env gui.Env) gui.Env {
- out, in := gui.MakeEventsChan()
- go func() {
- for e := range env.Events() {
- in <- e
- if resize, ok := e.(gui.Resize); ok {
- env.Draw() <- func(drw draw.Image) image.Rectangle {
- bounds := resize.Rectangle
- ri.Redraw(drw, bounds)
- return bounds
- }
- }
- }
- }()
- ret := &muxEnv{out, env.Draw()}
- return ret
-}