diff options
| author | faiface <faiface@ksp.sk> | 2017-08-19 13:21:08 +0200 |
|---|---|---|
| committer | faiface <faiface@ksp.sk> | 2017-08-19 13:21:08 +0200 |
| commit | cbab539817fbf9dab51bdc889a7e9ceff2b757e3 (patch) | |
| tree | d486623b6bfdaa77c22027364a2d774c647ec73c | |
| parent | 0cfb38cfb3b42577dfd20c63387159d5cc9db7ee (diff) | |
| download | gui-cbab539817fbf9dab51bdc889a7e9ceff2b757e3.zip | |
layers: Layers and Layer dispatch events
| -rw-r--r-- | layers/layers.go | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/layers/layers.go b/layers/layers.go index 7cad37e..8e8ed3a 100644 --- a/layers/layers.go +++ b/layers/layers.go @@ -5,6 +5,8 @@ import ( "errors" "image" "image/draw" + + "github.com/faiface/gui/event" ) type ImageFlusher interface { @@ -13,6 +15,7 @@ type ImageFlusher interface { } type Layers struct { + event.Dispatch dst ImageFlusher layers list.List } @@ -48,7 +51,18 @@ func (l *Layers) Flush(r image.Rectangle) { l.dst.Flush(r) } +func (l *Layers) Happen(event string) bool { + for e := l.layers.Front(); e != nil; e = e.Next() { + layer := e.Value.(*Layer) + if layer.Happen(event) { + return true + } + } + return false +} + type Layer struct { + event.Dispatch l *Layers e *list.Element rgba *image.RGBA |