All Versions
33
Latest Version
Avg Release Cycle
56 days
Latest Release
414 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v0.9.5 Changes
May 21, 2020π Bug Fixes
- π Fix out of bounds panic in
widgets::Tabs
when the widget is rendered on small areas.
- π Fix out of bounds panic in
-
v0.9.4 Changes
May 12, 2020π Bug Fixes
- Ignore zero-width graphemes in
Buffer::set_stringn
.
- Ignore zero-width graphemes in
-
v0.9.3 Changes
May 11, 2020π Bug Fixes
- π Fix usize overflows in
widgets::Chart
when a dataset is empty.
- π Fix usize overflows in
-
v0.9.2 Changes
May 10, 2020π Bug Fixes
- π Fix usize overflows in
widgets::canvas::Line
drawing algorithm.
- π Fix usize overflows in
-
v0.9.1 Changes
April 16, 2020π Bug Fixes
- The
List
widget now takes into account the width of thehighlight_symbol
when calculating the total width of its items. It prevents items to overflow outside of the widget area.
- The
-
v0.9.0 Changes
April 14, 2020π Features
- Introduce stateful widgets, i.e widgets that can take advantage of keeping some state around between two draw calls (#210 goes a bit more into the details).
- π Allow a
Table
row to be selected. ```rust // State initialization let mut state = TableState::default();
// In the terminal.draw closure let header = ["Col1", "Col2", "Col"]; let rows = [ Row::Data(["Row11", "Row12", "Row13"].into_iter()) ]; let table = Table::new(header.into_iter(), rows.into_iter()); f.render_stateful_widget(table, area, &mut state);
// In response to some event: state.select(Some(1));
* β Add a way to choose the type of border used to draw a block. You can now choose from plain, rounded, double and thick lines. * β Add a `graph_type` property on the `Dataset` of a `Chart` widget. By 0οΈβ£ default it will be `Scatter` where the points are drawn as is. An other option is `Line` where a line will be draw between each consecutive points of the dataset. * π Style methods are now const, allowing you to initialize const `Style` objects. * π Improve control over whether the legend in the `Chart` widget is shown or not. You can now set custom constraints using `Chart::hidden_legend_constraints`. * β Add `Table::header_gap` to add some space between the header and the first row. * β Remove `log` from the dependencies * β Add a way to use a restricted set of unicode symbols in several widgets to π improve portability in exchange of a degraded output. (see `BarChart::bar_set`, `Sparkline::bar_set` and `Canvas::marker`). You can check how the `--enhanced-graphics` flag is used in the demos. ### π₯ Breaking Changes * `Widget::render` has been deleted. You should now use `Frame::render_widget` to render a widget on the corresponding `Frame`. This makes the `Widget` implementation totally decoupled from the `Frame`. ```rust // Before Block::default().render(&mut f, size); // After let block = Block::default(); f.render_widget(block, size);
Widget::draw
has been renamed toWidget::render
and the signature has β‘οΈ been updated to reflect that widgets are consumable objects. Thus the method takesself
instead of&mut self
. ```rust // Before impl Widget for MyWidget { fn draw(&mut self, area: Rect, buf: &mut Buffer) { } }
/// After impl Widget for MyWidget { fn render(self, arera: Rect, buf: &mut Buffer) { } }
* `Widget::background` has been replaced by `Buffer::set_background` ```rust // Before impl Widget for MyWidget { fn render(self, arera: Rect, buf: &mut Buffer) { self.background(area, buf, self.style.bg); } } // After impl Widget for MyWidget { fn render(self, arera: Rect, buf: &mut Buffer) { buf.set_background(area, self.style.bg); } }
- β‘οΈ Update the
Shape
trait for objects that can be draw on aCanvas
widgets. Instead of returning an iterator over its points, aShape
is given aPainter
object that provides apaint
as well as aget_point
method. This gives theShape
more information about the surface it will be drawn to. In particular, this change allows theLine
shape to use a more precise and efficient drawing algorithm (Bresenham's line algorithm). SelectableList
has been deleted. You can now take advantage of the associatedListState
of theList
widget to select an item. ```rust // Before List::new(&["Item1", "Item2", "Item3"]) .select(Some(1)) .render(&mut f, area);
// After
// State initialization let mut state = ListState::default();
// In the terminal.draw closure let list = List::new(&["Item1", "Item2", "Item3"]); f.render_stateful_widget(list, area, &mut state);
// In response to some events state.select(Some(1));
* π `widgets::Marker` has been moved to `symbols::Marker`
-
v0.8.0 Changes
December 15, 2019π₯ Breaking Changes
- β¬οΈ Bump crossterm to 0.14.
- β Add cross symbol to the symbols list.
π Bug Fixes
- π
Use the value of
title_style
to style the title ofAxis
.
-
v0.7.0 Changes
November 29, 2019π₯ Breaking Changes
- π 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).
π Features
- β Add support for horizontal and vertical margins in
Layout
.
- π Use
-
v0.6.2 Changes
July 16, 2019Β 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.6.1 Changes
June 16, 2019π Bug Fixes
- 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.