From 0422e505333513beef8172cc79f2ec208293fc14 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Sat, 24 Aug 2024 17:13:44 -0400 Subject: move functionality of makeEventsChan() to external library --- env.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'env.go') diff --git a/env.go b/env.go index f5f31cf..4094846 100644 --- a/env.go +++ b/env.go @@ -3,6 +3,8 @@ package gui import ( "image" "image/draw" + + "git.samanthony.xyz/share" ) // Env is the most important thing in this package. It is an interactive graphical @@ -15,7 +17,7 @@ import ( // // An Env guarantees to produce a "resize////" event as its first event. // -// The Events() channel must be unlimited in capacity. Use makeEventsChan() to create +// The Events() channel must be unlimited in capacity. Use share.Queue to create // a channel of events with an unlimited capacity. // // The Draw() channel may be synchronous. @@ -53,7 +55,7 @@ func newEnv(parent Env, filterDraws func(func(draw.Image) image.Rectangle, chan<- func(draw.Image) image.Rectangle), shutdown func(), ) Env { - eventsOut, eventsIn := makeEventsChan() + events := share.NewQueue[Event]() drawChan := make(chan func(draw.Image) image.Rectangle) child := newAttachHandler() kill := make(chan bool) @@ -70,7 +72,7 @@ func newEnv(parent Env, close(detachFromParent) }() defer shutdown() - defer close(eventsIn) + defer close(events.Enqueue) defer close(drawChan) defer close(kill) defer func() { @@ -82,7 +84,7 @@ func newEnv(parent Env, for { select { case e := <-parent.Events(): - filterEvents(e, eventsIn) + filterEvents(e, events.Enqueue) case d := <-drawChan: filterDraws(d, parent.Draw()) case <-kill: @@ -92,7 +94,7 @@ func newEnv(parent Env, }() e := env{ - events: eventsOut, + events: events.Dequeue, draw: drawChan, attachChan: child.attach(), kill: kill, -- cgit v1.2.3