summaryrefslogtreecommitdiffstats
path: root/native/src
diff options
context:
space:
mode:
authorLibravatar Malte Veerman <malte.veerman@gmail.com>2019-12-12 01:14:54 +0100
committerLibravatar Malte Veerman <malte.veerman@gmail.com>2019-12-12 01:14:54 +0100
commit895eaef99b52c24e6f3d804897ad850c1f1de960 (patch)
tree2f63b98d133029d08030457d8521587807fa6418 /native/src
parentf737c6da24d5c75e3efa92c0fd9d0d11fbd715c1 (diff)
downloadiced-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.rs29
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)