summaryrefslogtreecommitdiffstats
path: root/widget/src/canvas/program.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--widget/src/canvas/program.rs (renamed from graphics/src/widget/canvas/program.rs)27
1 files changed, 17 insertions, 10 deletions
diff --git a/graphics/src/widget/canvas/program.rs b/widget/src/canvas/program.rs
index 656dbfa6..ad0fbb83 100644
--- a/graphics/src/widget/canvas/program.rs
+++ b/widget/src/canvas/program.rs
@@ -1,7 +1,8 @@
-use crate::widget::canvas::event::{self, Event};
-use crate::widget::canvas::mouse;
-use crate::widget::canvas::{Cursor, Geometry};
-use crate::Rectangle;
+use crate::canvas::event::{self, Event};
+use crate::canvas::mouse;
+use crate::canvas::Cursor;
+use crate::core::Rectangle;
+use crate::graphics::geometry::{self, Geometry};
/// The state and logic of a [`Canvas`].
///
@@ -9,7 +10,10 @@ use crate::Rectangle;
/// application.
///
/// [`Canvas`]: crate::widget::Canvas
-pub trait Program<Message, Theme = iced_native::Theme> {
+pub trait Program<Message, Renderer = crate::Renderer>
+where
+ Renderer: geometry::Renderer,
+{
/// The internal state mutated by the [`Program`].
type State: Default + 'static;
@@ -44,7 +48,8 @@ pub trait Program<Message, Theme = iced_native::Theme> {
fn draw(
&self,
state: &Self::State,
- theme: &Theme,
+ renderer: &Renderer,
+ theme: &Renderer::Theme,
bounds: Rectangle,
cursor: Cursor,
) -> Vec<Geometry>;
@@ -65,9 +70,10 @@ pub trait Program<Message, Theme = iced_native::Theme> {
}
}
-impl<Message, Theme, T> Program<Message, Theme> for &T
+impl<Message, Renderer, T> Program<Message, Renderer> for &T
where
- T: Program<Message, Theme>,
+ Renderer: geometry::Renderer,
+ T: Program<Message, Renderer>,
{
type State = T::State;
@@ -84,11 +90,12 @@ where
fn draw(
&self,
state: &Self::State,
- theme: &Theme,
+ renderer: &Renderer,
+ theme: &Renderer::Theme,
bounds: Rectangle,
cursor: Cursor,
) -> Vec<Geometry> {
- T::draw(self, state, theme, bounds, cursor)
+ T::draw(self, state, renderer, theme, bounds, cursor)
}
fn mouse_interaction(