tui-rs/CHANGELOG.md
2019-11-29 10:05:06 +01:00

6.0 KiB

Changelog

To be released

v0.7.0 - 2019-11-29

### Changed

  • Use Constraint instead of integers to specify the widths of the Table widget's columns. This will allow more responsive tables.
Table::new(header, row)
  .widths(&[15, 15, 10])
  .render(f, chunk);

becomes:

Table::new(header, row)
  .widths(&[
    Constraint::Length(15),
    Constraint::Length(15),
    Constraint::Length(10),
  ])
  .render(f, chunk);
  • Bump crossterm to 0.13.
  • Use Github Actions for CI (Travis and Azure Pipelines integrations have been deleted).

### Added

  • Add support for horizontal and vertical margins in Layout.

v0.6.2 - 2019-07-16

### Added

  • Text implements PartialEq

### Fixed

  • Avoid overflow errors in canvas

## v0.6.1 - 2019-06-16

### Fixed

  • Avoid a division by zero when all values in a barchart are equal to 0.
  • Fix the inverted cursor position in the curses backend.
  • Ensure that the correct terminal size is returned when using the crossterm backend.
  • Avoid highlighting the separator after the selected item in the Tabs widget.

## v0.6.0 - 2019-05-18

### Changed

  • Update crossterm backend

## 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