diff options
Diffstat (limited to 'vendor/github.com/buger/goterm/README.md')
-rw-r--r-- | vendor/github.com/buger/goterm/README.md | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/vendor/github.com/buger/goterm/README.md b/vendor/github.com/buger/goterm/README.md new file mode 100644 index 000000000..536b7b885 --- /dev/null +++ b/vendor/github.com/buger/goterm/README.md @@ -0,0 +1,119 @@ +## Description + +This library provides basic building blocks for building advanced console UIs. + +Initially created for [Gor](http://github.com/buger/gor). + +Full API documentation: http://godoc.org/github.com/buger/goterm + +## Basic usage + +Full screen console app, printing current time: + +```go +import ( + tm "github.com/buger/goterm" + "time" +) + +func main() { + tm.Clear() // Clear current screen + + for { + // By moving cursor to top-left position we ensure that console output + // will be overwritten each time, instead of adding new. + tm.MoveCursor(1,1) + + tm.Println("Current Time:", time.Now().Format(time.RFC1123)) + + tm.Flush() // Call it every time at the end of rendering + + time.Sleep(time.Second) + } +} +``` + +This can be seen in [examples/time_example.go](examples/time_example.go). To +run it yourself, go into your `$GOPATH/src/github.com/buger/goterm` directory +and run `go run ./examples/time_example.go` + + +Print red bold message on white background: + +```go +tm.Println(tm.Background(tm.Color(tm.Bold("Important header"), tm.RED), tm.WHITE)) +``` + + +Create box and move it to center of the screen: + +```go +tm.Clear() + +// Create Box with 30% width of current screen, and height of 20 lines +box := tm.NewBox(30|tm.PCT, 20, 0) + +// Add some content to the box +// Note that you can add ANY content, even tables +fmt.Fprint(box, "Some box content") + +// Move Box to approx center of the screen +tm.Print(tm.MoveTo(box.String(), 40|tm.PCT, 40|tm.PCT)) + +tm.Flush() +``` + +This can be found in [examples/box_example.go](examples/box_example.go). + +Draw table: + +```go +// Based on http://golang.org/pkg/text/tabwriter +totals := tm.NewTable(0, 10, 5, ' ', 0) +fmt.Fprintf(totals, "Time\tStarted\tActive\tFinished\n") +fmt.Fprintf(totals, "%s\t%d\t%d\t%d\n", "All", started, started-finished, finished) +tm.Println(totals) +tm.Flush() +``` + +This can be found in [examples/table_example.go](examples/table_example.go). + +## Line charts + +Chart example: + +![screen shot 2013-07-09 at 5 05 37 pm](https://f.cloud.github.com/assets/14009/767676/e3dd35aa-e887-11e2-9cd2-f6451eb26adc.png) + + +```go + import ( + tm "github.com/buger/goterm" + ) + + chart := tm.NewLineChart(100, 20) + + data := new(tm.DataTable) + data.addColumn("Time") + data.addColumn("Sin(x)") + data.addColumn("Cos(x+1)") + + for i := 0.1; i < 10; i += 0.1 { + data.addRow(i, math.Sin(i), math.Cos(i+1)) + } + + tm.Println(chart.Draw(data)) +``` + +This can be found in [examples/chart_example.go](examples/chart_example.go). + +Drawing 2 separate graphs in different scales. Each graph have its own Y axe. + +```go +chart.Flags = tm.DRAW_INDEPENDENT +``` + +Drawing graph with relative scale (Grapwh draw starting from min value instead of zero) + +```go +chart.Flags = tm.DRAW_RELATIVE +``` |