summaryrefslogtreecommitdiffstats
path: root/runtime/src/multi_window
diff options
context:
space:
mode:
Diffstat (limited to 'runtime/src/multi_window')
-rw-r--r--runtime/src/multi_window/program.rs5
-rw-r--r--runtime/src/multi_window/state.rs6
2 files changed, 7 insertions, 4 deletions
diff --git a/runtime/src/multi_window/program.rs b/runtime/src/multi_window/program.rs
index 591b3e9a..963a09d7 100644
--- a/runtime/src/multi_window/program.rs
+++ b/runtime/src/multi_window/program.rs
@@ -12,6 +12,9 @@ pub trait Program: Sized {
/// The type of __messages__ your [`Program`] will produce.
type Message: std::fmt::Debug + Send;
+ /// The theme used to draw the [`Program`].
+ type Theme;
+
/// Handles a __message__ and updates the state of the [`Program`].
///
/// This is where you define your __update logic__. All the __messages__,
@@ -28,5 +31,5 @@ pub trait Program: Sized {
fn view(
&self,
window: window::Id,
- ) -> Element<'_, Self::Message, Self::Renderer>;
+ ) -> Element<'_, Self::Message, Self::Theme, Self::Renderer>;
}
diff --git a/runtime/src/multi_window/state.rs b/runtime/src/multi_window/state.rs
index 49f72c39..afd04519 100644
--- a/runtime/src/multi_window/state.rs
+++ b/runtime/src/multi_window/state.rs
@@ -92,7 +92,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,
@@ -252,7 +252,7 @@ fn build_user_interfaces<'a, P: Program>(
renderer: &mut P::Renderer,
size: Size,
debug: &mut Debug,
-) -> Vec<UserInterface<'a, P::Message, P::Renderer>> {
+) -> Vec<UserInterface<'a, P::Message, P::Theme, P::Renderer>> {
caches
.drain(..)
.map(|cache| {
@@ -267,7 +267,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();