pub struct LoadingAnimation<T: Send + Sync + 'static> { /* private fields */ }
Expand description
Loading animation view that runs a task in a background thread and shows a loading animation and message while it completes and allows for retrieval of a return value.
It is recommended to use load_resource()
instead of this directly since it has a simpler interface
§Example
let mut root = cursive::default();
let anim = LoadingAnimation::new("Loading Dummy Resource...", || {
thread::sleep(Duration::from_secs(10));
});
root.add_layer(Dialog::around(anim.with_name("loader")).title("Loading..."));
root.set_fps(30);
root.set_global_callback(Event::Refresh, |root| {
let mut loader = root.find_name::<LoadingAnimation<()>>("loader").unwrap();
if loader.is_done() {
loader.finish().unwrap_or(());
root.quit()
}
});
root.run();
Implementations§
Source§impl<T: Send + Sync> LoadingAnimation<T>
impl<T: Send + Sync> LoadingAnimation<T>
Sourcepub fn new<U, M: Into<StyledString>>(message: M, task: U) -> LoadingAnimation<T>
pub fn new<U, M: Into<StyledString>>(message: M, task: U) -> LoadingAnimation<T>
Create a new LoadingAnimation
with the specified closure or function pointer as the task
Sourcepub fn finish(&mut self) -> Option<T>
pub fn finish(&mut self) -> Option<T>
Join with the task’s thread, block until it is finished, and return the resulting value
It is best to run this when LoadingAnimation::is_done()
is true
This will return None
if called more than once
§Panics
This method will panic if the underlying task panicked while executing
Trait Implementations§
Source§impl<T: Clone + Send + Sync + 'static> Clone for LoadingAnimation<T>
impl<T: Clone + Send + Sync + 'static> Clone for LoadingAnimation<T>
Source§fn clone(&self) -> LoadingAnimation<T>
fn clone(&self) -> LoadingAnimation<T>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreSource§impl<T: Send + Sync> View for LoadingAnimation<T>
impl<T: Send + Sync> View for LoadingAnimation<T>
Source§fn draw(&self, printer: &Printer<'_, '_>)
fn draw(&self, printer: &Printer<'_, '_>)
Draws the view with the given printer (includes bounds) and focus. Read more
Source§fn required_size(&mut self, _: Vec2) -> Vec2
fn required_size(&mut self, _: Vec2) -> Vec2
Returns the minimum size the view requires with the given restrictions. Read more
Source§fn needs_relayout(&self) -> bool
fn needs_relayout(&self) -> bool
Source§fn on_event(&mut self, _: Event) -> EventResult
fn on_event(&mut self, _: Event) -> EventResult
Called when an event is received (key press, mouse event, …). Read more
Source§fn call_on_any(
&mut self,
_: &Selector<'_>,
_: &mut dyn FnMut(&mut (dyn View + 'static)),
)
fn call_on_any( &mut self, _: &Selector<'_>, _: &mut dyn FnMut(&mut (dyn View + 'static)), )
Runs a closure on the view identified by the given selector. Read more
Source§fn focus_view(&mut self, _: &Selector<'_>) -> Result<EventResult, ViewNotFound>
fn focus_view(&mut self, _: &Selector<'_>) -> Result<EventResult, ViewNotFound>
Moves the focus to the view identified by the given selector. Read more
Source§fn take_focus(&mut self, source: Direction) -> Result<EventResult, CannotFocus>
fn take_focus(&mut self, source: Direction) -> Result<EventResult, CannotFocus>
Attempt to give this view the focus. Read more
Auto Trait Implementations§
impl<T> Freeze for LoadingAnimation<T>
impl<T> RefUnwindSafe for LoadingAnimation<T>
impl<T> Send for LoadingAnimation<T>
impl<T> Sync for LoadingAnimation<T>
impl<T> Unpin for LoadingAnimation<T>
impl<T> UnwindSafe for LoadingAnimation<T>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Finder for Twhere
T: View,
impl<T> Finder for Twhere
T: View,
Source§fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
fn call_on_all<V, F>(&mut self, sel: &Selector<'_>, callback: F)
Runs a callback on all views identified by
sel
. Read moreSource§fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
fn call_on<V, F, R>(&mut self, sel: &Selector<'_>, callback: F) -> Option<R>
Runs a callback on the view identified by
sel
. Read moreSource§fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
fn call_on_name<V, F, R>(&mut self, name: &str, callback: F) -> Option<R>
Convenient method to use
call_on
with a view::Selector::Name
.Source§impl<T> IntoBoxedView for Twhere
T: View,
impl<T> IntoBoxedView for Twhere
T: View,
Source§fn into_boxed_view(self) -> Box<dyn View>
fn into_boxed_view(self) -> Box<dyn View>
Returns a
Box<View>
.Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> Resizable for Twhere
T: View,
impl<T> Resizable for Twhere
T: View,
Source§fn resized(
self,
width: SizeConstraint,
height: SizeConstraint,
) -> ResizedView<Self>
fn resized( self, width: SizeConstraint, height: SizeConstraint, ) -> ResizedView<Self>
Wraps
self
in a ResizedView
with the given size constraints.Source§fn fixed_size<S>(self, size: S) -> ResizedView<Self>
fn fixed_size<S>(self, size: S) -> ResizedView<Self>
Wraps
self
into a fixed-size ResizedView
.Source§fn fixed_width(self, width: usize) -> ResizedView<Self>
fn fixed_width(self, width: usize) -> ResizedView<Self>
Wraps
self
into a fixed-width ResizedView
.Source§fn fixed_height(self, height: usize) -> ResizedView<Self>
fn fixed_height(self, height: usize) -> ResizedView<Self>
Wraps
self
into a fixed-width ResizedView
.Source§fn full_screen(self) -> ResizedView<Self>
fn full_screen(self) -> ResizedView<Self>
Wraps
self
into a full-screen ResizedView
.Source§fn full_width(self) -> ResizedView<Self>
fn full_width(self) -> ResizedView<Self>
Wraps
self
into a full-width ResizedView
.Source§fn full_height(self) -> ResizedView<Self>
fn full_height(self) -> ResizedView<Self>
Wraps
self
into a full-height ResizedView
.Source§fn max_size<S>(self, size: S) -> ResizedView<Self>
fn max_size<S>(self, size: S) -> ResizedView<Self>
Wraps
self
into a limited-size ResizedView
.Source§fn max_width(self, max_width: usize) -> ResizedView<Self>
fn max_width(self, max_width: usize) -> ResizedView<Self>
Wraps
self
into a limited-width ResizedView
.Source§fn max_height(self, max_height: usize) -> ResizedView<Self>
fn max_height(self, max_height: usize) -> ResizedView<Self>
Wraps
self
into a limited-height ResizedView
.Source§fn min_size<S>(self, size: S) -> ResizedView<Self>
fn min_size<S>(self, size: S) -> ResizedView<Self>
Wraps
self
into a ResizedView
at least sized size
.Source§fn min_width(self, min_width: usize) -> ResizedView<Self>
fn min_width(self, min_width: usize) -> ResizedView<Self>
Wraps
self
in a ResizedView
at least min_width
wide.Source§fn min_height(self, min_height: usize) -> ResizedView<Self>
fn min_height(self, min_height: usize) -> ResizedView<Self>
Wraps
self
in a ResizedView
at least min_height
tall.Source§impl<T> Scrollable for Twhere
T: View,
impl<T> Scrollable for Twhere
T: View,
Source§fn scrollable(self) -> ScrollView<Self>
fn scrollable(self) -> ScrollView<Self>
Wraps
self
in a ScrollView
.