diff options
author | 2022-05-26 01:10:26 +0200 | |
---|---|---|
committer | 2022-05-26 01:10:26 +0200 | |
commit | 822a3cd04f9edeb887d85164b0b3e556c3fde6bb (patch) | |
tree | a9696674d844af5892f46daef6d36407fb076383 /native | |
parent | 3a820b45f336398c48f8bedf7b8c4b8af876efff (diff) | |
download | iced-822a3cd04f9edeb887d85164b0b3e556c3fde6bb.tar.gz iced-822a3cd04f9edeb887d85164b0b3e556c3fde6bb.tar.bz2 iced-822a3cd04f9edeb887d85164b0b3e556c3fde6bb.zip |
Let a `Theme` control the `text_color` of an application
Diffstat (limited to 'native')
-rw-r--r-- | native/src/program/state.rs | 7 | ||||
-rw-r--r-- | native/src/user_interface.rs | 6 |
2 files changed, 11 insertions, 2 deletions
diff --git a/native/src/program/state.rs b/native/src/program/state.rs index 6ab6051b..0c133484 100644 --- a/native/src/program/state.rs +++ b/native/src/program/state.rs @@ -1,4 +1,5 @@ use crate::mouse; +use crate::theme; 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: theme::Definition, { /// Creates a new [`State`] with the provided [`Program`], initializing its /// primitive with the given logical bounds and renderer. @@ -164,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: theme::Definition, +{ debug.view_started(); let view = program.view(); debug.view_finished(); diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs index 12f9827d..c8496112 100644 --- a/native/src/user_interface.rs +++ b/native/src/user_interface.rs @@ -3,6 +3,7 @@ use crate::event::{self, Event}; use crate::layout; use crate::mouse; use crate::renderer; +use crate::theme::{self, Definition as _}; use crate::{Clipboard, Element, Layout, Point, Rectangle, Shell, Size}; /// A set of interactive graphical elements with a specific [`Layout`]. @@ -28,6 +29,7 @@ pub struct UserInterface<'a, Message, Renderer> { impl<'a, Message, Renderer> UserInterface<'a, Message, Renderer> where Renderer: crate::Renderer, + Renderer::Theme: theme::Definition, { /// Builds a user interface for an [`Element`]. /// @@ -370,7 +372,9 @@ where self.root.widget.draw( renderer, theme, - &renderer::Style::default(), + &renderer::Style { + text_color: theme.text_color(), + }, Layout::new(&self.base), base_cursor, &viewport, |