All Versions
15
Latest Version
Avg Release Cycle
65 days
Latest Release
1424 days ago

Changelog History
Page 1

  • v0.15.0 Changes

    May 26, 2020

    ๐Ÿ’ฅ Breaking changes

    • Split library into a backend-agnostic cursive-core and a user-facing cursive.
    • 0๏ธโƒฃ Cursive::default now needs the cursive::CursiveExt trait to be in scope.
    • โšก๏ธ Update dependencies:
      • crossterm to 0.17.
      • enumset to 1.0
      • ahash to 0.3
      • pulldown-cmark to 0.7
    • โž• Add PaletteColor::HighlightText
    • AnyCb now takes a &mut dyn View rather than a &mut dyn Any.

    โšก๏ธ API updates

    • โž• Added cursive::{default,ncurses,pancurses,termion,crossterm,blt,dummy} functions.
    • โž• Add Cursive::debug_name
    • โž• Add ScreensView to move some code away from the Cursive root
      • Reworked global callbacks configuration
      • Ctrl-C can be rewired to no longer exit the application
    • Add SelectView::(try_)iter_mut()
    • ๐Ÿ’… Dialog::{test, info} now accept StyledString as input
    • โž• Add missing functions to Checkbox re: enabled state

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix Ctrl-Z binding for ncurses
    • ๐Ÿ›  Fix potential crash with empty SelectView
    • โž• Add toml and markdown features to docs.rs
  • v0.14.0 Changes

    January 14, 2020

    ๐Ÿ’ฅ Breaking changes

    • cursive::event::AnyCb changed from Box<...> to &mut ..., so users of View::call_on_any no longer need to box their closures.
    • โœ‚ Remove BoxView::squishable.
    • โšก๏ธ Update crossterm to 0.14.
    • โœ‚ Removed From implementations for Margins. Use Margins::lrtb and the like instead.
      • Or Dialog::padding_lrtb.
    • ๐Ÿ—„ Renamed multiple types (old names are still re-exported, but deprecated):
      • BoxView -> ResizedView
      • ViewBox -> BoxedView
      • SizedView -> LastSizeView
      • Identifiable -> Nameable
      • Boxable -> Resizable
      • IdView -> NamedView
      • Selector::Id -> Selector::Name
      • with_id -> with_name
      • call_on_id -> call_on_name
      • find_id -> find_name
      • focus_id -> focus_name

    โšก๏ธ API updates

    • ๐Ÿ’… SelectView::{item, with_all} now accept S: Into<StyledString> for colored labels.
    • Add ScrollView::scroll_to_important_area.
    • Add LinearLayout::set_focus_index.
    • โž• Add XY::{sum, product}.
    • view::scroll is now a public module.
    • Add Cursive::process_events and Cursive::post_events.
      • This gives users finer control than Cursive::step.
    • Layer now has a color option.
    • LinearLayout can now directly add boxed views without re-boxing.
    • โž• Add inner getters to EnableableView.
    • Add PaddedView::get_inner(_mut).
    • โž• Add a bunch of constructors for Margins.
    • โž• Add Dialog::padding_lrtb
    • Add Dialog::set_padding*
    • โž• Add PaddedView::lrtb

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ”„ Changed the default color for TitleSecondary from yellow to light blue.
    • ๐Ÿ”„ Changed the default color for Tertiary from grey to white.
    • โฌ‡๏ธ Reduced dependencies (toml is now optional, removed hashbrown).
    • 0๏ธโƒฃ Cursive::default() now fallbacks do dummy backend if no other is available.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed ScrollView::show_scrollbars().
    • โšก๏ธ Correctly update the offset for ScrollView after focus change.
    • ๐Ÿ›  Fixed layout for BoxView with some size constraints.
    • ๐Ÿ On Windows, do not print unix-specific character during initialization.
    • ๐Ÿ›  Fix out-of-bounds access for some mouse events in MenuPopup
  • v0.13.0 Changes

    January 14, 2020

    ๐Ÿ’ฅ Breaking changes

    • โšก๏ธ Update enum-map fron 0.5 to 0.6

    โšก๏ธ API updates

    • โž• Add Effect::Strikethrough (not supported on ncurses)
    • โž• Add ListView::remove_child
    • Replace xursive::CbFunc with Box<FnOnce>
    • Add ScrollView::{inner_size, is_as_{bottom, top, left, right} }
    • โž• Add getters for current value in SliderView
    • More fields made public in cursive::logger
    • โž• Add a "puppet" backend for testing and instrumentation

    ๐Ÿ‘Œ Improvements

    • ๐ŸŽ Performance improvements for the crossterm backend

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix a possible panic when a TextView is updated asynchronously while it's being layed out.
    • ๐Ÿ›  Fixed weird behaviour of SizeConstraint::Full with ScrollView.
  • v0.12.0 Changes

    May 09, 2019

    ๐Ÿ’ฅ Breaking changes

    • โšก๏ธ Updated enumset from 0.3 to 0.4

    โšก๏ธ API updates

    • ๐Ÿ‘‰ Add Cursive::take_user_data, replaces the current user data with ().
    • Add SliderView::{get_value, get_max_value}.

    ๐Ÿ‘Œ Improvements

    • DebugConsole now has horizontal scrolling enabled.
    • pancurses backend now correctly recognizes the "Enter" key from the numpad as "Enter".
  • v0.11.2 Changes

    April 18, 2019

    โšก๏ธ API updates

    • Bring back Cursive::set_fps for <30Hz refresh rates.
    • โž• Add Cursive::backend_name to get the name of the current backend.
    • โž• Add a new backend based on the crossterm library.
    • โž• Add direct downcast methods to dyn AnyView
    • โž• Add sort methods to SelectView

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘Œ Improved printer performance with styled spans.
  • v0.11.1 Changes

    March 16, 2019

    โšก๏ธ API updates

    • โž• Added manual scrolling methods to view::scroll::Core:
      • keep_in_view, scroll_to, scroll_to_x, scroll_to_y
        Note: the view::scroll module is hidden behind an experimental
        ๐Ÿ”‹ feature unstable_scroll.

    ๐Ÿ‘Œ Improvements

    • ๐Ÿ‘Œ Improved printer performance (thanks to @chrisvest).

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fixed MenuPopup borders near delimiters.
  • v0.11.0 Changes

    March 16, 2019

    ๐Ÿ’ฅ 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
  • v0.10.0 Changes

    December 01, 2018

    ๐Ÿ†• New features

    • โž• Add EventTrigger and update OnEventView to use it.
      • Breaking change: "inner" callbacks for OnEventView now take the event as extra argument.
    • โž• Add Printer::enabled and EnableableView to disable whole subtrees.
    • โž• Add RadioGroup::on_change to set a callback on selection change.
    • ๐Ÿ’… SelectView now uses StyledString to display colored text.
    • โž• Add PaddedView to add padding to any view.
    • โšก๏ธ Update dependencies
      • Breaking change: crossbeam-channel was updated, and using send() now returns a Result.

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix mouse events on Ubuntu

    Doc

    • โž• Added examples to most utility types (XY, Vec2, ...)
  • v0.9.2 Changes

    November 05, 2018

    ๐Ÿ†• New features

    • โž• Add an optional title to Panel
    • โž• Add immut1!, immut2! and immut3! macros to wrap a FnMut in Fn
    • SelectView: autojump is now opt-in (jump to an element after a letter is pressed)

    ๐Ÿ›  Bugfixes

    • ๐Ÿ›  Fix possible crash with ListView and SelectView in very small spaces
    • ๐Ÿ›  Fix termion backend compilation on non-unix platforms
  • v0.9.1 Changes

    September 17, 2018

    ๐Ÿ†• 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)