You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tui-rs/CHANGELOG.md

4.9 KiB

Changelog

To be released

## v0.5.1 - 2019-04-14

Fixed

  • Fix a panic in the Sparkline widget

v0.5.0 - 2019-03-10

Added

  • Add a new curses backend (with Windows support thanks to pancurses).
  • Add Backend::get_cursor and Backend::set_cursor methods to query and set the position of the cursor.
  • Add more constructors to the Crossterm backend.
  • Add a demo for all backends using a shared UI and application state.
  • Add Ratio as a new variant of layout Constraint. It can be used to define exact ratios constraints.

Changed

  • Add support for multiple modifiers on the same Style by changing Modifier from an enum to a bitflags struct.

So instead of writing:

let style = Style::default().modifier(Modifier::Italic);

one should use:

let style = Style::default().modifier(Modifier::ITALIC);
// or
let style = Style::default().modifier(Modifier::ITALIC | Modifier::BOLD);

Fixed

  • Ensure correct behavoir of the alternate screens with the Crossterm backend.
  • Fix out of bounds panic when two Buffer are merged.

v0.4.0 - 2019-02-03

Added

  • Add a new canvas shape: Rectangle.
  • Official support of Crossterm backend.
  • Make it possible to choose the divider between Tabs.
  • Add word wrapping on Paragraph.
  • The gauge widget accepts a ratio (f64 between 0 and 1) in addition of a percentage.

Changed

  • Upgrade to Rust 2018 edition.

Fixed

  • Fix rendering of double-width characters.
  • Fix race condition on the size of the terminal and expose a size that is safe to use when drawing through Frame::size.
  • Prevent unsigned int overflow on large screens.

v0.3.0 - 2018-11-04

Added

  • Add experimental test backend

v0.3.0-beta.3 - 2018-09-24

Changed

  • show_cursor is called when Terminal is dropped if the cursor is hidden.

v0.3.0-beta.2 - 2018-09-23

Changed

  • Remove custom termion backends. This is motivated by the fact that termion structs are meant to be combined/wrapped to provide additional functionalities to the terminal (e.g AlternateScreen, Mouse support, ...). Thus providing exclusive types do not make a lot of sense and give a false hint that additional features cannot be used together. The recommended approach is now to create your own version of stdout:
let stdout = io::stdout().into_raw_mode()?;
let stdout = MouseTerminal::from(stdout);
let stdout = AlternateScreen::from(stdout);

and then to create the corresponding termion backend:

let backend = TermionBackend::new(stdout);

The resulting code is more verbose but it works with all combinations of additional termion features.

v0.3.0-beta.1 - 2018-09-08

Changed

  • Replace Item by a generic and flexible Text that can be used in both Paragraph and List widgets.
  • Remove unecessary borrows on Style.

v0.3.0-beta.0 - 2018-09-04

Added

  • Add a basic Crossterm backend

Changed

  • Remove Group and introduce Layout in its place
    • Terminal is no longer required to compute a layout
    • Size has been renamed Constraint
  • Widgets are rendered on a Frame instead of a Terminal in order to avoid mixing draw and render calls
  • draw on Terminal expects a closure where the UI is built by rendering widgets on the given Frame
  • Update Widget trait
    • draw takes area by value
    • render takes a Frame instead of a Terminal
  • All widgets use the consumable builder pattern
  • SelectableList can have no selected item and the highlight symbol is hidden in this case
  • Remove markup langage inside Paragraph. Paragraph now expects an iterator of Text items

v0.2.3 - 2018-06-09

Added

  • Add start_corner option for List
  • Add more text aligment options for Paragraph

v0.2.2 - 2018-05-06

Added

  • Terminal implements Debug

Changed

  • Use FnOnce instead of FnMut in Group::render

v0.2.1 - 2018-04-01

Added

  • Add AlternateScreenBackend in termion backend
  • Add TermionBackend::with_stdout in order to let an user of the library provides its own termion struct
  • Add tests and documentation for Buffer::pos_of
  • Remove leading whitespaces when wrapping text

Fixed

  • Fix debug_assert in Buffer::pos_of
  • Pass the style of SelectableList to the underlying List
  • Fix missing character when wrapping text
  • Fix panic when specifying layout constraints

v0.2.0 - 2017-12-26

Added

  • Add MouseBackend in termion backend to handle scroll and mouse events
  • Add generic Item for items in a List

Changed

  • Rename TermionBackend to RawBackend (to distinguish it from the MouseBackend)

  • Generic parameters for List to allow passing iterators as items

  • Generic parameters for Table to allow using iterators as rows and header

  • Generic parameters for Tabs

  • Rename border bitflags to Borders

  • Run latest rustfmt on all sources

Removed

  • Drop log4rs as a dev-dependencies in favor of stderrlog