All Versions
33
Latest Version
Avg Release Cycle
56 days
Latest Release
414 days ago

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.
  • v0.9.4 Changes

    May 12, 2020

    πŸ› Bug Fixes

    • Ignore zero-width graphemes in Buffer::set_stringn.
  • v0.9.3 Changes

    May 11, 2020

    πŸ› Bug Fixes

    • πŸ›  Fix usize overflows in widgets::Chart when a dataset is empty.
  • v0.9.2 Changes

    May 10, 2020

    πŸ› Bug Fixes

    • πŸ›  Fix usize overflows in widgets::canvas::Line drawing algorithm.
  • v0.9.1 Changes

    April 16, 2020

    πŸ› Bug Fixes

    • The List widget now takes into account the width of the highlight_symbol when calculating the total width of its items. It prevents items to overflow outside of the widget area.
  • 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 to Widget::render and the signature has ⚑️ been updated to reflect that widgets are consumable objects. Thus the method takes self 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 a Canvas widgets. Instead of returning an iterator over its points, a Shape is given a Painter object that provides a paint as well as a get_point method. This gives the Shape more information about the surface it will be drawn to. In particular, this change allows the Line 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 associated ListState of the List 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 of Axis.
  • v0.7.0 Changes

    November 29, 2019

    πŸ’₯ Breaking Changes

    • πŸ‘‰ 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).

    πŸ”‹ Features

    • βž• Add support for horizontal and vertical margins in Layout.
  • 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.