diff options
author | 2019-12-12 01:14:54 +0100 | |
---|---|---|
committer | 2019-12-12 01:14:54 +0100 | |
commit | 895eaef99b52c24e6f3d804897ad850c1f1de960 (patch) | |
tree | 2f63b98d133029d08030457d8521587807fa6418 /native/src | |
parent | f737c6da24d5c75e3efa92c0fd9d0d11fbd715c1 (diff) | |
download | iced-895eaef99b52c24e6f3d804897ad850c1f1de960.tar.gz iced-895eaef99b52c24e6f3d804897ad850c1f1de960.tar.bz2 iced-895eaef99b52c24e6f3d804897ad850c1f1de960.zip |
Merged svg pipeline into image
Diffstat (limited to 'native/src')
-rw-r--r-- | native/src/widget/icon.rs | 29 |
1 files changed, 6 insertions, 23 deletions
diff --git a/native/src/widget/icon.rs b/native/src/widget/icon.rs index b3906ccf..c324e786 100644 --- a/native/src/widget/icon.rs +++ b/native/src/widget/icon.rs @@ -1,6 +1,6 @@ //! Display an icon. use crate::{ - layout, Element, Hasher, Layout, Length, Point, Rectangle, Widget, + image, layout, Element, Hasher, Layout, Length, Point, Rectangle, Widget, }; use std::{ @@ -11,7 +11,7 @@ use std::{ /// A simple icon_loader widget. #[derive(Debug, Clone)] pub struct Icon { - path: PathBuf, + handle: image::Handle, size: Length, } @@ -21,7 +21,7 @@ impl Icon { /// [`Icon`]: struct.Icon.html pub fn new(path: impl Into<PathBuf>) -> Self { Icon { - path: path.into(), + handle: image::Handle::from_path(path), size: Length::Fill, } } @@ -37,7 +37,7 @@ impl Icon { impl<Message, Renderer> Widget<Message, Renderer> for Icon where - Renderer: self::Renderer, + Renderer: image::Renderer, { fn width(&self) -> Length { self.size @@ -65,9 +65,7 @@ where layout: Layout<'_>, _cursor_position: Point, ) -> Renderer::Output { - let bounds = layout.bounds(); - - renderer.draw(bounds, self.path.as_path()) + renderer.draw(self.handle.clone(), layout) } fn hash_layout(&self, state: &mut Hasher) { @@ -75,24 +73,9 @@ where } } -/// The renderer of an [`Icon`]. -/// -/// Your [renderer] will need to implement this trait before being -/// able to use [`Icon`] in your [`UserInterface`]. -/// -/// [`Icon`]: struct.Icon.html -/// [renderer]: ../../renderer/index.html -/// [`UserInterface`]: ../../struct.UserInterface.html -pub trait Renderer: crate::Renderer { - /// Draws an [`Icon`]. - /// - /// [`Icon`]: struct.Icon.html - fn draw(&mut self, bounds: Rectangle, path: &Path) -> Self::Output; -} - impl<'a, Message, Renderer> From<Icon> for Element<'a, Message, Renderer> where - Renderer: self::Renderer, + Renderer: image::Renderer, { fn from(icon: Icon) -> Element<'a, Message, Renderer> { Element::new(icon) |