diff options
Diffstat (limited to 'pkg/gui/queuehandler.go')
| -rw-r--r-- | pkg/gui/queuehandler.go | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/pkg/gui/queuehandler.go b/pkg/gui/queuehandler.go new file mode 100644 index 0000000..0cf6d67 --- /dev/null +++ b/pkg/gui/queuehandler.go @@ -0,0 +1,46 @@ +package gui + +import ( + "github.com/jroimartin/gocui" +) + +func (gui *Gui) startQueue(g *gocui.Gui, v *gocui.View) error { + go func(gui_go *Gui, g_go *gocui.Gui) { + indicateQueueStarted(g_go) + for { + job, finished, err := gui_go.State.Queue.StartNext() + g_go.Update(func(gu *gocui.Gui) error { + gui_go.refreshMain(gu) + return nil + }) + defer indicateQueueFinished(g_go) + if err != nil { + return + } + if finished { + return + } else { + gui_go.refreshViews(g, job.Entity) + } + } + }(gui, g) + return nil +} + +func indicateQueueStarted(g *gocui.Gui) error { + v, err := g.View(keybindingsViewFeature.Name) + if err != nil { + return err + } + v.BgColor = gocui.ColorGreen + return nil +} + +func indicateQueueFinished(g *gocui.Gui) error { + v, err := g.View(keybindingsViewFeature.Name) + if err != nil { + return err + } + v.BgColor = gocui.ColorWhite + return nil +} |
