Terminal-based user interface toolkit
Go to file
Trevor Slocum 29170b8453 Add TrueColorTags option
This controls whether color tags should render as the specific colors
defined by tcell, or as the colors defined by the user's terminal
configuration (the default).

Relates to #48.
2021-05-26 13:05:16 -07:00
demos Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
.gitignore Update .gitignore 2020-10-06 13:26:47 -07:00
CHANGELOG Allow specifying TabbedPanels switcher height 2021-05-25 13:09:56 -07:00
CONTRIBUTING.md Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
DESIGN.md Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
FORK.md Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
LICENSE Fix strikethrough support 2021-02-06 20:50:10 -08:00
Makefile chore: Add makefile and use in `gitlab-ci.yml` 2020-09-23 20:54:48 +02:00
README.md Fix resetting background color via '-' 2021-05-25 12:45:31 -07:00
ansi.go Bugfixes in ANSI escape sequence handling as well as TextView, fixes #320, fixes #344 2020-06-09 14:52:59 -07:00
application.go Restructure event loop to only poll screen between updates 2021-04-24 23:08:49 -07:00
borders.go Fork tview as cview 2019-12-30 15:18:26 -08:00
box.go Document how to prevent screen artifacts when using SetBackgroundTransparent 2020-12-15 10:40:06 -08:00
box_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
button.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
button_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
checkbox.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
checkbox_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
contextmenu.go Rename SetBorderPadding and GetBorderPadding as SetPadding and GetPadding 2020-10-26 10:41:47 -07:00
cview.svg Update presentation demo recording 2020-10-21 18:40:16 -07:00
doc.go Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
doc_test.go Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
dropdown.go Replace FormItem.SetAttributes with individual methods 2020-10-09 08:37:54 -07:00
flex.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
focus.go Add FocusManager 2020-10-16 09:25:21 -07:00
form.go Fix highlighting focused Form element 2021-01-07 14:58:59 -08:00
frame.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
go.mod Draw additional accents when rendering a list divider 2021-05-25 08:53:29 -07:00
go.sum Draw additional accents when rendering a list divider 2021-05-25 08:53:29 -07:00
grid.go Release v1.5.2 2020-12-04 11:42:16 -08:00
inputfield.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
keys.go Add code.rocketnine.space migration notice 2021-04-03 08:11:20 -07:00
list.go Update List, Table and TreeView to not handle Tab or Backtab 2021-05-25 09:04:35 -07:00
list_test.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
modal.go Rename SetBorderPadding and GetBorderPadding as SetPadding and GetPadding 2020-10-26 10:41:47 -07:00
mouse.go Print text using []byte instead of string, calculate string width using runewidth instead of uniseg 2020-10-06 13:16:37 -07:00
panels.go Preserve order of panels when updating panel 2021-01-05 14:53:40 -08:00
primitive.go Allow hiding form items 2020-10-19 21:12:22 -07:00
progressbar.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
progressbar_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
semigraphics.go Upgrade tcell to v2 2020-08-30 08:37:17 -07:00
slider.go Add SetVisible and GetVisible to all widgets 2020-10-19 19:05:03 -07:00
styles.go Add Window and WindowManager 2020-09-24 08:09:55 -07:00
tabbedpanels.go Allow specifying TabbedPanels switcher height 2021-05-25 13:09:56 -07:00
table.go Update List, Table and TreeView to not handle Tab or Backtab 2021-05-25 09:04:35 -07:00
table_test.go Store ListItem text as []byte instead of string 2020-10-06 18:19:40 -07:00
textview.go Fix resetting background color via '-' 2021-05-25 12:45:31 -07:00
textview_test.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
treeview.go Update List, Table and TreeView to not handle Tab or Backtab 2021-05-25 09:04:35 -07:00
treeview_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
util.go Add TrueColorTags option 2021-05-26 13:05:16 -07:00
util_test.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
window.go Use SetRect to position Windows 2020-10-20 09:22:54 -07:00
windowmanager.go Fix WindowManager background not being drawn 2020-11-13 20:55:54 -08:00

README.md

cview - Terminal-based user interface toolkit

GoDoc Donate

This package is a fork of tview. See FORK.md for more information.

Demo

ssh cview.rocketnine.space -p 20000

Recording of presentation demo

Features

Available widgets:

  • Input forms (including input/password fields, drop-down selections, checkboxes, and buttons)
  • Navigable multi-color text views
  • Selectable lists with context menus
  • Modal dialogs
  • Horizontal and vertical progress bars
  • Grid, Flexbox and tabbed panel layouts
  • Sophisticated navigable table views
  • Flexible tree views
  • Draggable and resizable windows
  • An application wrapper

Widgets may be customized and extended to suit any application.

Mouse support is available.

Applications

A list of applications powered by cview is available via pkg.go.dev.

Installation

go get code.rocketnine.space/tslocum/cview

Hello World

This basic example creates a TextView titled "Hello, World!" and displays it in your terminal:

package main

import (
	"code.rocketnine.space/tslocum/cview"
)

func main() {
	app := cview.NewApplication()
	
	box := cview.NewTextView()
	box.SetBorder(true)
	box.SetTitle("Hello, world!")
	box.SetText("Lorem ipsum dolor sit amet")
	
	app.SetRoot(box, true)
	if err := app.Run(); err != nil {
		panic(err)
	}
}

Examples are available via godoc and in the demos subdirectory.

For a presentation highlighting the features of this package, compile and run the program in the demos/presentation subdirectory.

Documentation

Package documentation is available via godoc.

An introduction tutorial is also available.

Dependencies

This package is based on github.com/gdamore/tcell (and its dependencies) and github.com/rivo/uniseg.

Support

CONTRIBUTING.md describes how to share issues, suggestions and patches (pull requests).