Implement Widget::draw for Svg
This commit is contained in:
parent
55b31e6dcf
commit
e6156fb0c5
2 changed files with 10 additions and 4 deletions
|
|
@ -1,6 +1,6 @@
|
|||
//! Display vector graphics in your application.
|
||||
use crate::backend::{self, Backend};
|
||||
use crate::Renderer;
|
||||
use crate::{Primitive, Rectangle, Renderer};
|
||||
use iced_native::svg;
|
||||
|
||||
pub use iced_native::svg::{Handle, Svg};
|
||||
|
|
@ -12,4 +12,8 @@ where
|
|||
fn dimensions(&self, handle: &svg::Handle) -> (u32, u32) {
|
||||
self.backend().viewport_dimensions(handle)
|
||||
}
|
||||
|
||||
fn draw(&mut self, handle: svg::Handle, bounds: Rectangle) {
|
||||
self.draw_primitive(Primitive::Svg { handle, bounds })
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -89,13 +89,12 @@ where
|
|||
fn draw(
|
||||
&self,
|
||||
renderer: &mut Renderer,
|
||||
style: &renderer::Style,
|
||||
_style: &renderer::Style,
|
||||
layout: Layout<'_>,
|
||||
_cursor_position: Point,
|
||||
_viewport: &Rectangle,
|
||||
) {
|
||||
// TODO
|
||||
// renderer.draw(self.handle.clone(), layout)
|
||||
renderer.draw(self.handle.clone(), layout.bounds())
|
||||
}
|
||||
|
||||
fn hash_layout(&self, state: &mut Hasher) {
|
||||
|
|
@ -187,6 +186,9 @@ impl std::fmt::Debug for Data {
|
|||
pub trait Renderer: crate::Renderer {
|
||||
/// Returns the default dimensions of an [`Svg`] for the given [`Handle`].
|
||||
fn dimensions(&self, handle: &Handle) -> (u32, u32);
|
||||
|
||||
// Draws an [`Svg`].
|
||||
fn draw(&mut self, handle: Handle, bounds: Rectangle);
|
||||
}
|
||||
|
||||
impl<'a, Message, Renderer> From<Svg> for Element<'a, Message, Renderer>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue