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.
|
//! Display vector graphics in your application.
|
||||||
use crate::backend::{self, Backend};
|
use crate::backend::{self, Backend};
|
||||||
use crate::Renderer;
|
use crate::{Primitive, Rectangle, Renderer};
|
||||||
use iced_native::svg;
|
use iced_native::svg;
|
||||||
|
|
||||||
pub use iced_native::svg::{Handle, Svg};
|
pub use iced_native::svg::{Handle, Svg};
|
||||||
|
|
@ -12,4 +12,8 @@ where
|
||||||
fn dimensions(&self, handle: &svg::Handle) -> (u32, u32) {
|
fn dimensions(&self, handle: &svg::Handle) -> (u32, u32) {
|
||||||
self.backend().viewport_dimensions(handle)
|
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(
|
fn draw(
|
||||||
&self,
|
&self,
|
||||||
renderer: &mut Renderer,
|
renderer: &mut Renderer,
|
||||||
style: &renderer::Style,
|
_style: &renderer::Style,
|
||||||
layout: Layout<'_>,
|
layout: Layout<'_>,
|
||||||
_cursor_position: Point,
|
_cursor_position: Point,
|
||||||
_viewport: &Rectangle,
|
_viewport: &Rectangle,
|
||||||
) {
|
) {
|
||||||
// TODO
|
renderer.draw(self.handle.clone(), layout.bounds())
|
||||||
// renderer.draw(self.handle.clone(), layout)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fn hash_layout(&self, state: &mut Hasher) {
|
fn hash_layout(&self, state: &mut Hasher) {
|
||||||
|
|
@ -187,6 +186,9 @@ impl std::fmt::Debug for Data {
|
||||||
pub trait Renderer: crate::Renderer {
|
pub trait Renderer: crate::Renderer {
|
||||||
/// Returns the default dimensions of an [`Svg`] for the given [`Handle`].
|
/// Returns the default dimensions of an [`Svg`] for the given [`Handle`].
|
||||||
fn dimensions(&self, handle: &Handle) -> (u32, u32);
|
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>
|
impl<'a, Message, Renderer> From<Svg> for Element<'a, Message, Renderer>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue