move termbox.Events generator into screen
authorSimon J Mudd <sjmudd@pobox.com>
Tue, 24 Feb 2015 08:29:26 +0000 (09:29 +0100)
committerSimon J Mudd <sjmudd@pobox.com>
Tue, 24 Feb 2015 08:29:26 +0000 (09:29 +0100)
app/app.go
screen/screen.go

index c6c43bf..3588133 100644 (file)
@@ -496,18 +496,6 @@ func (app *App) Cleanup() {
        }
 }
 
-// make chan for termbox events and run a poller to send events to the channel
-// - return the channel
-func new_tb_chan() chan termbox.Event {
-       termboxChan := make(chan termbox.Event)
-       go func() {
-               for {
-                       termboxChan <- termbox.PollEvent()
-               }
-       }()
-       return termboxChan
-}
-
 // get into a run loop
 func (app *App) Run() {
        app.done = make(chan struct{})
@@ -518,7 +506,7 @@ func (app *App) Run() {
 
        app.wi.SetWaitInterval(time.Second)
 
-       termboxChan := new_tb_chan()
+       termboxChan := app.screen.TermBoxChan()
 
        for !app.Finished() {
                select {
index c29c6ba..0478b46 100644 (file)
@@ -114,3 +114,15 @@ func (s *TermboxScreen) SetSize(width, height int) {
 func (s *TermboxScreen) Size() (int, int) {
        return s.width, s.height
 }
+
+// create a channel for termbox.Events and run a poller to send
+// these events to the channel.  Return the channel.
+func (s TermboxScreen) TermBoxChan() chan termbox.Event {
+        termboxChan := make(chan termbox.Event)
+        go func() {
+                for {
+                        termboxChan <- termbox.PollEvent()
+                }
+        }()
+        return termboxChan
+}