Implement Slider in iced_pure

This commit is contained in:
Héctor Ramón Jiménez 2022-02-13 17:20:10 +07:00
parent 45455be450
commit 3f1a45ca47
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
4 changed files with 503 additions and 167 deletions

View file

@ -7,6 +7,7 @@ mod container;
mod element;
mod row;
mod scrollable;
mod slider;
mod text;
mod text_input;
mod tree;
@ -19,6 +20,7 @@ pub use element::Element;
pub use image::Image;
pub use row::Row;
pub use scrollable::Scrollable;
pub use slider::Slider;
pub use text::Text;
pub use text_input::TextInput;
pub use tree::Tree;
@ -36,8 +38,6 @@ pub trait Widget<Message, Renderer> {
fn state(&self) -> Box<dyn Any>;
fn diff(&self, tree: &mut Tree);
fn children_state(&self) -> Vec<Tree>;
fn width(&self) -> Length;
@ -62,6 +62,8 @@ pub trait Widget<Message, Renderer> {
viewport: &Rectangle,
);
fn diff(&self, _tree: &mut Tree) {}
fn mouse_interaction(
&self,
_state: &Tree,
@ -149,6 +151,19 @@ where
TextInput::new(placeholder, value, on_change)
}
pub fn slider<'a, Message, Renderer, T>(
range: std::ops::RangeInclusive<T>,
value: T,
on_change: impl Fn(T) -> Message + 'a,
) -> Slider<'a, T, Message>
where
Message: Clone,
Renderer: iced_native::Renderer,
T: Copy + From<u8> + std::cmp::PartialOrd,
{
Slider::new(range, value, on_change)
}
pub fn image<Handle>(handle: Handle) -> Image<Handle> {
Image::new(handle)
}