termdash v0.7.0 Release NotesRelease Date: 2019-02-24 // almost 3 years ago
🆕 New widgets
- The Button widget.
👌 Improvements to documentation
- 📦 Clearly marked the public API surface by moving private packages into internal directory.
- Started a GitHub wiki for Termdash.
👌 Improvements to the LineChart widget
- The LineChart widget can display X axis labels in vertical orientation.
- The LineChart widget allows the user to specify a custom scale for the Y axis.
- The LineChart widget now has an option that disables scaling of the X axis. Useful for applications that want to continuously feed data and make them "roll" through the linechart.
- The LineChart widget now has a method that returns the observed capacity of the LineChart the last time Draw was called.
- 👍 The LineChart widget now supports zoom of the content triggered by mouse events.
👌 Improvements to the Text widget
- The Text widget now has a Write option that atomically replaces the entire text content.
👌 Improvements to the infrastructure
- A function that draws text vertically.
- A non-blocking event distribution system that can throttle repetitive events.
- Generalized mouse button FSM for use in widgets that need to track mouse button clicks.
- 0️⃣ Termbox is now initialized in 256 color mode by default.
- The infrastructure now uses the non-blocking event distribution system to distribute events to subscribers. Each widget is now an individual subscriber.
- The infrastructure now throttles event driven screen redraw rather than redrawing for each input event.
- Widgets can now specify the scope at which they want to receive keyboard and mouse events.
💥 Breaking API changes
- The constructors of all the widgets now also return an error so that they can validate the options. This is a breaking change for the following widgets: BarChart, Gauge, LineChart, SparkLine, Text. The callers will have to handle the returned error.
- 📦 The container package no longer exports separate methods to receive Keyboard and Mouse events which were replaced by a Subscribe method for the event distribution system. This shouldn't affect users as the removed methods aren't needed by container users.
- The widgetapi.Options struct now uses an enum instead of a boolean when widget specifies if it wants keyboard or mouse events. This only impacts development of new widgets.
- The LineChart widget now correctly determines the Y axis scale when multiple series are provided.
- ⚡️ Lint issues in the codebase, and updated Travis configuration so that golint is executed on every run.
- Termdash now correctly starts in locales like zh_CN.UTF-8 where some of the characters it uses internally can have ambiguous width.