Go to file
Benjamin Fagin e94d415863
Create README.md
2018-08-18 09:47:45 -07:00
demos Create README.md 2018-08-18 09:47:45 -07:00
CODE_OF_CONDUCT.md Added a contact link to code of conduct. 2018-01-12 08:09:08 +01:00
CONTRIBUTING.md Added RemoveItem() to Grid and Flex. Resolves #63 2018-03-02 17:07:46 +01:00
LICENSE.txt Replaced license placeholders. Fixes #149 2018-08-04 11:55:25 +02:00
README.md Fixed ANSI spelling in README, too. See #138 2018-07-16 08:44:19 +02:00
ansi.go ANSI RGB colors were missing hashtags in tags. Fixes #140 2018-07-27 13:40:54 +02:00
application.go Made Application.Draw() thread-safe (for real this time). Fixes #136 2018-07-27 16:30:50 +02:00
borders.go added configurable borders 2018-06-09 14:58:29 +02:00
box.go Added style attributes to Box border. Resolves #152 2018-08-07 09:23:19 +02:00
button.go Added Primitive demo to go along with the GitHub Wiki entry on how to create your own primitive. 2018-03-19 21:25:30 +01:00
checkbox.go Separated form item "done" function from "finished" function. Resolves #39 2018-04-19 21:34:03 +02:00
doc.go Added the tree view. 2018-06-20 10:06:05 +02:00
dropdown.go Hitting Escape on a drop-down selection resets it. 2018-07-19 12:46:48 +02:00
flex.go Switched flexItem slice to pointers. 2018-06-09 22:16:38 +02:00
focusable.go Added list, improved existing primitives, and fixed a bunch of bugs. 2017-12-16 22:48:26 +01:00
form.go Fixed the docs of FormItem. Fixes #153 2018-08-07 09:25:40 +02:00
frame.go Added links to Wiki to documentation. Also replaced screenshot with GIF screencast. 2018-01-07 16:39:06 +01:00
grid.go Removed deprecated funcs/const related to semigraphic changes 2018-06-09 14:58:29 +02:00
inputfield.go Fixed handling of combining unicode characters. Fixes #101 2018-05-03 08:05:11 +02:00
list.go Index out of range bugfix. Fixes #101 2018-05-18 23:46:33 +02:00
modal.go Call modal done func on escape key 2018-08-03 13:03:11 -05:00
pages.go Pages should clear their background before redrawing. Fixes #89 2018-03-29 18:28:32 +02:00
primitive.go Added Primitive demo to go along with the GitHub Wiki entry on how to create your own primitive. 2018-03-19 21:25:30 +01:00
semigraphics.go Removed deprecated funcs/const related to semigraphic changes 2018-06-09 14:58:29 +02:00
styles.go Added placeholder text to InputField. Resolves #75 2018-03-15 17:14:14 +01:00
table.go Added the tree view. 2018-06-20 10:06:05 +02:00
textview.go Added GetScrollOffset() to TextView. Resolves #124 2018-07-28 21:30:50 +02:00
treeview.go Separated TreeView's tree-building from Draw() function so changed events can be fired before drawing. Fixes #142 2018-07-27 18:27:27 +02:00
tview.gif Added links to Wiki to documentation. Also replaced screenshot with GIF screencast. 2018-01-07 16:39:06 +01:00
util.go Added the tree view. 2018-06-20 10:06:05 +02:00

README.md

Rich Interactive Widgets for Terminal UIs

Godoc Reference Go Report

This Go package provides commonly needed components for terminal based user interfaces.

Screenshot

Among these components are:

  • Input forms (include input/password fields, drop-down selections, checkboxes, and buttons)
  • Navigable multi-color text views
  • Sophisticated navigable table views
  • Flexible tree views
  • Selectable lists
  • Grid, Flexbox and page layouts
  • Modal message windows
  • An application wrapper

They come with lots of customization options and can be easily extended to fit your needs.

Installation

go get github.com/rivo/tview

Hello World

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

package main

import (
	"github.com/rivo/tview"
)

func main() {
	box := tview.NewBox().SetBorder(true).SetTitle("Hello, world!")
	if err := tview.NewApplication().SetRoot(box, true).Run(); err != nil {
		panic(err)
	}
}

Check out the GitHub Wiki for more examples along with screenshots. Or try the examples in the "demos" subdirectory.

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

Documentation

Refer to https://godoc.org/github.com/rivo/tview for the package's documentation.

Dependencies

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

Your Feedback

Add your issue here on GitHub. Feel free to get in touch if you have any questions.

Version History

(There are no corresponding tags in the project. I only keep such a history in this README.)

  • v0.17 (2018-06-20)
    • Added TreeView.
  • v0.15 (2018-05-02)
    • Flex and Grid don't clear their background per default, thus allowing for custom modals. See the Wiki for an example.
  • v0.14 (2018-04-13)
    • Added an Escape() function which keep strings like color or region tags from being recognized as such.
    • Added ANSIWriter() and TranslateANSI() which convert ANSI escape sequences to tview color tags.
  • v0.13 (2018-04-01)
    • Added background colors and text attributes to color tags.
  • v0.12 (2018-03-13)
    • Added "suspended mode" to Application.
  • v0.11 (2018-03-02)
    • Added a RemoveItem() function to Grid and Flex.
  • v0.10 (2018-02-22)
    • Direct access to the screen object through callback in Box (i.e. for all primitives).
  • v0.9 (2018-02-20)
    • Introduced Grid layout.
    • Direct access to the screen object through callbacks in Application.
  • v0.8 (2018-01-17)
    • Color tags can now be used almost everywhere.
  • v0.7 (2018-01-16)
    • Forms can now also have a horizontal layout.
  • v0.6 (2018-01-14)
    • All primitives can now intercept all key events when they have focus.
    • Key events can also be intercepted globally (changed to a more general, consistent handling)
  • v0.5 (2018-01-13)
    • TextView now has word wrapping and text alignment
  • v0.4 (2018-01-12)
    • TextView now accepts color tags with any W3C color (including RGB hex values).
    • Support for wide unicode characters.
  • v0.3 (2018-01-11)
    • Added masking to InputField and password entry to Form.
  • v0.2 (2018-01-10)
    • Added Styles variable with default colors for primitives.
    • Completed some missing InputField functions.
  • v0.1 (2018-01-06)
    • First Release.