[−][src]Struct fui::cursive::views::ProgressBar
Animated bar showing a progress value.
This bar has an internal counter, and adapts the length of the displayed bar to the relative position of the counter between a minimum and maximum values.
It also prints a customizable text in the center of the bar, which defaults to the progression percentage.
The bar defaults to the current theme's highlight color, but that can be customized.
Example
let bar = ProgressBar::new() .with_task(|counter| { // This closure is called in parallel. for _ in 0..100 { // Here we can communicate some // advancement back to the bar. counter.tick(1); } });
Methods
impl ProgressBar
[src]
pub fn new() -> ProgressBar
[src]
Creates a new progress bar.
Default values:
min
: 0max
: 100value
: 0
pub fn with_value(self, value: Counter) -> ProgressBar
[src]
Sets the value to follow.
Use this to manually control the progress to display
by directly modifying the value pointed to by value
.
pub fn start<F>(&mut self, f: F) where
F: 'static + Send + FnOnce(Counter),
[src]
F: 'static + Send + FnOnce(Counter),
Starts a function in a separate thread, and monitor the progress.
f
will be given a Counter
to increment the bar's progress.
This does not reset the value, so it can be called several times to advance the progress in multiple sessions.
pub fn with_task<F>(self, task: F) -> ProgressBar where
F: 'static + Send + FnOnce(Counter),
[src]
F: 'static + Send + FnOnce(Counter),
Starts a function in a separate thread, and monitor the progress.
Chainable variant.
pub fn with_label<F>(self, label_maker: F) -> ProgressBar where
F: 'static + Fn(usize, (usize, usize)) -> String,
[src]
F: 'static + Fn(usize, (usize, usize)) -> String,
Sets the label generator.
The given function will be called with (value, (min, max))
.
Its output will be used as the label to print inside the progress bar.
The default one shows a percentage progress:
fn make_progress(value: usize, (min, max): (usize, usize)) -> String { let percent = 101 * (value - min) / (1 + max - min); format!("{} %", percent) }
pub fn min(self, min: usize) -> ProgressBar
[src]
Sets the minimum value.
When value
equals min
, the bar is at the minimum level.
If self.min > max
, self.min
is set to max
.
pub fn max(self, max: usize) -> ProgressBar
[src]
Sets the maximum value.
When value
equals max
, the bar is at the maximum level.
If min > self.max
, self.max
is set to min
.
pub fn range(self, min: usize, max: usize) -> ProgressBar
[src]
Sets the min
and max
range for the value.
If min > max
, swap the two values.
pub fn set_value(&mut self, value: usize)
[src]
Sets the current value.
Value is clamped between min
and max
.
pub fn set_color<C>(&mut self, color: C) where
C: Into<ColorType>,
[src]
C: Into<ColorType>,
Sets the color style.
The default color is PaletteColor::Highlight
.
pub fn with_color<C>(self, color: C) -> ProgressBar where
C: Into<ColorType>,
[src]
C: Into<ColorType>,
Sets the color style.
Chainable variant of set_color
.
Trait Implementations
impl View for ProgressBar
[src]
fn draw(&self, printer: &Printer)
[src]
fn layout(&mut self, XY<usize>)
[src]
Called once the size for this view has been decided. Read more
fn needs_relayout(&self) -> bool
[src]
Should return true
if the view content changed since the last call to layout()
. Read more
fn required_size(&mut self, constraint: XY<usize>) -> XY<usize>
[src]
Returns the minimum size the view requires with the given restrictions. Read more
fn on_event(&mut self, Event) -> EventResult
[src]
Called when an event is received (key press, mouse event, ...). Read more
fn call_on_any(
&mut self,
&Selector,
Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
[src]
&mut self,
&Selector,
Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
Runs a closure on the view identified by the given selector. Read more
fn focus_view(&mut self, &Selector) -> Result<(), ()>
[src]
Moves the focus to the view identified by the given selector. Read more
fn take_focus(&mut self, source: Direction) -> bool
[src]
This view is offered focus. Will it take it? Read more
fn important_area(&self, view_size: XY<usize>) -> Rect
[src]
What part of the view is important and should be visible? Read more
impl Default for ProgressBar
[src]
fn default() -> ProgressBar
[src]
Auto Trait Implementations
impl !Send for ProgressBar
impl !Sync for ProgressBar
Blanket Implementations
impl<T> From for T
[src]
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> View for T where
T: ViewWrapper,
[src]
T: ViewWrapper,
fn draw(&self, printer: &Printer)
[src]
fn required_size(&mut self, req: XY<usize>) -> XY<usize>
[src]
fn on_event(&mut self, ch: Event) -> EventResult
[src]
fn layout(&mut self, size: XY<usize>)
[src]
fn take_focus(&mut self, source: Direction) -> bool
[src]
fn call_on_any(
&mut self,
selector: &Selector,
callback: Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
[src]
&mut self,
selector: &Selector,
callback: Box<dyn FnMut(&mut (dyn Any + 'static)) + 'a>
)
fn needs_relayout(&self) -> bool
[src]
fn focus_view(&mut self, selector: &Selector) -> Result<(), ()>
[src]
fn important_area(&self, size: XY<usize>) -> Rect
[src]
impl<T> With for T
[src]
fn with<F>(self, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
Calls the given closure on self
.
fn try_with<E, F>(self, f: F) -> Result<Self, E> where
F: FnOnce(&mut Self) -> Result<(), E>,
[src]
F: FnOnce(&mut Self) -> Result<(), E>,
Calls the given closure on self
.
fn with_if<F>(self, condition: bool, f: F) -> Self where
F: FnOnce(&mut Self),
[src]
F: FnOnce(&mut Self),
Calls the given closure if condition == true
.
impl<T> Identifiable for T where
T: View,
[src]
T: View,
fn with_id<S>(self, id: S) -> IdView<Self> where
S: Into<String>,
[src]
S: Into<String>,
Wraps this view into an IdView
with the given id. Read more
impl<T> Finder for T where
T: View,
[src]
T: View,
fn call_on<V, F, R>(&mut self, sel: &Selector, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View + Any,
[src]
F: FnOnce(&mut V) -> R,
V: View + Any,
fn call_on_id<V, F, R>(&mut self, id: &str, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View + Any,
[src]
F: FnOnce(&mut V) -> R,
V: View + Any,
Convenient method to use call_on
with a view::Selector::Id
.
fn find_id<V>(
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View + Any,
[src]
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View + Any,
Convenient method to find a view wrapped in an [IdView
]. Read more
impl<T> Boxable for T where
T: View,
[src]
T: View,
fn boxed(self, width: SizeConstraint, height: SizeConstraint) -> BoxView<Self>
[src]
Wraps self
in a BoxView
with the given size constraints.
fn fixed_size<S>(self, size: S) -> BoxView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
Wraps self
into a fixed-size BoxView
.
fn fixed_width(self, width: usize) -> BoxView<Self>
[src]
Wraps self
into a fixed-width BoxView
.
fn fixed_height(self, height: usize) -> BoxView<Self>
[src]
Wraps self
into a fixed-width BoxView
.
fn full_screen(self) -> BoxView<Self>
[src]
Wraps self
into a full-screen BoxView
.
fn full_width(self) -> BoxView<Self>
[src]
Wraps self
into a full-width BoxView
.
fn full_height(self) -> BoxView<Self>
[src]
Wraps self
into a full-height BoxView
.
fn max_size<S>(self, size: S) -> BoxView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
Wraps self
into a limited-size BoxView
.
fn max_width(self, max_width: usize) -> BoxView<Self>
[src]
Wraps self
into a limited-width BoxView
.
fn max_height(self, max_height: usize) -> BoxView<Self>
[src]
Wraps self
into a limited-height BoxView
.
fn min_size<S>(self, size: S) -> BoxView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
Wraps self
into a BoxView
at least sized size
.
fn min_width(self, min_width: usize) -> BoxView<Self>
[src]
Wraps self
in a BoxView
at least min_width
wide.
fn min_height(self, min_height: usize) -> BoxView<Self>
[src]
Wraps self
in a BoxView
at least min_height
tall.
impl<T> Scrollable for T where
T: View,
[src]
T: View,
fn scrollable(self) -> ScrollView<Self>
[src]
Wraps self
in a ScrollView
.
impl<T> AnyView for T where
T: View,
[src]
T: View,
fn as_any(&self) -> &(dyn Any + 'static)
[src]
Downcast self to a Any
.
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
Downcast self to a mutable Any
.
ⓘImportant traits for Box<R>fn as_boxed_any(self: Box<T>) -> Box<dyn Any + 'static>
[src]
impl<T> IntoBoxedView for T where
T: View,
[src]
T: View,