From 664251f3f5c7b76f69a97683af1468094bba887f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 14 May 2022 01:47:55 +0200 Subject: Draft first-class `Theme` support RFC: https://github.com/iced-rs/rfcs/pull/6 --- native/src/user_interface.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'native/src/user_interface.rs') diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs index f80786aa..12f9827d 100644 --- a/native/src/user_interface.rs +++ b/native/src/user_interface.rs @@ -274,7 +274,7 @@ where /// [completing the last example](#example-1): /// /// ```no_run - /// use iced_native::{clipboard, Size, Point}; + /// use iced_native::{clipboard, Size, Point, Theme}; /// use iced_native::user_interface::{self, UserInterface}; /// use iced_wgpu::Renderer; /// @@ -322,7 +322,7 @@ where /// ); /// /// // Draw the user interface - /// let mouse_cursor = user_interface.draw(&mut renderer, cursor_position); + /// let mouse_cursor = user_interface.draw(&mut renderer, &Theme::default(), cursor_position); /// /// cache = user_interface.into_cache(); /// @@ -337,6 +337,7 @@ where pub fn draw( &mut self, renderer: &mut Renderer, + theme: &Renderer::Theme, cursor_position: Point, ) -> mouse::Interaction { // TODO: Move to shell level (?) @@ -368,6 +369,7 @@ where self.root.widget.draw( renderer, + theme, &renderer::Style::default(), Layout::new(&self.base), base_cursor, @@ -409,6 +411,7 @@ where renderer.with_layer(overlay_bounds, |renderer| { overlay.draw( renderer, + theme, &renderer::Style::default(), Layout::new(layout), cursor_position, -- cgit From 822a3cd04f9edeb887d85164b0b3e556c3fde6bb Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 26 May 2022 01:10:26 +0200 Subject: Let a `Theme` control the `text_color` of an application --- native/src/user_interface.rs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'native/src/user_interface.rs') 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, -- cgit From 7f3b7075db68a215f4331b4bfba1c8ddd1c4d7f3 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Thu, 26 May 2022 19:02:15 +0200 Subject: Rename `theme::Definition` to `application::StyleSheet` --- native/src/user_interface.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'native/src/user_interface.rs') diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs index c8496112..26850f0a 100644 --- a/native/src/user_interface.rs +++ b/native/src/user_interface.rs @@ -1,9 +1,9 @@ //! Implement your own event loop to drive a user interface. +use crate::application; 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`]. @@ -29,7 +29,7 @@ pub struct UserInterface<'a, Message, Renderer> { impl<'a, Message, Renderer> UserInterface<'a, Message, Renderer> where Renderer: crate::Renderer, - Renderer::Theme: theme::Definition, + Renderer::Theme: application::StyleSheet, { /// Builds a user interface for an [`Element`]. /// @@ -373,7 +373,10 @@ where renderer, theme, &renderer::Style { - text_color: theme.text_color(), + text_color: { + use application::StyleSheet; + theme.text_color() + }, }, Layout::new(&self.base), base_cursor, -- cgit From bb07d017e8c8e43ac74f66bf649643bebdc5f71d Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 8 Jul 2022 20:07:33 +0200 Subject: Add `Style` variant support to `application::StyleSheet` --- native/src/user_interface.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) (limited to 'native/src/user_interface.rs') diff --git a/native/src/user_interface.rs b/native/src/user_interface.rs index d682a880..97a004e7 100644 --- a/native/src/user_interface.rs +++ b/native/src/user_interface.rs @@ -303,8 +303,10 @@ where /// [completing the last example](#example-1): /// /// ```no_run - /// use iced_native::{clipboard, Size, Point, Theme}; + /// use iced_native::clipboard; + /// use iced_native::renderer; /// use iced_native::user_interface::{self, UserInterface}; + /// use iced_native::{Size, Point, Theme}; /// use iced_wgpu::Renderer; /// /// # mod iced_wgpu { @@ -351,7 +353,7 @@ where /// ); /// /// // Draw the user interface - /// let mouse_cursor = user_interface.draw(&mut renderer, &Theme::default(), cursor_position); + /// let mouse_cursor = user_interface.draw(&mut renderer, &Theme::default(), &renderer::Style::default(), cursor_position); /// /// cache = user_interface.into_cache(); /// @@ -367,6 +369,7 @@ where &mut self, renderer: &mut Renderer, theme: &Renderer::Theme, + style: &renderer::Style, cursor_position: Point, ) -> mouse::Interaction { // TODO: Move to shell level (?) @@ -399,12 +402,7 @@ where self.root.widget.draw( renderer, theme, - &renderer::Style { - text_color: { - use application::StyleSheet; - theme.text_color() - }, - }, + style, Layout::new(&self.base), base_cursor, &viewport, @@ -446,7 +444,7 @@ where overlay.draw( renderer, theme, - &renderer::Style::default(), + style, Layout::new(layout), cursor_position, ); -- cgit