Documentation ¶
Index ¶
- Constants
- Variables
- func WithTUIModule() cmdr.ExecOption
- type Action
- type Attribute
- type Editor
- type EditorFunc
- type Key
- type Manager
- type ManagerFunc
- type Menu
- type MenuBar
- type MenuItem
- type Modifier
- type PopupMenu
- type TvApp
- func (s *TvApp) CurrentView() *View
- func (s *TvApp) DeleteKeybinding(viewname string, key interface{}, mod Modifier) error
- func (s *TvApp) DeleteKeybindings(viewname string)
- func (s *TvApp) DeleteView(name string) error
- func (s *TvApp) NewDialog()
- func (s *TvApp) NewKeyBinding()
- func (s *TvApp) NewMenu()
- func (s *TvApp) NewMenuBar()
- func (s *TvApp) NewStatusBar()
- func (s *TvApp) NewToolbar()
- func (s *TvApp) NewWindow()
- func (s *TvApp) NewWorkspace() *TvWorkspace
- func (s *TvApp) Run() (err error)
- func (s *TvApp) Rune(x, y int) (rune, error)
- func (s *TvApp) SetCurrentView(name string) (*View, error)
- func (s *TvApp) SetKeybinding(viewname string, key interface{}, mod Modifier, ...) error
- func (s *TvApp) SetManager(managers ...Manager)
- func (s *TvApp) SetManagerFunc(manager func(*TvApp) error)
- func (s *TvApp) SetRune(x, y int, ch rune, fgColor, bgColor Attribute) error
- func (s *TvApp) SetView(name string, x0, y0, x1, y1 int) (*View, error)
- func (s *TvApp) SetViewOnBottom(name string) (*View, error)
- func (s *TvApp) SetViewOnTop(name string) (*View, error)
- func (s *TvApp) Shutdown()
- func (s *TvApp) Size() (x, y int)
- func (s *TvApp) Update(f func(*TvApp) error)
- func (s *TvApp) View(name string) (*View, error)
- func (s *TvApp) ViewByPosition(x, y int) (*View, error)
- func (s *TvApp) ViewPosition(name string) (x0, y0, x1, y1 int, err error)
- func (s *TvApp) Views() []*View
- type TvWorkspace
- type View
- func (v *View) Buffer() string
- func (v *View) BufferLines() []string
- func (v *View) Clear()
- func (v *View) Cursor() (x, y int)
- func (v *View) EditDelete(back bool)
- func (v *View) EditNewLine()
- func (v *View) EditWrite(ch rune)
- func (v *View) Line(y int) (string, error)
- func (v *View) MoveCursor(dx, dy int, writeMode bool)
- func (v *View) Name() string
- func (v *View) Origin() (x, y int)
- func (v *View) Read(p []byte) (n int, err error)
- func (v *View) Rewind()
- func (v *View) SetCursor(x, y int) error
- func (v *View) SetOrigin(x, y int) error
- func (v *View) Size() (x, y int)
- func (v *View) ViewBuffer() string
- func (v *View) ViewBufferLines() []string
- func (v *View) Word(x, y int) (string, error)
- func (v *View) Write(p []byte) (n int, err error)
Constants ¶
const ( ColorDefault Attribute = Attribute(termbox.ColorDefault) ColorBlack = Attribute(termbox.ColorBlack) ColorRed = Attribute(termbox.ColorRed) ColorGreen = Attribute(termbox.ColorGreen) ColorYellow = Attribute(termbox.ColorYellow) ColorBlue = Attribute(termbox.ColorBlue) ColorMagenta = Attribute(termbox.ColorMagenta) ColorCyan = Attribute(termbox.ColorCyan) ColorWhite = Attribute(termbox.ColorWhite) )
Color attributes.
const ( AttrBold Attribute = Attribute(termbox.AttrBold) AttrUnderline = Attribute(termbox.AttrUnderline) AttrReverse = Attribute(termbox.AttrReverse) )
Text style attributes.
const ( KeyF1 Key = Key(termbox.KeyF1) KeyF2 = Key(termbox.KeyF2) KeyF3 = Key(termbox.KeyF3) KeyF4 = Key(termbox.KeyF4) KeyF5 = Key(termbox.KeyF5) KeyF6 = Key(termbox.KeyF6) KeyF7 = Key(termbox.KeyF7) KeyF8 = Key(termbox.KeyF8) KeyF9 = Key(termbox.KeyF9) KeyF10 = Key(termbox.KeyF10) KeyF11 = Key(termbox.KeyF11) KeyF12 = Key(termbox.KeyF12) KeyInsert = Key(termbox.KeyInsert) KeyDelete = Key(termbox.KeyDelete) KeyHome = Key(termbox.KeyHome) KeyEnd = Key(termbox.KeyEnd) KeyPgup = Key(termbox.KeyPgup) KeyPgdn = Key(termbox.KeyPgdn) KeyArrowUp = Key(termbox.KeyArrowUp) KeyArrowDown = Key(termbox.KeyArrowDown) KeyArrowLeft = Key(termbox.KeyArrowLeft) KeyArrowRight = Key(termbox.KeyArrowRight) MouseLeft = Key(termbox.MouseLeft) MouseMiddle = Key(termbox.MouseMiddle) MouseRight = Key(termbox.MouseRight) MouseRelease = Key(termbox.MouseRelease) MouseWheelUp = Key(termbox.MouseWheelUp) MouseWheelDown = Key(termbox.MouseWheelDown) )
Special keys.
const ( KeyCtrlTilde Key = Key(termbox.KeyCtrlTilde) KeyCtrl2 = Key(termbox.KeyCtrl2) KeyCtrlSpace = Key(termbox.KeyCtrlSpace) KeyCtrlA = Key(termbox.KeyCtrlA) KeyCtrlB = Key(termbox.KeyCtrlB) KeyCtrlC = Key(termbox.KeyCtrlC) KeyCtrlD = Key(termbox.KeyCtrlD) KeyCtrlE = Key(termbox.KeyCtrlE) KeyCtrlF = Key(termbox.KeyCtrlF) KeyCtrlG = Key(termbox.KeyCtrlG) KeyBackspace = Key(termbox.KeyBackspace) KeyCtrlH = Key(termbox.KeyCtrlH) KeyTab = Key(termbox.KeyTab) KeyCtrlI = Key(termbox.KeyCtrlI) KeyCtrlJ = Key(termbox.KeyCtrlJ) KeyCtrlK = Key(termbox.KeyCtrlK) KeyCtrlL = Key(termbox.KeyCtrlL) KeyEnter = Key(termbox.KeyEnter) KeyCtrlM = Key(termbox.KeyCtrlM) KeyCtrlN = Key(termbox.KeyCtrlN) KeyCtrlO = Key(termbox.KeyCtrlO) KeyCtrlP = Key(termbox.KeyCtrlP) KeyCtrlQ = Key(termbox.KeyCtrlQ) KeyCtrlR = Key(termbox.KeyCtrlR) KeyCtrlS = Key(termbox.KeyCtrlS) KeyCtrlT = Key(termbox.KeyCtrlT) KeyCtrlU = Key(termbox.KeyCtrlU) KeyCtrlV = Key(termbox.KeyCtrlV) KeyCtrlW = Key(termbox.KeyCtrlW) KeyCtrlX = Key(termbox.KeyCtrlX) KeyCtrlY = Key(termbox.KeyCtrlY) KeyCtrlZ = Key(termbox.KeyCtrlZ) KeyEsc = Key(termbox.KeyEsc) KeyCtrlLsqBracket = Key(termbox.KeyCtrlLsqBracket) KeyCtrl3 = Key(termbox.KeyCtrl3) KeyCtrl4 = Key(termbox.KeyCtrl4) KeyCtrlBackslash = Key(termbox.KeyCtrlBackslash) KeyCtrl5 = Key(termbox.KeyCtrl5) KeyCtrlRsqBracket = Key(termbox.KeyCtrlRsqBracket) KeyCtrl6 = Key(termbox.KeyCtrl6) KeyCtrl7 = Key(termbox.KeyCtrl7) KeyCtrlSlash = Key(termbox.KeyCtrlSlash) KeyCtrlUnderscore = Key(termbox.KeyCtrlUnderscore) KeySpace = Key(termbox.KeySpace) KeyBackspace2 = Key(termbox.KeyBackspace2) KeyCtrl8 = Key(termbox.KeyCtrl8) KeyQ = Key('Q') )
Keys combinations.
Variables ¶
var ( // ErrQuit is used to decide if the MainLoop finished successfully. ErrQuit = errors.New("quit") // ErrUnknownView allows to assert if a View must be initialized. ErrUnknownView = errors.New("unknown view") )
Functions ¶
func WithTUIModule ¶
func WithTUIModule() cmdr.ExecOption
WithTUIModule adds `tui` sub-command to cmdr system
Types ¶
type Attribute ¶
type Attribute termbox.Attribute
Attribute represents a terminal attribute, like color, font style, etc. They can be combined using bitwise OR (|). Note that it is not possible to combine multiple color attributes.
type Editor ¶
Editor interface must be satisfied by gocui editors.
var DefaultEditor Editor = EditorFunc(simpleEditor)
DefaultEditor is the default editor.
type EditorFunc ¶
The EditorFunc type is an adapter to allow the use of ordinary functions as Editors. If f is a function with the appropriate signature, EditorFunc(f) is an Editor object that calls f.
type Manager ¶
type Manager interface { // Layout is called every time the GUI is redrawn, it must contain the // base views and its initializations. Layout(*TvApp) error }
A Manager is in charge of GUI's layout and can be used to build widgets.
type ManagerFunc ¶
The ManagerFunc type is an adapter to allow the use of ordinary functions as Managers. If f is a function with the appropriate signature, ManagerFunc(f) is an Manager object that calls f.
type MenuItem ¶
type MenuItem struct { OwnerMenu *Menu Title string Action *Action OnHover func() OnHit func() OnDoubleHit func() }
MenuItem for TUI
type Modifier ¶
type Modifier termbox.Modifier
Modifier allows to define special keys combinations. They can be used in combination with Keys or Runes when a new keybinding is defined.
type TvApp ¶
type TvApp struct {
// BgColor and FgColor allow to configure the background and foreground
// colors of the GUI.
BgColor, FgColor Attribute
// SelBgColor and SelFgColor allow to configure the background and
// foreground colors of the frame of the current view.
SelBgColor, SelFgColor Attribute
// If Highlight is true, Sel{Bg,Fg}Colors will be used to draw the
// frame of the current view.
Highlight bool
// If Cursor is true then the cursor is enabled.
Cursor bool
// If Mouse is true then mouse events will be enabled.
Mouse bool
// If InputEsc is true, when ESC sequence is in the buffer and it doesn't
// match any known sequence, ESC means KeyEsc.
InputEsc bool
// If ASCII is true then use ASCII instead of unicode to draw the
// interface. Using ASCII is more portable.
ASCII bool
// contains filtered or unexported fields
}
TvApp is a terminal app
func (*TvApp) CurrentView ¶
CurrentView returns the currently focused view, or nil if no view owns the focus.
func (*TvApp) DeleteKeybinding ¶
DeleteKeybinding deletes a keybinding.
func (*TvApp) DeleteKeybindings ¶
DeleteKeybindings deletes all keybindings of view.
func (*TvApp) DeleteView ¶
DeleteView deletes a view by name.
func (*TvApp) NewKeyBinding ¶
func (s *TvApp) NewKeyBinding()
func (*TvApp) NewMenuBar ¶
func (s *TvApp) NewMenuBar()
func (*TvApp) NewStatusBar ¶
func (s *TvApp) NewStatusBar()
func (*TvApp) NewToolbar ¶
func (s *TvApp) NewToolbar()
func (*TvApp) NewWorkspace ¶
func (s *TvApp) NewWorkspace() *TvWorkspace
func (*TvApp) Rune ¶
Rune returns the rune contained in the cell at the given position. It checks if the position is valid.
func (*TvApp) SetCurrentView ¶
SetCurrentView gives the focus to a given view.
func (*TvApp) SetKeybinding ¶
func (s *TvApp) SetKeybinding(viewname string, key interface{}, mod Modifier, handler func(*TvApp, *View) error) error
SetKeybinding creates a new keybinding. If viewname equals to "" (empty string) then the keybinding will apply to all views. key must be a rune or a Key.
func (*TvApp) SetManager ¶
SetManager sets the given GUI managers. It deletes all views and keybindings.
func (*TvApp) SetManagerFunc ¶
SetManagerFunc sets the given manager function. It deletes all views and keybindings.
func (*TvApp) SetRune ¶
SetRune writes a rune at the given point, relative to the top-left corner of the terminal. It checks if the position is valid and applies the given colors.
func (*TvApp) SetView ¶
SetView creates a new view with its top-left corner at (x0, y0) and the bottom-right one at (x1, y1). If a view with the same name already exists, its dimensions are updated; otherwise, the error ErrUnknownView is returned, which allows to assert if the View must be initialized. It checks if the position is valid.
func (*TvApp) SetViewOnBottom ¶
SetViewOnBottom sets the given view on bottom of the existing ones.
func (*TvApp) SetViewOnTop ¶
SetViewOnTop sets the given view on top of the existing ones.
func (*TvApp) Update ¶
Update executes the passed function. This method can be called safely from a goroutine in order to update the GUI. It is important to note that the passed function won't be executed immediately, instead it will be added to the user events queue. Given that Update spawns a goroutine, the order in which the user events will be handled is not guaranteed.
func (*TvApp) View ¶
View returns a pointer to the view with the given name, or error ErrUnknownView if a view with that name does not exist.
func (*TvApp) ViewByPosition ¶
ViewByPosition returns a pointer to a view matching the given position, or error ErrUnknownView if a view in that position does not exist.
func (*TvApp) ViewPosition ¶
ViewPosition returns the coordinates of the view with the given name, or error ErrUnknownView if a view with that name does not exist.
type TvWorkspace ¶
type TvWorkspace struct {
// contains filtered or unexported fields
}
func (*TvWorkspace) Run ¶
func (s *TvWorkspace) Run() (err error)
type View ¶
type View struct {
// BgColor and FgColor allow to configure the background and foreground
// colors of the View.
BgColor, FgColor Attribute
// SelBgColor and SelFgColor are used to configure the background and
// foreground colors of the selected line, when it is highlighted.
SelBgColor, SelFgColor Attribute
// If Editable is true, keystrokes will be added to the view's internal
// buffer at the cursor position.
Editable bool
// Editor allows to define the editor that manages the edition mode,
// including keybindings or cursor behaviour. DefaultEditor is used by
// default.
Editor Editor
// Overwrite enables or disables the overwrite mode of the view.
Overwrite bool
// If Highlight is true, Sel{Bg,Fg}Colors will be used
// for the line under the cursor position.
Highlight bool
// If Frame is true, a border will be drawn around the view.
Frame bool
// If Wrap is true, the content that is written to this View is
// automatically wrapped when it is longer than its width. If true the
// view's x-origin will be ignored.
Wrap bool
// If Autoscroll is true, the View will automatically scroll down when the
// text overflows. If true the view's y-origin will be ignored.
Autoscroll bool
// If Frame is true, Title allows to configure a title for the view.
Title string
// If Mask is true, the View will display the mask instead of the real
// content
Mask rune
// contains filtered or unexported fields
}
A View is a window. It maintains its own internal buffer and cursor position.
func (*View) BufferLines ¶
BufferLines returns the lines in the view's internal buffer.
func (*View) EditDelete ¶
EditDelete deletes a rune at the cursor position. back determines the direction.
func (*View) EditNewLine ¶
func (v *View) EditNewLine()
EditNewLine inserts a new line under the cursor.
func (*View) Line ¶
Line returns a string with the line of the view's internal buffer at the position corresponding to the point (x, y).
func (*View) MoveCursor ¶
MoveCursor moves the cursor taking into account the width of the line/view, displacing the origin if necessary.
func (*View) Read ¶
Read reads data into p. It returns the number of bytes read into p. At EOF, err will be io.EOF. Calling Read() after Rewind() makes the cache to be refreshed with the contents of the view.
func (*View) Rewind ¶
func (v *View) Rewind()
Rewind sets the offset for the next Read to 0, which also refresh the read cache.
func (*View) SetCursor ¶
SetCursor sets the cursor position of the view at the given point, relative to the view. It checks if the position is valid.
func (*View) SetOrigin ¶
SetOrigin sets the origin position of the view's internal buffer, so the buffer starts to be printed from this point, which means that it is linked with the origin point of view. It can be used to implement Horizontal and Vertical scrolling with just incrementing or decrementing ox and oy.
func (*View) ViewBuffer ¶
ViewBuffer returns a string with the contents of the view's buffer that is shown to the user.
func (*View) ViewBufferLines ¶
ViewBufferLines returns the lines in the view's internal buffer that is shown to the user.
func (*View) Word ¶
Word returns a string with the word of the view's internal buffer at the position corresponding to the point (x, y).