Example #1
0
func layout(g *gocui.Gui) error {
	maxX, maxY := g.Size()
	columnX := maxX / 3

	g.BgColor = gocui.ColorWhite
	g.FgColor = gocui.ColorBlack
	g.RenderFrames = false

	if v, err := g.SetView("status", -1, -1, maxX, 1); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		v.FgColor = gocui.ColorWhite
		v.BgColor = gocui.ColorBlack
	}

	if v, err := g.SetView("counterHeader", -1, 0, columnX, maxY); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		v.FgColor = gocui.ColorWhite
		v.BgColor = gocui.ColorBlue
		fmt.Fprintf(v, "Counters")
	}
	if _, err := g.SetView("counters", -1, 1, columnX, maxY); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
	}

	if v, err := g.SetView("gaugeHeader", columnX, 0, columnX*2, maxY); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		v.FgColor = gocui.ColorWhite
		v.BgColor = gocui.ColorCyan
		fmt.Fprintf(v, "Gauges")
	}
	if _, err := g.SetView("gauges", columnX, 1, columnX*2, maxY); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
	}

	if v, err := g.SetView("timerHeader", columnX*2, 0, maxX-1, maxY); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		v.FgColor = gocui.ColorWhite
		v.BgColor = gocui.ColorMagenta
		fmt.Fprintf(v, "Timers")
	}
	if _, err := g.SetView("timers", (columnX * 2), 1, maxX-1, maxY); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
	}

	return nil
}
Example #2
0
func (c *controller) layout(g *gocui.Gui) error {
	g.BgColor = gocui.ColorDefault
	maxX, maxY := g.Size()
	if len(c.columns) == 0 {
		return errors.New("No columns defined")
	}
	colWidth := maxX / len(c.columns)
	for i, col := range c.columns {
		v, err := g.SetView(col.name, i*colWidth, 0, ((i+1)*colWidth)-1, maxY-2)
		if err != nil {
			if err != gocui.ErrorUnkView {
				return err
			}
		}
		v.Clear()
		v.Write([]byte(col.name + ": \n\n"))
		err = col.CreateViews(g, v)
		if err != nil {
			return err
		}
	}
	status, err := g.SetView("statusbar", 0, maxY-2, maxX-1, maxY+1)
	if err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}

		status.Frame = false
		status.BgColor = gocui.ColorBlack
		status.FgColor = gocui.ColorDefault | gocui.AttrBold
	}
	status.Clear()
	if c.debugOn {
		status.Write([]byte(debug))
	} else {
		status.Write(c.statusBar(maxX))
	}
	return nil
}