parent
c6a1eba4b6
commit
23d68eb0bb
@ -0,0 +1,42 @@
|
||||
use crate::ui::{constant, display::Color, geometry::Point, shape, shape::Renderer};
|
||||
|
||||
pub enum LoaderRange {
|
||||
Full,
|
||||
FromTo(f32, f32),
|
||||
}
|
||||
|
||||
pub fn render_loader<'s>(
|
||||
center: Point,
|
||||
inactive_color: Color,
|
||||
active_color: Color,
|
||||
background_color: Color,
|
||||
range: LoaderRange,
|
||||
target: &mut impl Renderer<'s>,
|
||||
) {
|
||||
shape::Circle::new(center, constant::LOADER_OUTER)
|
||||
.with_bg(inactive_color)
|
||||
.render(target);
|
||||
|
||||
match range {
|
||||
LoaderRange::Full => {
|
||||
shape::Circle::new(center, constant::LOADER_OUTER)
|
||||
.with_bg(active_color)
|
||||
.render(target);
|
||||
}
|
||||
LoaderRange::FromTo(start, end) => {
|
||||
shape::Circle::new(center, constant::LOADER_OUTER)
|
||||
.with_bg(active_color)
|
||||
.with_start_angle(start)
|
||||
.with_end_angle(end)
|
||||
.render(target);
|
||||
}
|
||||
}
|
||||
|
||||
shape::Circle::new(center, constant::LOADER_INNER + 2)
|
||||
.with_bg(active_color)
|
||||
.render(target);
|
||||
|
||||
shape::Circle::new(center, constant::LOADER_INNER)
|
||||
.with_bg(background_color)
|
||||
.render(target);
|
||||
}
|
@ -0,0 +1,3 @@
|
||||
mod loader;
|
||||
|
||||
pub use loader::{render_loader, LoaderRange};
|
Loading…
Reference in new issue