mirror of
https://github.com/fdehau/tui-rs.git
synced 2024-10-30 21:20:22 +00:00
6.0 KiB
6.0 KiB
Changelog
To be released
v0.7.0 - 2019-11-29
### Changed
- Use
Constraint
instead of integers to specify the widths of theTable
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
andBackend::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 layoutConstraint
. It can be used to define exact ratios constraints.
Changed
- Add support for multiple modifiers on the same
Style
by changingModifier
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 whenTerminal
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 thattermion
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 ofstdout
:
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 flexibleText
that can be used in bothParagraph
andList
widgets. - Remove unecessary borrows on
Style
.
v0.3.0-beta.0 - 2018-09-04
Added
- Add a basic
Crossterm
backend
Changed
- Remove
Group
and introduceLayout
in its placeTerminal
is no longer required to compute a layoutSize
has been renamedConstraint
- Widgets are rendered on a
Frame
instead of aTerminal
in order to avoid mixingdraw
andrender
calls draw
onTerminal
expects a closure where the UI is built by rendering widgets on the givenFrame
- Update
Widget
traitdraw
takes area by valuerender
takes aFrame
instead of aTerminal
- 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 ofText
items
v0.2.3 - 2018-06-09
Added
- Add
start_corner
option forList
- Add more text aligment options for
Paragraph
v0.2.2 - 2018-05-06
Added
Terminal
implementsDebug
Changed
- Use
FnOnce
instead ofFnMut
in Group::render
v0.2.1 - 2018-04-01
Added
- Add
AlternateScreenBackend
intermion
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
inBuffer::pos_of
- Pass the style of
SelectableList
to the underlyingList
- Fix missing character when wrapping text
- Fix panic when specifying layout constraints
v0.2.0 - 2017-12-26
Added
- Add
MouseBackend
intermion
backend to handle scroll and mouse events - Add generic
Item
for items in aList
Changed
-
Rename
TermionBackend
toRawBackend
(to distinguish it from theMouseBackend
) -
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 toBorders
-
Run latest
rustfmt
on all sources
Removed
- Drop
log4rs
as a dev-dependencies in favor ofstderrlog