Struct cursive::views::ProgressBar [−][src]
pub struct ProgressBar { /* fields omitted */ }
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.
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]
impl ProgressBar
pub fn new() -> Self
[src]
pub fn new() -> Self
Creates a new progress bar.
Default values:
min
: 0max
: 100value
: 0
pub fn with_value(self, value: Counter) -> Self
[src]
pub fn with_value(self, value: Counter) -> Self
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: FnOnce(Counter) + Send + 'static>(&mut self, f: F)
[src]
pub fn start<F: FnOnce(Counter) + Send + 'static>(&mut self, f: F)
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: FnOnce(Counter) + Send + 'static>(self, task: F) -> Self
[src]
pub fn with_task<F: FnOnce(Counter) + Send + 'static>(self, task: F) -> Self
Starts a function in a separate thread, and monitor the progress.
Chainable variant.
pub fn with_label<F: Fn(usize, (usize, usize)) -> String + 'static>(
self,
label_maker: F
) -> Self
[src]
pub fn with_label<F: Fn(usize, (usize, usize)) -> String + 'static>(
self,
label_maker: F
) -> Self
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) -> Self
[src]
pub fn min(self, min: usize) -> Self
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) -> Self
[src]
pub fn max(self, max: usize) -> Self
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) -> Self
[src]
pub fn range(self, min: usize, max: usize) -> Self
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]
pub fn set_value(&mut self, value: usize)
Sets the current value.
Value is clamped between min
and max
.
Trait Implementations
impl Default for ProgressBar
[src]
impl Default for ProgressBar
impl View for ProgressBar
[src]
impl View for ProgressBar
fn draw(&self, printer: &Printer)
[src]
fn draw(&self, printer: &Printer)
Draws the view with the given printer (includes bounds) and focus. Read more
fn layout(&mut self, Vec2)
[src]
fn layout(&mut self, Vec2)
Called once the size for this view has been decided. Read more
fn needs_relayout(&self) -> bool
[src]
fn needs_relayout(&self) -> bool
Returns true
if the view content changed since last layout phase. Read more
fn required_size(&mut self, constraint: Vec2) -> Vec2
[src]
fn required_size(&mut self, constraint: Vec2) -> Vec2
Returns the minimum size the view requires with the given restrictions. Read more
fn on_event(&mut self, Event) -> EventResult
[src]
fn on_event(&mut self, Event) -> EventResult
Called when an event is received (key press, mouse event, ...). Read more
fn call_on_any<'a>(&mut self, _: &Selector, _: AnyCb<'a>)
[src]
fn call_on_any<'a>(&mut self, _: &Selector, _: AnyCb<'a>)
Runs a closure on the view identified by the given selector. Read more
fn focus_view(&mut self, &Selector) -> Result<(), ()>
[src]
fn focus_view(&mut self, &Selector) -> Result<(), ()>
Moves the focus to the view identified by the given selector. Read more
fn take_focus(&mut self, source: Direction) -> bool
[src]
fn take_focus(&mut self, source: Direction) -> bool
This view is offered focus. Will it take it? Read more
fn important_area(&self, view_size: Vec2) -> Rect
[src]
fn important_area(&self, view_size: Vec2) -> Rect
What part of the view is important and should be visible? Read more
Auto Trait Implementations
impl !Send for ProgressBar
impl !Send for ProgressBar
impl !Sync for ProgressBar
impl !Sync for ProgressBar