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/program/state.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'native/src/program/state.rs') diff --git a/native/src/program/state.rs b/native/src/program/state.rs index cb87a628..6ab6051b 100644 --- a/native/src/program/state.rs +++ b/native/src/program/state.rs @@ -86,6 +86,7 @@ where bounds: Size, cursor_position: Point, renderer: &mut P::Renderer, + theme: &::Theme, clipboard: &mut dyn Clipboard, debug: &mut Debug, ) -> Option> { @@ -115,7 +116,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 +148,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()); -- 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/program/state.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'native/src/program/state.rs') 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

State

where P: Program + 'static, + ::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 + ::Theme: theme::Definition, +{ debug.view_started(); let view = program.view(); debug.view_finished(); -- 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/program/state.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'native/src/program/state.rs') diff --git a/native/src/program/state.rs b/native/src/program/state.rs index 0c133484..c881a64f 100644 --- a/native/src/program/state.rs +++ b/native/src/program/state.rs @@ -1,5 +1,5 @@ +use crate::application; use crate::mouse; -use crate::theme; use crate::user_interface::{self, UserInterface}; use crate::{Clipboard, Command, Debug, Event, Point, Program, Size}; @@ -20,7 +20,7 @@ where impl

State

where P: Program + 'static, - ::Theme: theme::Definition, + ::Theme: application::StyleSheet, { /// Creates a new [`State`] with the provided [`Program`], initializing its /// primitive with the given logical bounds and renderer. @@ -168,7 +168,7 @@ fn build_user_interface<'a, P: Program>( debug: &mut Debug, ) -> UserInterface<'a, P::Message, P::Renderer> where - ::Theme: theme::Definition, + ::Theme: application::StyleSheet, { debug.view_started(); let view = program.view(); -- 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/program/state.rs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'native/src/program/state.rs') diff --git a/native/src/program/state.rs b/native/src/program/state.rs index c881a64f..7ec2a04f 100644 --- a/native/src/program/state.rs +++ b/native/src/program/state.rs @@ -1,5 +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}; @@ -89,6 +90,7 @@ where cursor_position: Point, renderer: &mut P::Renderer, theme: &::Theme, + style: &renderer::Style, clipboard: &mut dyn Clipboard, debug: &mut Debug, ) -> Option> { @@ -118,7 +120,7 @@ where if messages.is_empty() { debug.draw_started(); self.mouse_interaction = - user_interface.draw(renderer, theme, cursor_position); + user_interface.draw(renderer, theme, style, cursor_position); debug.draw_finished(); self.cache = Some(user_interface.into_cache()); @@ -150,7 +152,7 @@ where debug.draw_started(); self.mouse_interaction = - user_interface.draw(renderer, theme, cursor_position); + user_interface.draw(renderer, theme, style, cursor_position); debug.draw_finished(); self.cache = Some(user_interface.into_cache()); -- cgit