2017-12-26 20:11:55 +00:00
|
|
|
|
# Changelog
|
|
|
|
|
|
2019-02-03 22:03:48 +00:00
|
|
|
|
## To be released
|
2019-01-06 11:57:06 +00:00
|
|
|
|
|
2019-03-10 17:21:02 +00:00
|
|
|
|
## 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:
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
let style = Style::default().modifier(Modifier::Italic);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
one should use:
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
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.
|
|
|
|
|
|
2019-02-03 22:03:48 +00:00
|
|
|
|
## 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.
|
2018-04-15 19:44:45 +00:00
|
|
|
|
|
2018-11-04 19:25:07 +00:00
|
|
|
|
## v0.3.0 - 2018-11-04
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
* Add experimental test backend
|
|
|
|
|
|
2018-09-24 06:09:00 +00:00
|
|
|
|
## 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
|
2018-09-23 19:16:32 +00:00
|
|
|
|
|
|
|
|
|
### 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`:
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
```rust
|
|
|
|
|
let backend = TermionBackend::new(stdout);
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The resulting code is more verbose but it works with all combinations of
|
|
|
|
|
additional `termion` features.
|
|
|
|
|
|
2018-09-24 06:09:00 +00:00
|
|
|
|
## v0.3.0-beta.1 - 2018-09-08
|
2018-09-08 07:23:22 +00:00
|
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
|
|
* Replace `Item` by a generic and flexible `Text` that can be used in both
|
|
|
|
|
`Paragraph` and `List` widgets.
|
|
|
|
|
* Remove unecessary borrows on `Style`.
|
|
|
|
|
|
2018-09-04 20:52:18 +00:00
|
|
|
|
## 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
|
|
|
|
|
|
2018-06-09 09:42:27 +00:00
|
|
|
|
## v0.2.3 - 2018-06-09
|
|
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
* Add `start_corner` option for `List`
|
|
|
|
|
* Add more text aligment options for `Paragraph`
|
|
|
|
|
|
2018-05-06 10:11:55 +00:00
|
|
|
|
## v0.2.2 - 2018-05-06
|
|
|
|
|
|
2018-04-15 19:44:45 +00:00
|
|
|
|
### Added
|
|
|
|
|
|
|
|
|
|
* `Terminal` implements `Debug`
|
|
|
|
|
|
2018-05-06 08:20:22 +00:00
|
|
|
|
### Changed
|
|
|
|
|
|
|
|
|
|
* Use `FnOnce` instead of `FnMut` in Group::render
|
|
|
|
|
|
2018-04-01 17:42:50 +00:00
|
|
|
|
## v0.2.1 - 2018-04-01
|
2018-01-27 08:40:42 +00:00
|
|
|
|
|
2018-04-01 08:44:30 +00:00
|
|
|
|
### Added
|
2018-01-27 08:40:42 +00:00
|
|
|
|
|
|
|
|
|
* Add `AlternateScreenBackend` in `termion` backend
|
|
|
|
|
* Add `TermionBackend::with_stdout` in order to let an user of the library
|
|
|
|
|
provides its own termion struct
|
2018-04-01 10:39:17 +00:00
|
|
|
|
* Add tests and documentation for `Buffer::pos_of`
|
2018-04-01 16:58:53 +00:00
|
|
|
|
* Remove leading whitespaces when wrapping text
|
2018-01-27 08:40:42 +00:00
|
|
|
|
|
2018-04-01 08:44:30 +00:00
|
|
|
|
### Fixed
|
|
|
|
|
|
2018-04-01 10:39:17 +00:00
|
|
|
|
* Fix `debug_assert` in `Buffer::pos_of`
|
2018-04-01 08:44:30 +00:00
|
|
|
|
* Pass the style of `SelectableList` to the underlying `List`
|
2018-04-01 16:58:53 +00:00
|
|
|
|
* Fix missing character when wrapping text
|
|
|
|
|
* Fix panic when specifying layout constraints
|
2018-04-01 08:44:30 +00:00
|
|
|
|
|
2017-12-26 21:16:24 +00:00
|
|
|
|
## v0.2.0 - 2017-12-26
|
2017-12-26 20:11:55 +00:00
|
|
|
|
|
|
|
|
|
### 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`
|
2017-12-26 20:34:05 +00:00
|
|
|
|
* Rename `border` bitflags to `Borders`
|
2017-12-26 20:11:55 +00:00
|
|
|
|
|
|
|
|
|
* Run latest `rustfmt` on all sources
|
|
|
|
|
|
|
|
|
|
### Removed
|
|
|
|
|
|
|
|
|
|
* Drop `log4rs` as a dev-dependencies in favor of `stderrlog`
|