Cursive Versions Save

A Text User Interface library for the Rust programming language

0.9.1

5 years ago

New features

  • Add Cursive::on_event to send simulated events.
  • Add EventResult::and to combine callbacks.
  • Allow custom color in ProgressBar.

Bugfixes

  • LinearLayout:
    • Better geometry computation with constrained size
    • Fixed cache invalidation
    • Fix possible panic when removing children
  • ScrollView:
    • Fix possible panic with full-height scrollbar
    • Fix possible panic with empty content
    • Fix cache
  • Fix menubar focus after action
  • Pin enumset version (fix compilation error)

0.9.0

5 years ago

This releases is quite large and includes some breaking changes:

  • Cursive::new() has been renamed Cursive::default(). Cursive::new is now used to select a backend, allowing third-party backends.
  • Scrolling is now handled by a new view wrapper, ScrollView. For TextView, SelectView and ListView, it is opt-in, by wrapping it in a ScrollView or calling .scrollable() from the Scrollable trait.
  • Cursive::cb_sink() now returns a crossbeam_channel::Sender instead of chan::Sender. The API is mostly similar.
  • SelectView::selection now returns a Option<Rc<T>> instead of panicking on an empty list.
  • The features of AnyView have been merged into the regular View, so you should not need to use AnyView directly, and can only use View.
  • Vec4 has been renamed to Margins.

In addition, many non-breaking changes are present as well:

  • Callbacks sent through Cursive::cb_sink() are now processed instantly, without the need for set_fps.
  • Backends are now a dynamic choice rather than a comile-time selection.
    • This means library do not need to bother with backend features anymore
    • Features are still there to add available backends, but they are mutually compatible.
  • Events are batch-processed, resulting in higher performance when a lot of events are sent at once (for instance when scrolling with the mouse).
  • Some methods now return a callback:
    • SelectView::{set_selection, select_up, select_down, remove_item}
    • EditView::{set_content, insert, remove}
  • API additions:
    • StackView::find_layer_from_id
    • SelectView::insert_item
    • TextArea::{enable, disable}
    • rect::Rect
  • Various bugfixes

0.8.2

5 years ago
  • Adds Printer::with_theme to apply a different theme to a subtree.

0.8.1

6 years ago
  • Add Cursive::clear_global_callbacks
  • Bugfixes:
    • Fix non-ASCII input with pancurses backend
    • Fix StackView::move_layer
    • Fix layout computation for SelectView
    • Remove unused maplit dependency for termion and blt backends

0.8.0

6 years ago

Major update. Check CHANGELOG.md for complete list.

Highlights:

  • Add styled text support.
    • TextView can now display a StyledString. A StyledString can be built from multiple sources, including parsing markdown text.
  • Fixed line-breaking algorithm (now doesn't break at invalid locations).
  • Refactored ColorStyle.
  • Added TextContent to manage the content from a TextView remotely.
  • StackView: added methods to re-order the layers, and reposition them on screen.
  • Cursive::cb_sink can now accept FnOnce callbacks
  • Various methods were added to query/update the selection/focus for most views.
  • Usual bunch of bugfixes.

0.7.5

6 years ago
  • Add mouse support to pancurses
  • Better key modifier detection on ncurses backend
  • Fix possible panic in TextArea::set_content
  • Add TextArea::cursor(&self) -> usize and TextArea::set_cursor(&mut self, usize)
  • Use Vec::splice instead of VecExt from the odds crate. This may require rustc > 1.21

0.7.4

6 years ago
  • Fix drawing bug in LinearLayout
  • Update pancurses backend to 0.12

0.7.3

6 years ago
  • Correctly ignore unused keys in SelectView
  • Fix a possible crash with LinearLayout

0.7.2

6 years ago
  • Fix mouse-related bugs in ListView and SelectView.

0.7.1

6 years ago
  • Bugfixes regarding bad mouse handling