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/formatted_text.rs b/fyrox-ui/src/formatted_text.rs index f729742e0..25d7b08b2 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,12 @@ impl FormattedText { self } + /// Sets desired style. + 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. diff --git a/fyrox-ui/src/text.rs b/fyrox-ui/src/text.rs index 9d78239f1..f83acfaf0 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,12 @@ 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::() { + 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(); match msg { TextMessage::BBCode(text) => { 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::() {