From 8c7f328a3dcde24be7180d0aa4efe92d2801c837 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sat, 25 Apr 2026 15:10:36 +0800 Subject: [PATCH 1/4] Added `UI_FONT_SIZE` const in Editor, prerequisite for font size settings --- editor/src/lib.rs | 2 ++ fyrox-ui/src/text.rs | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 413ec1739..367348b87 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -716,6 +716,8 @@ fn make_light_style() -> StyleResource { } impl Editor { + pub const UI_FONT_SIZE: &'static str = "Editor.UI.Font.Size"; + pub fn new(startup_data: Option) -> Self { Self::new_with_settings(startup_data, Default::default()) } diff --git a/fyrox-ui/src/text.rs b/fyrox-ui/src/text.rs index 9d78239f1..ac33948b0 100644 --- a/fyrox-ui/src/text.rs +++ b/fyrox-ui/src/text.rs @@ -36,6 +36,7 @@ use crate::{ style::{resource::StyleResourceExt, Style, StyledProperty}, widget::{Widget, WidgetBuilder}, BBCode, BuildContext, Control, HorizontalAlignment, UiNode, UserInterface, VerticalAlignment, + WidgetMessage, }; use fyrox_core::algebra::Matrix3; use fyrox_core::variable::InheritableVariable; @@ -401,7 +402,15 @@ impl Control for Text { self.widget.handle_routed_message(ui, message); if message.destination() == self.handle() { - if let Some(msg) = message.data::() { + if let Some(msg) = message.data::() { + match msg { + WidgetMessage::Style(style) => { + self.formatted_text.borrow_mut().set_style(style); + self.invalidate_layout(); + } + _ => {} + } + } else if let Some(msg) = message.data::() { let mut text_ref = self.formatted_text.borrow_mut(); match msg { TextMessage::BBCode(text) => { From bb22b1e6b2b85ba453f9b65a3a9d0ac2177a9645 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sat, 25 Apr 2026 15:51:55 +0800 Subject: [PATCH 2/4] Added `fn set_style()` for FormattedText --- fyrox-ui/src/formatted_text.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/fyrox-ui/src/formatted_text.rs b/fyrox-ui/src/formatted_text.rs index f729742e0..e739542bd 100644 --- a/fyrox-ui/src/formatted_text.rs +++ b/fyrox-ui/src/formatted_text.rs @@ -25,7 +25,7 @@ use crate::{ variable::InheritableVariable, visitor::prelude::*, }, font::{Font, FontGlyph, FontHeight, FontResource, BUILT_IN_FONT}, - style::StyledProperty, + style::{resource::StyleResource, StyledProperty}, HorizontalAlignment, Thickness, VerticalAlignment, }; use fyrox_resource::state::{LoadError, ResourceState}; @@ -727,6 +727,11 @@ impl FormattedText { self } + pub fn set_style(&mut self, style: &StyleResource) -> &mut Self { + self.font_size.update(style); + self + } + /// Runs can optionally modify various style settings for portions of the text. /// Later runs override earlier runs if their ranges overlap and the later run /// sets a property that conflicts with an earlier run. From 1176ac097d40f778bfe45b172cd72f116f0ac2d0 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Tue, 28 Apr 2026 22:04:15 +0800 Subject: [PATCH 3/4] Fixes clippy warning --- fyrox-ui/src/formatted_text.rs | 1 + fyrox-ui/src/text.rs | 9 +++------ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/fyrox-ui/src/formatted_text.rs b/fyrox-ui/src/formatted_text.rs index e739542bd..25d7b08b2 100644 --- a/fyrox-ui/src/formatted_text.rs +++ b/fyrox-ui/src/formatted_text.rs @@ -727,6 +727,7 @@ impl FormattedText { self } + /// Sets desired style. pub fn set_style(&mut self, style: &StyleResource) -> &mut Self { self.font_size.update(style); self diff --git a/fyrox-ui/src/text.rs b/fyrox-ui/src/text.rs index ac33948b0..f83acfaf0 100644 --- a/fyrox-ui/src/text.rs +++ b/fyrox-ui/src/text.rs @@ -403,12 +403,9 @@ impl Control for Text { if message.destination() == self.handle() { if let Some(msg) = message.data::() { - match msg { - WidgetMessage::Style(style) => { - self.formatted_text.borrow_mut().set_style(style); - self.invalidate_layout(); - } - _ => {} + if let WidgetMessage::Style(style) = msg { + self.formatted_text.borrow_mut().set_style(style); + self.invalidate_layout(); } } else if let Some(msg) = message.data::() { let mut text_ref = self.formatted_text.borrow_mut(); From 7f49838bd73a24c37cdee06922b037b08f0d96b5 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Thu, 30 Apr 2026 21:00:50 +0800 Subject: [PATCH 4/4] Add WidgetMessage:Style handling to TextBox --- fyrox-ui/src/text_box.rs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fyrox-ui/src/text_box.rs b/fyrox-ui/src/text_box.rs index b7177746f..4978edbaf 100644 --- a/fyrox-ui/src/text_box.rs +++ b/fyrox-ui/src/text_box.rs @@ -1316,6 +1316,10 @@ impl Control for TextBox { self.selecting = false; ui.release_mouse_capture(); } + WidgetMessage::Style(style) => { + self.formatted_text.borrow_mut().set_style(style); + self.invalidate_layout(); + } _ => {} } } else if let Some(msg) = message.data::() {