termdash v0.7.0 Release Notes

Release Date: 2019-02-24 // about 5 years ago
  • โž• Added

    ๐Ÿ†• 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.

    ๐Ÿ”„ Changed

    • 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

    High impact
    • 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.
    Low impact
    • ๐Ÿ“ฆ 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.

    ๐Ÿ›  Fixed

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