[−][src]Struct 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); } });
Implementations
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 Default for ProgressBar
[src]
pub fn default() -> ProgressBar
[src]
impl View for ProgressBar
[src]
pub fn draw(&self, printer: &Printer<'_, '_>)
[src]
pub fn layout(&mut self, XY<usize>)
[src]
pub fn needs_relayout(&self) -> bool
[src]
pub fn required_size(&mut self, constraint: XY<usize>) -> XY<usize>
[src]
pub fn on_event(&mut self, Event) -> EventResult
[src]
pub fn call_on_any(
&mut self,
&Selector<'_>,
&'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
[src]
&mut self,
&Selector<'_>,
&'a mut (dyn FnMut(&mut (dyn View + 'static)) + 'a)
)
pub fn focus_view(&mut self, &Selector<'_>) -> Result<(), ()>
[src]
pub fn take_focus(&mut self, source: Direction) -> bool
[src]
pub fn important_area(&self, view_size: XY<usize>) -> Rect
[src]
pub fn type_name(&self) -> &'static str
[src]
Auto Trait Implementations
impl !RefUnwindSafe for ProgressBar
[src]
impl !Send for ProgressBar
[src]
impl !Sync for ProgressBar
[src]
impl Unpin for ProgressBar
[src]
impl !UnwindSafe for ProgressBar
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> AnyView for T where
T: View,
[src]
T: View,
pub fn as_any(&self) -> &(dyn Any + 'static)
[src]
Downcast self to a Any
.
pub fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
[src]
Downcast self to a mutable Any
.
pub fn as_boxed_any(self: Box<T, Global>) -> Box<dyn Any + 'static, Global>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Erased for T
impl<T> Finder for T where
T: View,
[src]
T: View,
pub fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View,
[src]
F: FnOnce(&mut V) -> R,
V: View,
pub fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View,
[src]
F: FnOnce(&mut V) -> R,
V: View,
pub fn call_on_id<V, F, R>(&mut self, id: &str, callback: F) -> Option<R> where
F: FnOnce(&mut V) -> R,
V: View,
[src]
F: FnOnce(&mut V) -> R,
V: View,
pub fn find_name<V>(
&mut self,
name: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
[src]
&mut self,
name: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
pub fn find_id<V>(
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
[src]
&mut self,
id: &str
) -> Option<OwningHandle<OwningRef<Rc<RefCell<V>>, RefCell<V>>, RefMut<'static, V>>> where
V: View,
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> IntoBoxedView for T where
T: View,
[src]
T: View,
pub fn as_boxed_view(self) -> Box<dyn View + 'static, Global>
[src]
impl<T> Nameable for T where
T: View,
[src]
T: View,
pub fn with_name<S>(self, name: S) -> NamedView<Self> where
S: Into<String>,
[src]
S: Into<String>,
pub fn with_id<S>(self, id: S) -> NamedView<Self> where
S: Into<String>,
[src]
S: Into<String>,
impl<T> Resizable for T where
T: View,
[src]
T: View,
pub fn boxed(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
[src]
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
pub fn resized(
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
[src]
self,
width: SizeConstraint,
height: SizeConstraint
) -> ResizedView<Self>
pub fn fixed_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
pub fn fixed_width(self, width: usize) -> ResizedView<Self>
[src]
pub fn fixed_height(self, height: usize) -> ResizedView<Self>
[src]
pub fn full_screen(self) -> ResizedView<Self>
[src]
pub fn full_width(self) -> ResizedView<Self>
[src]
pub fn full_height(self) -> ResizedView<Self>
[src]
pub fn max_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
pub fn max_width(self, max_width: usize) -> ResizedView<Self>
[src]
pub fn max_height(self, max_height: usize) -> ResizedView<Self>
[src]
pub fn min_size<S>(self, size: S) -> ResizedView<Self> where
S: Into<XY<usize>>,
[src]
S: Into<XY<usize>>,
pub fn min_width(self, min_width: usize) -> ResizedView<Self>
[src]
pub fn min_height(self, min_height: usize) -> ResizedView<Self>
[src]
impl<T> Scrollable for T where
T: View,
[src]
T: View,
pub fn scrollable(self) -> ScrollView<Self>
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> 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.