Cursive v0.11.0 Release Notes

Release Date: 2019-03-16 // about 5 years ago
  • ๐Ÿ’ฅ Breaking changes

    • Cursive::{ncurses, pancurses, termion} now return io::Result<Self> instead of panicking. Cursive::default() still unwraps.
      • Also added Cursive::try_new for failible backends.
    • Replaced set_fps(i32) with set_autorefresh(bool)
    • Finder::find_id() is renamed to call_on_id(), and a proper find_id() was added instead.
    • โšก๏ธ Updated the Backend trait for a simpler input system
    • โšก๏ธ Updated to Rust 2018 edition (now requires rustc > 1.31)
    • Cursive::clear() now takes &mut self

    โšก๏ธ API updates

    • โž• Add a logging implementation (logger::init()) and a DebugConsole (cursive::toggle_debug_console())
    • โž• Add user-data to Cursive.
      • Cursive::set_user_data() can store some user-defined data structure.
      • Cursive::user_data() and Cursive::with_user_data() can be used to access the data.
    • โž• Add StackView::remove_layer()
    • โž• Add CircularFocus view (and bring proper circular focus to dialogs)
    • โž• Add HideableView::is_visible()
    • โž• Add type CbSink = Sender<Box<CbFunc>> as an alias for the return type of Cursive::cb_sink()
    • Add LinearLayout::{insert_child, swap_children, set_weight} for more in-place modifications.
    • Add Printer::{cropped_centered,shrinked_centered}

    ๐Ÿ‘Œ Improvements

    • ๐ŸŽ Updated termion backend to use direct /dev/tty access for improved performance.
    • Enabled raw mode for ncurses and pancurses. Among other improvements, this lets applications receive Ctrl+S and Ctrl+Q events.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed overflow check for titles in Dialog and Panel