Exemplo n.º 1
0
// RunApp runs the main loop for the application.
func RunApp(dockapp *dockapp.DockApp, app *App, metrics <-chan *battery.Metrics, formatter <-chan battery.MetricFormatter) {
	defer dockapp.Quit()
	var m *battery.Metrics
	var f battery.MetricFormatter
	for {
		select {
		case m = <-metrics:
		case f = <-formatter:
		}
		if m == nil {
			log.Printf("nil metrics")
			continue
		}
		if f == nil {
			log.Printf("nil formatter")
			continue
		}
		// draw the widget to the screen.
		err := app.Draw(dockapp.Canvas(), m, f)
		if err != nil {
			log.Panic(err)
		}
		dockapp.FlushImage()
	}
}