2
0
mirror of https://github.com/rivo/tview.git synced 2024-11-07 03:20:39 +00:00
Terminal UI library with rich, interactive widgets — written in Golang
Go to file
2018-03-13 08:17:06 +01:00
demos Some housekeeping. 2018-03-05 16:37:10 +01:00
application.go Added suspended mode to Application. (Swallows one key event, tcell issue pending.) Resolves #70 2018-03-13 08:16:09 +01:00
box.go Added getters for some callback functions. Resolves #65 2018-03-10 23:30:49 +01:00
button.go Added color tag functionality to all strings. Resolves #25 2018-01-17 17:13:36 +01:00
checkbox.go "FieldLength" is now "FieldWidth" everywhere for clarity and consistency. Sorry for this breaking change. It is better in the long run. 2018-01-17 21:17:59 +01: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
doc.go Added color tag functionality to all strings. Resolves #25 2018-01-17 17:13:36 +01:00
dropdown.go List (and therefore also DropDown) will scroll if currently selected item is not on screen anymore. Fixes #71 2018-03-11 09:51:15 +01:00
flex.go Added RemoveItem() to Grid and Flex. Resolves #63 2018-03-02 17:07:46 +01:00
focusable.go Added list, improved existing primitives, and fixed a bunch of bugs. 2017-12-16 22:48:26 +01:00
form.go Improved documentation. 2018-01-24 21:48:53 +01: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 Added RemoveItem() to Grid and Flex. Resolves #63 2018-03-02 17:07:46 +01:00
inputfield.go "FieldLength" is now "FieldWidth" everywhere for clarity and consistency. Sorry for this breaking change. It is better in the long run. 2018-01-17 21:17:59 +01:00
LICENSE.txt First commit. Some basic functionality. Publishing to GitHub now. 2017-12-15 15:29:21 +01:00
list.go List (and therefore also DropDown) will scroll if currently selected item is not on screen anymore. Fixes #71 2018-03-11 09:51:15 +01:00
modal.go Added color tag functionality to all strings. Resolves #25 2018-01-17 17:13:36 +01:00
pages.go When a page with focus is removed, we should not end up with no focus anywhere. Also some simplifications. 2018-01-21 21:50:11 +01:00
primitive.go All primitives now offer a way to intercept all key events sent to them. Also made the global key event intercept handler more general/consistent. Resolves #22 2018-01-14 21:29:34 +01:00
README.md Updated release history. 2018-03-13 08:17:06 +01:00
styles.go Added Styles variable with default colors for primitives. 2018-01-10 09:44:21 +01:00
table.go Bugfix which caused a crash in Table class. Fixes #67 2018-03-10 12:59:42 +01:00
textview.go Finished implementation of grid layout. 2018-02-20 11:19:30 +01: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 Rewrote WordWrap() function due to bugs. 2018-03-04 15:01:12 +01:00

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