2
0
mirror of https://github.com/rivo/tview.git synced 2024-11-17 03:26:09 +00:00
Terminal UI library with rich, interactive widgets — written in Golang
Go to file
Daniel P. Berrangé 78031b278f Add support for read only form items
When a form item is readonly, any input events or mouse events that
would cause its value to change are ignored.

Read only items are rendered when text color that matches the label
color to distinguish them from items that accept input.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
2020-05-27 11:15:29 +01:00
demos Added mouse support to presentation demo. TextView "highlighted" callback also receives remaining highlights. 2020-03-29 21:03:36 +02:00
ansi.go ANSI parser now also handles SGR 39 and 49. Fixes #347 2020-01-08 17:16:08 +01:00
application.go Added mouse scrolling to List, Table, TextView, and TreeView. 2020-03-29 21:36:06 +02:00
borders.go added configurable borders 2018-06-09 14:58:29 +02:00
box.go Added getters for common Box attributes. Resolves #427 2020-04-14 13:29:54 +02:00
button.go Added/fixed comments, some structural changes/bugfixes for mouse support. Table, TextView, and TreeView still open. Closes #363 2020-03-27 18:41:44 +01:00
checkbox.go Add support for read only form items 2020-05-27 11:15:29 +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 a clarifying note to the contributing guidelines. 2019-11-27 19:11:06 +01:00
doc.go Minor improvements. 2018-12-26 21:24:39 +01:00
dropdown.go Add support for read only form items 2020-05-27 11:15:29 +01:00
flex.go Don't forward mouse events to nil items in Flex/Grid. Fixes #425 2020-04-04 22:19:02 +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 mouse/keyboard input issues with input fields and forms. Fixes #363 2020-04-14 15:03:31 +02:00
frame.go Added/fixed comments, some structural changes/bugfixes for mouse support. Table, TextView, and TreeView still open. Closes #363 2020-03-27 18:41:44 +01:00
go.mod Update dependencies colorful and runewidth 2020-02-13 15:45:52 -08:00
go.sum Update dependencies colorful and runewidth 2020-02-13 15:45:52 -08:00
grid.go Don't forward mouse events to nil items in Flex/Grid. Fixes #425 2020-04-04 22:19:02 +02:00
inputfield.go Add support for read only form items 2020-05-27 11:15:29 +01:00
LICENSE.txt Replaced license placeholders. Fixes #149 2018-08-04 11:55:25 +02:00
list.go Merge pull request #418 from abitrolly/patch-2 2020-04-14 13:53:51 +02:00
modal.go Added/fixed comments, some structural changes/bugfixes for mouse support. Table, TextView, and TreeView still open. Closes #363 2020-03-27 18:41:44 +01:00
pages.go Added/fixed comments, some structural changes/bugfixes for mouse support. Table, TextView, and TreeView still open. Closes #363 2020-03-27 18:41:44 +01:00
primitive.go Added/fixed comments, some structural changes/bugfixes for mouse support. Table, TextView, and TreeView still open. Closes #363 2020-03-27 18:41:44 +01:00
README.md Don't forward mouse events to nil items in Flex/Grid. Fixes #425 2020-04-04 22:19:02 +02:00
semigraphics.go Removed deprecated funcs/const related to semigraphic changes 2018-06-09 14:58:29 +02:00
styles.go Fixed some comments. 2019-03-09 14:04:59 +01:00
table.go Merge pull request #403 from tslocum/scrolltable 2020-04-14 13:51:03 +02:00
textview.go TextView changed function is always called in a separate goroutine to avoid deadlocks. Fixes #416 2020-04-04 22:46:04 +02:00
treeview.go Also call node.selected on node click 2020-04-29 01:18:31 +00: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 The inner area of a Box does not clamp to screen borders anymore. Consequently added some drawing optimization to primitives. Resolves #405 2020-02-19 18:31:32 +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
  • 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://pkg.go.dev/github.com/rivo/tview for the package's documentation.

Dependencies

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

Your Feedback

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