示例#1
0
func getLine(g *gocui.Gui, v *gocui.View) error {
	var l string
	var err error

	_, cy := v.Cursor()
	if l, err = v.Line(cy); err != nil {
		l = ""
	}

	maxX, maxY := g.Size()
	if v, err := g.SetView("msg", maxX/2-30, maxY/2, maxX/2+30, maxY/2+2); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		fmt.Fprintln(v, l)
		if err := g.SetCurrentView("msg"); err != nil {
			return err
		}
	}

	if v, err := g.View("main"); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		f := proj.GetFile(l)
		if f != nil {
			v.Clear()
			fmt.Fprintf(v, "%s", f.GetBody())
		}
		v.Editable = true
		v.Wrap = true
	}
	return nil
}
示例#2
0
func PrintMenu(v *gocui.View) {
	v.Editable = true

	menuItems := []interface{}{
		"Exit (Ctrl C)",
		"Toggle Cmd Mode (Tab)",
	}

	if cTubes.Page < cTubes.Pages {
		menuItems = append(menuItems, "Next Page (Ctrl N)")
	}

	if cTubes.Page > 1 {
		menuItems = append(menuItems, "Prev Page (Ctrl P)")
	}

	if !cmdMode {
		verbs := []string{}
		for _, _ = range menuItems {
			verbs = append(verbs, "%s")
		}
		line := fmt.Sprintf(strings.Join(verbs, " | "), menuItems...)
		fmt.Fprintln(v, line)
	} else {
		prefix := fmt.Sprintf(cmdPrefix, cTubes.Selected)
		fmt.Fprintln(v, prefix)
	}
}
示例#3
0
func addProject(g *gocui.Gui, v *gocui.View) error {
	g.ShowCursor = true
	maxX, maxY := g.Size()
	if v, err := g.SetView("save_proj", maxX/2-30, maxY/2, maxX/2+30, maxY/2+2); err != nil {
		if err != gocui.ErrorUnkView {
			return err
		}
		setView(g, "save_proj")
		v.Editable = true
	}
	return nil
}