summaryrefslogtreecommitdiffstats
path: root/runtime/src/program
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--runtime/src/program.rs5
-rw-r--r--runtime/src/program/state.rs4
2 files changed, 6 insertions, 3 deletions
diff --git a/runtime/src/program.rs b/runtime/src/program.rs
index 44585cc5..6c1b8f07 100644
--- a/runtime/src/program.rs
+++ b/runtime/src/program.rs
@@ -13,6 +13,9 @@ pub trait Program: Sized {
/// The graphics backend to use to draw the [`Program`].
type Renderer: Renderer + text::Renderer;
+ /// The theme used to draw the [`Program`].
+ type Theme;
+
/// The type of __messages__ your [`Program`] will produce.
type Message: std::fmt::Debug + Send;
@@ -29,5 +32,5 @@ pub trait Program: Sized {
/// Returns the widgets to display in the [`Program`].
///
/// These widgets can produce __messages__ based on user interaction.
- fn view(&self) -> Element<'_, Self::Message, Self::Renderer>;
+ fn view(&self) -> Element<'_, Self::Message, Self::Theme, Self::Renderer>;
}
diff --git a/runtime/src/program/state.rs b/runtime/src/program/state.rs
index 6f8f4063..d685b07c 100644
--- a/runtime/src/program/state.rs
+++ b/runtime/src/program/state.rs
@@ -91,7 +91,7 @@ where
bounds: Size,
cursor: mouse::Cursor,
renderer: &mut P::Renderer,
- theme: &<P::Renderer as iced_core::Renderer>::Theme,
+ theme: &P::Theme,
style: &renderer::Style,
clipboard: &mut dyn Clipboard,
debug: &mut Debug,
@@ -219,7 +219,7 @@ fn build_user_interface<'a, P: Program>(
renderer: &mut P::Renderer,
size: Size,
debug: &mut Debug,
-) -> UserInterface<'a, P::Message, P::Renderer> {
+) -> UserInterface<'a, P::Message, P::Theme, P::Renderer> {
debug.view_started();
let view = program.view();
debug.view_finished();