summaryrefslogtreecommitdiffstats
path: root/native/src/program/state.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-07-09 02:28:52 +0200
committerLibravatar GitHub <noreply@github.com>2022-07-09 02:28:52 +0200
commite053e25d2ccb17f7a162685a106a8bbd915a873f (patch)
tree5304f3ea2712e8889c7278ec5e57418f484d8f6c /native/src/program/state.rs
parent66eb6263003c1bbedd1fd14d6b12f172d20a6211 (diff)
parent7105db97a53d90adf429091298f31c90974d8f08 (diff)
downloadiced-e053e25d2ccb17f7a162685a106a8bbd915a873f.tar.gz
iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.tar.bz2
iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.zip
Merge pull request #1362 from iced-rs/theming
Theming
Diffstat (limited to 'native/src/program/state.rs')
-rw-r--r--native/src/program/state.rs14
1 files changed, 11 insertions, 3 deletions
diff --git a/native/src/program/state.rs b/native/src/program/state.rs
index cb87a628..7ec2a04f 100644
--- a/native/src/program/state.rs
+++ b/native/src/program/state.rs
@@ -1,4 +1,6 @@
+use crate::application;
use crate::mouse;
+use crate::renderer;
use crate::user_interface::{self, UserInterface};
use crate::{Clipboard, Command, Debug, Event, Point, Program, Size};
@@ -19,6 +21,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 +89,8 @@ where
bounds: Size,
cursor_position: Point,
renderer: &mut P::Renderer,
+ theme: &<P::Renderer as crate::Renderer>::Theme,
+ style: &renderer::Style,
clipboard: &mut dyn Clipboard,
debug: &mut Debug,
) -> Option<Command<P::Message>> {
@@ -115,7 +120,7 @@ where
if messages.is_empty() {
debug.draw_started();
self.mouse_interaction =
- user_interface.draw(renderer, cursor_position);
+ user_interface.draw(renderer, theme, style, cursor_position);
debug.draw_finished();
self.cache = Some(user_interface.into_cache());
@@ -147,7 +152,7 @@ where
debug.draw_started();
self.mouse_interaction =
- user_interface.draw(renderer, cursor_position);
+ user_interface.draw(renderer, theme, style, cursor_position);
debug.draw_finished();
self.cache = Some(user_interface.into_cache());
@@ -163,7 +168,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();