diff options
Diffstat (limited to 'runtime/src/multi_window')
-rw-r--r-- | runtime/src/multi_window/program.rs | 5 | ||||
-rw-r--r-- | runtime/src/multi_window/state.rs | 6 |
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(); |