mirror of
https://github.com/FliegendeWurst/cursive.git
synced 2024-11-08 10:20:39 +00:00
6.8 KiB
6.8 KiB
Changelog
Next version (0.11.2)
API updates
- Bring back
Cursive::set_fps
for <30Hz refresh rates.
Improvements
- Improved printer performance with styled spans.
0.11.1
API updates
- Added manual scrolling methods to
view::scroll::Core
:keep_in_view
,scroll_to
,scroll_to_x
,scroll_to_y
Note: theview::scroll
module is hidden behind an experimental featureunstable_scroll
.
Improvements
- Improved printer performance (thanks to @chrisvest).
Bugfixes
- Fixed
MenuPopup
borders near delimiters.
0.11.0
Breaking changes
Cursive::{ncurses, pancurses, termion}
now returnio::Result<Self>
instead of panicking.Cursive::default()
still unwraps.- Also added
Cursive::try_new
for failible backends.
- Also added
- Replaced
set_fps(i32)
withset_autorefresh(bool)
Finder::find_id()
is renamed tocall_on_id()
, and a properfind_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 aDebugConsole
(cursive::toggle_debug_console()
) - Add user-data to Cursive.
Cursive::set_user_data()
can store some user-defined data structure.Cursive::user_data()
andCursive::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 ofCursive::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
andPanel
0.10.0
New features
- Add
EventTrigger
and updateOnEventView
to use it.- Breaking change: "inner" callbacks for OnEventView now take the event as extra argument.
- Add
Printer::enabled
andEnableableView
to disable whole subtrees. - Add
RadioGroup::on_change
to set a callback on selection change. SelectView
now usesStyledString
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 aResult
.
- Breaking change: crossbeam-channel was updated, and using
Bugfixes
- Fix mouse events on Ubuntu
Doc
- Added examples to most utility types (
XY
,Vec2
, ...)
0.9.2
New features
- Add an optional title to
Panel
- Add
immut1!
,immut2!
andimmut3!
macros to wrap aFnMut
inFn
- SelectView: autojump is now opt-in (jump to an element after a letter is pressed)
Bugfixes
- Fix possible crash with
ListView
andSelectView
in very small spaces - Fix termion backend compilation on non-unix platforms
0.9.1
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
Doc
- Fix Readme and examples with
Cursive::default()
0.9.0
New features
- Cursive now supports third-party backends
- Add generic
ScrollView
wrapper. Removes internal scrolling behaviour fromTextView
. - Callbacks sent through
Cursive::cb_sink()
are now processed instantly, without the need forset_fps
. - Make backend a dynamic choice
- User must select a backend in
Cursive::new
- 3rd party libraries do not need to play with backend features anymore
- User must select a backend in
- Move from
chan
andchan-signals
tocrossbeam-channel
andsignal-hook
- Batch-process events for higher performance
- Add
StackView::find_layer_from_id
- Add
SelectView::insert_item
- Add
TextArea::{enable, disable}
- Reworked
AnyView
SelectView
: Fix mouse events- Return callbacks from manual control methods
SelectView::{set_selection, select_up, select_down, remove_item}
EditView::{set_content, insert, remove}
- Add
rect::Rect
- Add
HideableView
Changes
- Replaced
Cursive::new()
withCursive::default()
- Renamed
Vec4
toMargins
Callbacks
cannot be created from functions that return a value- The returned value used to be completely ignored
AnyView
does not extendView
anymore (instead,View
extendsAnyView
)- If you were using
AnyView
before, you probably need to replace it withView
- If you were using
- Scrolling is now added to a view with
.scrollable()
cb_sink
is now acrossbeam_channel::Sender
instead ofchan::Sender
SelectView::selection
now returns anOption<Rc<T>>
instead of justRc<T>
. It will returnNone
if theSelectView
is empty.
0.8.1
New features
- 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
New features
- Style (breaking change):
- Added support for bold/italic/underlined text
- Added
StyledString
for markup text - Refactored line-break module
- Colors (breaking change):
- Added ColorStyle and PaletteColor for more flexible colored text
- Buttons:
- Added
Dialog::buttons
to iterate on buttons - Added
Button::set_label
andButton::label
- Added
- TextView:
- Added TextContent, a way to separate model and view for TextView
- Added manual scrolling methods
- Allow multiple global callbacks per event
- Allow buttons and delimiters in top-level menubar
- StackView:
- Added
StackView::move_layer
to re-order layers StackView::pop_layer
now returns the pop'ed view- Added
StackView::reposition_layer
to move a layer around
- Added
- Dialog: added
Dialog::focus(&self)
- SelectView: added
SelectView::selected
Cursive::cb_sink
now acceptsFnOnce
(previouslyFn
only)
Bugfixes
- Fix a bug in
TextArea::set_content
- Fix
Color::from_256colors
for grayscale colors - Fix resize detection on windows
- Fix possible panic with weird input on pancurses
- Fix possible panic in ListView layout
Doc
- Add per-distributions instructions to install ncurses
- Improved comments in examples
- Improve doc for
Cursive::find_id
- Improve doc for
Identifiable::with_id
- Include Changelog