Terminal-based user interface toolkit
Go to file
Trevor Slocum 50b3201606 Add TabbedPanels 2020-10-15 18:50:36 -07:00
demos Add TabbedPanels 2020-10-15 18:50:36 -07:00
.gitignore Update .gitignore 2020-10-06 13:26:47 -07:00
.gitlab-ci.yml chore: Add makefile and use in `gitlab-ci.yml` 2020-09-23 20:54:48 +02:00
CHANGELOG Add TabbedPanels 2020-10-15 18:50:36 -07:00
CONTRIBUTING.md Migrate docs to docs.rocketnine.space 2020-02-06 16:06:47 -08:00
DESIGN.md Do not set focus-related style attributes by default 2020-09-29 13:24:12 -07:00
FORK.md Add compatibility warning 2020-10-15 11:49:50 -07:00
LICENSE Document TextView.GetText and GetRegionText fix 2020-07-13 14:47:10 -07:00
Makefile chore: Add makefile and use in `gitlab-ci.yml` 2020-09-23 20:54:48 +02:00
README.md Add compatibility warning 2020-10-15 11:49:50 -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 Add Application.GetScreen and Application.GetScreenSize 2020-10-12 10:07:50 -07:00
borders.go Fork tview as cview 2019-12-30 15:18:26 -08:00
box.go Remove Application.ForceDraw 2020-10-07 21:27:30 -07:00
box_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
button.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
button_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
checkbox.go Replace FormItem.SetAttributes with individual methods 2020-10-09 08:37:54 -07:00
checkbox_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
contextmenu.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
cview.gif Fork tview as cview 2019-12-30 15:18:26 -08:00
doc.go Rename Pages as Panels 2020-10-15 09:15:02 -07:00
doc_test.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
dropdown.go Replace FormItem.SetAttributes with individual methods 2020-10-09 08:37:54 -07:00
flex.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
focusable.go Fork tview as cview 2019-12-30 15:18:26 -08:00
form.go Add Slider 2020-10-11 13:39:04 -07:00
frame.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
go.mod Clarify that Table rows must each have the same number of columns 2020-10-14 13:51:50 -07:00
go.sum Clarify that Table rows must each have the same number of columns 2020-10-14 13:51:50 -07:00
grid.go Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
inputfield.go Replace FormItem.SetAttributes with individual methods 2020-10-09 08:37:54 -07:00
keys.go Upgrade tcell to v2 2020-08-30 08:37:17 -07:00
list.go Fix List dividers allowing selection 2020-10-13 10:13:36 -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 Revert WordWrap signature change 2020-10-11 17:15:33 -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 Add TabbedPanels 2020-10-15 18:50:36 -07:00
primitive.go Upgrade tcell to v2 2020-08-30 08:37:17 -07:00
progressbar.go Add Slider 2020-10-11 13:39:04 -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 Fix WordWrap bounds out of range 2020-10-12 21:48:00 -07:00
styles.go Add Window and WindowManager 2020-09-24 08:09:55 -07:00
tabbedpanels.go Add TabbedPanels 2020-10-15 18:50:36 -07:00
table.go Clarify that Table rows must each have the same number of columns 2020-10-14 13:51:50 -07:00
table_test.go Store ListItem text as []byte instead of string 2020-10-06 18:19:40 -07:00
textview.go Add Slider 2020-10-11 13:39:04 -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 Make printWithStyle public and rename as PrintStyle 2020-10-13 10:17:33 -07:00
treeview_test.go Add comments to tests 2020-04-28 14:58:37 -07:00
util.go Make printWithStyle public and rename as PrintStyle 2020-10-13 10:17:33 -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 Remove return values from methods which return their primitive (breaks chaining) 2020-10-07 16:35:21 -07:00
windowmanager.go Add Window and WindowManager 2020-09-24 08:09:55 -07:00

README.md

cview - Terminal-based user interface toolkit

GoDoc CI status Donate

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

Warning: Breaking changes may be added to cview without bumping its major version. The largest changes have been made. Smaller breaking changes may continue to be made where backwards compatibility is not possible. Changes are listed in FORK.md.

Demo

ssh cview.rocketnine.space -p 20000

Recording of presentation demo

Additional examples are listed on pkg.go.dev.

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 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.

Installation

go get gitlab.com/tslocum/cview

Hello World

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

package main

import (
	"gitlab.com/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).