diff options
| author | faiface <faiface2202@gmail.com> | 2019-05-02 02:41:59 +0200 |
|---|---|---|
| committer | faiface <faiface2202@gmail.com> | 2019-05-02 02:41:59 +0200 |
| commit | c780bd677bb7712d88f8f047bb0cfb0fb08d1be8 (patch) | |
| tree | 76845d343100e98a157d1daccb9345ec6155a544 /mux.go | |
| parent | 7bbe7dc9618949f2fe023efcb896a70150966e44 (diff) | |
| download | gui-c780bd677bb7712d88f8f047bb0cfb0fb08d1be8.zip | |
make Env an interface (instead of a struct)
Diffstat (limited to 'mux.go')
| -rw-r--r-- | mux.go | 16 |
1 files changed, 12 insertions, 4 deletions
@@ -19,13 +19,13 @@ func NewMux(env Env) (mux *Mux, master Env) { go func() { for d := range drawChan { - env.Draw <- d + env.Draw() <- d } - close(env.Draw) + close(env.Draw()) }() go func() { - for e := range env.Events { + for e := range env.Events() { mux.mu.Lock() for _, eventsIn := range mux.eventsIns { eventsIn <- e @@ -46,10 +46,18 @@ func (mux *Mux) MakeEnv() Env { return mux.makeEnv(false) } +type muxEnv struct { + events <-chan Event + draw chan<- func(draw.Image) image.Rectangle +} + +func (m *muxEnv) Events() <-chan Event { return m.events } +func (m *muxEnv) Draw() chan<- func(draw.Image) image.Rectangle { return m.draw } + func (mux *Mux) makeEnv(master bool) Env { eventsOut, eventsIn := MakeEventsChan() drawChan := make(chan func(draw.Image) image.Rectangle) - env := Env{eventsOut, drawChan} + env := &muxEnv{eventsOut, drawChan} mux.mu.Lock() mux.eventsIns = append(mux.eventsIns, eventsIn) |