summaryrefslogtreecommitdiffstats
path: root/native/src/program
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/program')
-rw-r--r--native/src/program/state.rs12
1 files changed, 9 insertions, 3 deletions
diff --git a/native/src/program/state.rs b/native/src/program/state.rs
index cb87a628..c881a64f 100644
--- a/native/src/program/state.rs
+++ b/native/src/program/state.rs
@@ -1,3 +1,4 @@
+use crate::application;
use crate::mouse;
use crate::user_interface::{self, UserInterface};
use crate::{Clipboard, Command, Debug, Event, Point, Program, Size};
@@ -19,6 +20,7 @@ where
impl<P> State<P>
where
P: Program + 'static,
+ <P::Renderer as crate::Renderer>::Theme: application::StyleSheet,
{
/// Creates a new [`State`] with the provided [`Program`], initializing its
/// primitive with the given logical bounds and renderer.
@@ -86,6 +88,7 @@ where
bounds: Size,
cursor_position: Point,
renderer: &mut P::Renderer,
+ theme: &<P::Renderer as crate::Renderer>::Theme,
clipboard: &mut dyn Clipboard,
debug: &mut Debug,
) -> Option<Command<P::Message>> {
@@ -115,7 +118,7 @@ where
if messages.is_empty() {
debug.draw_started();
self.mouse_interaction =
- user_interface.draw(renderer, cursor_position);
+ user_interface.draw(renderer, theme, cursor_position);
debug.draw_finished();
self.cache = Some(user_interface.into_cache());
@@ -147,7 +150,7 @@ where
debug.draw_started();
self.mouse_interaction =
- user_interface.draw(renderer, cursor_position);
+ user_interface.draw(renderer, theme, cursor_position);
debug.draw_finished();
self.cache = Some(user_interface.into_cache());
@@ -163,7 +166,10 @@ 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::Renderer>
+where
+ <P::Renderer as crate::Renderer>::Theme: application::StyleSheet,
+{
debug.view_started();
let view = program.view();
debug.view_finished();