From 54e4c8d66e963cd1ce496a1b89553dc7fb78b3ea Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sun, 12 Apr 2026 23:56:52 +0800 Subject: [PATCH 01/24] Added ui font size config values --- editor/src/settings/general.rs | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/editor/src/settings/general.rs b/editor/src/settings/general.rs index 845298a71..df7606211 100644 --- a/editor/src/settings/general.rs +++ b/editor/src/settings/general.rs @@ -81,6 +81,18 @@ pub struct GeneralSettings { #[serde(default = "default_style")] pub style: EditorStyle, + + #[serde(default = "default_ui_font_size")] + pub ui_font_size: f32, + + // TODO + // world_viewer_font_size // Hardcoded at: 11.0 + // tilemap_properties_tab_font_size // Hardcoded at: 10.0 + // asset_font_preview_font_size // Hardcoded at: 16.0 +} + +fn default_ui_font_size() -> f32 { + 14.0 } fn default_style() -> EditorStyle { @@ -144,6 +156,7 @@ impl Default for GeneralSettings { generate_previews: default_generate_previews(), max_log_entries: default_max_log_entries(), style: EditorStyle::Dark, + ui_font_size: default_ui_font_size(), } } } From 0e80df2c164a3d6ded3f71625b31d422f3b78b75 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Mon, 13 Apr 2026 00:22:34 +0800 Subject: [PATCH 02/24] Updated UI implementation for font size config --- editor/src/settings/general.rs | 3 +-- fyrox-ui/src/lib.rs | 26 +++++++++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/editor/src/settings/general.rs b/editor/src/settings/general.rs index df7606211..e32462f99 100644 --- a/editor/src/settings/general.rs +++ b/editor/src/settings/general.rs @@ -81,10 +81,9 @@ pub struct GeneralSettings { #[serde(default = "default_style")] pub style: EditorStyle, - + #[serde(default = "default_ui_font_size")] pub ui_font_size: f32, - // TODO // world_viewer_font_size // Hardcoded at: 11.0 // tilemap_properties_tab_font_size // Hardcoded at: 10.0 diff --git a/fyrox-ui/src/lib.rs b/fyrox-ui/src/lib.rs index e6f598884..92f09d783 100644 --- a/fyrox-ui/src/lib.rs +++ b/fyrox-ui/src/lib.rs @@ -316,15 +316,15 @@ use crate::{ draw::{CommandTexture, Draw, DrawingContext}, font::{FontResource, BUILT_IN_FONT}, message::{ - ButtonState, CursorIcon, KeyboardModifiers, MessageDirection, MouseButton, OsEvent, - UiMessage, + ButtonState, CursorIcon, DeliveryMode, KeyboardModifiers, MessageData, MessageDirection, + MouseButton, OsEvent, RoutingStrategy, UiMessage, }, - message::{DeliveryMode, MessageData, RoutingStrategy}, popup::{Placement, PopupMessage}, style::{ resource::{StyleResource, StyleResourceExt}, Style, DEFAULT_STYLE, }, + text::TextMessage, widget::{Widget, WidgetBuilder, WidgetMaterial, WidgetMessage}, }; use copypasta::ClipboardContext; @@ -729,6 +729,7 @@ pub struct UserInterface { z_index_update_set: FxHashSet>, #[reflect(hidden)] pub default_font: FontResource, + pub default_font_size: f32, #[reflect(hidden)] double_click_entries: FxHashMap, pub double_click_time_slice: f32, @@ -778,6 +779,7 @@ impl Debug for UserInterface { .field("layout_events_sender", &self.layout_events_sender) .field("z_index_update_set", &self.z_index_update_set) .field("default_font", &self.default_font) + .field("default_font_size", &self.default_font_size) .field("double_click_entries", &self.double_click_entries) .field("double_click_time_slice", &self.double_click_time_slice) .field("tooltip_appear_delay", &self.tooltip_appear_delay) @@ -876,6 +878,7 @@ impl Clone for UserInterface { layout_events_sender, z_index_update_set: self.z_index_update_set.clone(), default_font: self.default_font.clone(), + default_font_size: self.default_font_size, double_click_entries: self.double_click_entries.clone(), double_click_time_slice: self.double_click_time_slice, tooltip_appear_delay: self.tooltip_appear_delay, @@ -1194,6 +1197,7 @@ impl UserInterface { layout_events_sender, z_index_update_set: Default::default(), default_font: BUILT_IN_FONT.resource(), + default_font_size: 14.0, double_click_entries: Default::default(), double_click_time_slice: 0.5, // 500 ms is standard in most operating systems. tooltip_appear_delay: 0.55, @@ -1541,6 +1545,22 @@ impl UserInterface { notify_depth_first(self.root_canvas, self); } + pub fn set_font_size(&mut self, font_size: f32) { + self.default_font_size = font_size; + + fn notify_depth_first(node: Handle, ui: &UserInterface) { + if let Ok(node_ref) = ui.try_get_node(node) { + for child in node_ref.children.iter() { + notify_depth_first(*child, ui); + } + + ui.send(node, TextMessage::FontSize(ui.default_font_size.into())); + } + } + + notify_depth_first(self.root_canvas, self); + } + pub fn cursor(&self) -> CursorIcon { self.cursor_icon } From 8f65dd28fc6c8686ef734573f2278a12d0070d79 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Mon, 13 Apr 2026 00:32:58 +0800 Subject: [PATCH 03/24] Added editor font size update --- editor/src/lib.rs | 5 +++++ fyrox-ui/src/lib.rs | 12 ++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 367348b87..3257a1418 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -2790,6 +2790,11 @@ impl Editor { ui.set_style(style.clone()); } } + + let font_size = self.settings.general.ui_font_size; + if font_size != ui.font_size { + ui.set_font_size(font_size); + } } } diff --git a/fyrox-ui/src/lib.rs b/fyrox-ui/src/lib.rs index 92f09d783..0005387bb 100644 --- a/fyrox-ui/src/lib.rs +++ b/fyrox-ui/src/lib.rs @@ -729,7 +729,7 @@ pub struct UserInterface { z_index_update_set: FxHashSet>, #[reflect(hidden)] pub default_font: FontResource, - pub default_font_size: f32, + pub font_size: f32, #[reflect(hidden)] double_click_entries: FxHashMap, pub double_click_time_slice: f32, @@ -779,7 +779,7 @@ impl Debug for UserInterface { .field("layout_events_sender", &self.layout_events_sender) .field("z_index_update_set", &self.z_index_update_set) .field("default_font", &self.default_font) - .field("default_font_size", &self.default_font_size) + .field("font_size", &self.font_size) .field("double_click_entries", &self.double_click_entries) .field("double_click_time_slice", &self.double_click_time_slice) .field("tooltip_appear_delay", &self.tooltip_appear_delay) @@ -878,7 +878,7 @@ impl Clone for UserInterface { layout_events_sender, z_index_update_set: self.z_index_update_set.clone(), default_font: self.default_font.clone(), - default_font_size: self.default_font_size, + font_size: self.font_size, double_click_entries: self.double_click_entries.clone(), double_click_time_slice: self.double_click_time_slice, tooltip_appear_delay: self.tooltip_appear_delay, @@ -1197,7 +1197,7 @@ impl UserInterface { layout_events_sender, z_index_update_set: Default::default(), default_font: BUILT_IN_FONT.resource(), - default_font_size: 14.0, + font_size: 14.0, double_click_entries: Default::default(), double_click_time_slice: 0.5, // 500 ms is standard in most operating systems. tooltip_appear_delay: 0.55, @@ -1546,7 +1546,7 @@ impl UserInterface { } pub fn set_font_size(&mut self, font_size: f32) { - self.default_font_size = font_size; + self.font_size = font_size; fn notify_depth_first(node: Handle, ui: &UserInterface) { if let Ok(node_ref) = ui.try_get_node(node) { @@ -1554,7 +1554,7 @@ impl UserInterface { notify_depth_first(*child, ui); } - ui.send(node, TextMessage::FontSize(ui.default_font_size.into())); + ui.send(node, TextMessage::FontSize(ui.font_size.into())); } } From e5355d00048a102f998b42a482df5a81380f07a3 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Mon, 13 Apr 2026 22:28:00 +0800 Subject: [PATCH 04/24] Clamped to ui_font_size settings (8.0 - 48.0, whole number only) --- editor/src/settings/general.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/editor/src/settings/general.rs b/editor/src/settings/general.rs index e32462f99..48f14430c 100644 --- a/editor/src/settings/general.rs +++ b/editor/src/settings/general.rs @@ -83,6 +83,7 @@ pub struct GeneralSettings { pub style: EditorStyle, #[serde(default = "default_ui_font_size")] + #[reflect(min_value = 8.0, max_value = 48.0, step = 1.0, precision = 0)] pub ui_font_size: f32, // TODO // world_viewer_font_size // Hardcoded at: 11.0 From 686249b44f4f5f4109bd9330c9180ad530567ac5 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Mon, 13 Apr 2026 23:03:06 +0800 Subject: [PATCH 05/24] Added documentation for ui_font_size --- editor/src/settings/general.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/editor/src/settings/general.rs b/editor/src/settings/general.rs index 48f14430c..af2438434 100644 --- a/editor/src/settings/general.rs +++ b/editor/src/settings/general.rs @@ -82,6 +82,8 @@ pub struct GeneralSettings { #[serde(default = "default_style")] pub style: EditorStyle, + /// Font size for Editor UI. + /// Clamped between 8.0 and 48.0 #[serde(default = "default_ui_font_size")] #[reflect(min_value = 8.0, max_value = 48.0, step = 1.0, precision = 0)] pub ui_font_size: f32, From 36245f98543d92c8bfec5a9cd29f0a47966eaa87 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Mon, 13 Apr 2026 23:19:15 +0800 Subject: [PATCH 06/24] Reverted changes to editor and UI code --- editor/src/lib.rs | 5 ----- fyrox-ui/src/lib.rs | 21 --------------------- 2 files changed, 26 deletions(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 3257a1418..367348b87 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -2790,11 +2790,6 @@ impl Editor { ui.set_style(style.clone()); } } - - let font_size = self.settings.general.ui_font_size; - if font_size != ui.font_size { - ui.set_font_size(font_size); - } } } diff --git a/fyrox-ui/src/lib.rs b/fyrox-ui/src/lib.rs index 0005387bb..63b514e7a 100644 --- a/fyrox-ui/src/lib.rs +++ b/fyrox-ui/src/lib.rs @@ -324,7 +324,6 @@ use crate::{ resource::{StyleResource, StyleResourceExt}, Style, DEFAULT_STYLE, }, - text::TextMessage, widget::{Widget, WidgetBuilder, WidgetMaterial, WidgetMessage}, }; use copypasta::ClipboardContext; @@ -729,7 +728,6 @@ pub struct UserInterface { z_index_update_set: FxHashSet>, #[reflect(hidden)] pub default_font: FontResource, - pub font_size: f32, #[reflect(hidden)] double_click_entries: FxHashMap, pub double_click_time_slice: f32, @@ -779,7 +777,6 @@ impl Debug for UserInterface { .field("layout_events_sender", &self.layout_events_sender) .field("z_index_update_set", &self.z_index_update_set) .field("default_font", &self.default_font) - .field("font_size", &self.font_size) .field("double_click_entries", &self.double_click_entries) .field("double_click_time_slice", &self.double_click_time_slice) .field("tooltip_appear_delay", &self.tooltip_appear_delay) @@ -878,7 +875,6 @@ impl Clone for UserInterface { layout_events_sender, z_index_update_set: self.z_index_update_set.clone(), default_font: self.default_font.clone(), - font_size: self.font_size, double_click_entries: self.double_click_entries.clone(), double_click_time_slice: self.double_click_time_slice, tooltip_appear_delay: self.tooltip_appear_delay, @@ -1197,7 +1193,6 @@ impl UserInterface { layout_events_sender, z_index_update_set: Default::default(), default_font: BUILT_IN_FONT.resource(), - font_size: 14.0, double_click_entries: Default::default(), double_click_time_slice: 0.5, // 500 ms is standard in most operating systems. tooltip_appear_delay: 0.55, @@ -1545,22 +1540,6 @@ impl UserInterface { notify_depth_first(self.root_canvas, self); } - pub fn set_font_size(&mut self, font_size: f32) { - self.font_size = font_size; - - fn notify_depth_first(node: Handle, ui: &UserInterface) { - if let Ok(node_ref) = ui.try_get_node(node) { - for child in node_ref.children.iter() { - notify_depth_first(*child, ui); - } - - ui.send(node, TextMessage::FontSize(ui.font_size.into())); - } - } - - notify_depth_first(self.root_canvas, self); - } - pub fn cursor(&self) -> CursorIcon { self.cursor_icon } From 2bbf2ffe7717894d052b174b4827aec024d49a6a Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Tue, 14 Apr 2026 00:22:38 +0800 Subject: [PATCH 07/24] Added style font_size updates in editor --- editor/src/lib.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 367348b87..72448f547 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -116,7 +116,10 @@ use crate::{ }, screen::ScreenBuilder, stack_panel::StackPanelBuilder, - style::{resource::StyleResource, Style}, + style::{ + resource::{StyleResource, StyleResourceExt}, + Style, + }, text::{Text, TextBuilder, TextMessage}, widget::{WidgetBuilder, WidgetMessage}, window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, @@ -800,6 +803,7 @@ impl Editor { let ui = engine.user_interfaces.first_mut(); if let Some(style) = styles.get(&settings.general.style) { + style.set(Style::FONT_SIZE, settings.general.ui_font_size); ui.set_style(style.clone()); } @@ -2787,6 +2791,7 @@ impl Editor { let ui = self.engine.user_interfaces.first_mut(); if let Some(style) = self.styles.get(&self.settings.general.style) { if style != ui.style() { + style.set(Style::FONT_SIZE, self.settings.general.ui_font_size); ui.set_style(style.clone()); } } From 69f6051bf71ea0f857d75028b309974bc5145e68 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Tue, 14 Apr 2026 23:19:46 +0800 Subject: [PATCH 08/24] Fixed style update order --- editor/src/lib.rs | 2 +- editor/src/settings/general.rs | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 72448f547..fe1f2b192 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -2790,8 +2790,8 @@ impl Editor { if self.settings.try_save() { let ui = self.engine.user_interfaces.first_mut(); if let Some(style) = self.styles.get(&self.settings.general.style) { + style.set(Style::FONT_SIZE, self.settings.general.ui_font_size); if style != ui.style() { - style.set(Style::FONT_SIZE, self.settings.general.ui_font_size); ui.set_style(style.clone()); } } diff --git a/editor/src/settings/general.rs b/editor/src/settings/general.rs index af2438434..43f7e3b38 100644 --- a/editor/src/settings/general.rs +++ b/editor/src/settings/general.rs @@ -83,7 +83,6 @@ pub struct GeneralSettings { pub style: EditorStyle, /// Font size for Editor UI. - /// Clamped between 8.0 and 48.0 #[serde(default = "default_ui_font_size")] #[reflect(min_value = 8.0, max_value = 48.0, step = 1.0, precision = 0)] pub ui_font_size: f32, From 03462593c62244fe81607853f82528e0aeff3113 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Thu, 16 Apr 2026 01:05:07 +0800 Subject: [PATCH 09/24] Figuring things out --- editor/src/lib.rs | 16 ++++++++++++++++ fyrox-ui/src/lib.rs | 14 ++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/editor/src/lib.rs b/editor/src/lib.rs index fe1f2b192..51546edd2 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -2788,12 +2788,28 @@ impl Editor { } if self.settings.try_save() { + println!("Need Update"); let ui = self.engine.user_interfaces.first_mut(); + println!("Old style font size: {}", ui.style().get(Style::FONT_SIZE).unwrap_or(0.0)); if let Some(style) = self.styles.get(&self.settings.general.style) { + // ISSUE: They are the same resource ref style.set(Style::FONT_SIZE, self.settings.general.ui_font_size); + println!("Got new style"); + println!("New style font size: {}", style.get(Style::FONT_SIZE).unwrap_or(0.0)); + println!("Again Old style font size: {}", ui.style().get(Style::FONT_SIZE).unwrap_or(0.0)); + // ERROR: If two styles are generated from the same + // "make_style" function, they will always return same on comparison + // even if the inner contents are modified after creation + // This is because style comparisons only care about "resource handles" if style != ui.style() { + println!("Old/New style are different"); ui.set_style(style.clone()); } + if (ui.style().get(Style::FONT_SIZE) as Option).unwrap() + != self.settings.general.ui_font_size { + println!("Old/New font size are different"); + ui.set_style(style.clone()); + } } } } diff --git a/fyrox-ui/src/lib.rs b/fyrox-ui/src/lib.rs index 63b514e7a..822312669 100644 --- a/fyrox-ui/src/lib.rs +++ b/fyrox-ui/src/lib.rs @@ -324,6 +324,7 @@ use crate::{ resource::{StyleResource, StyleResourceExt}, Style, DEFAULT_STYLE, }, + text::TextMessage, widget::{Widget, WidgetBuilder, WidgetMaterial, WidgetMessage}, }; use copypasta::ClipboardContext; @@ -1534,6 +1535,19 @@ impl UserInterface { } ui.send(node, WidgetMessage::Style(ui.style.clone())); + ui.send( + node, + TextMessage::FontSize( + (ui.style.get(Style::FONT_SIZE) as Option) + .unwrap() + .into(), + ), + ); + // This WidgetMessage::Style replaces old style in `Widget` + // but does not update font size + // because `Widget` does not carry a "font" value + // therefore there is no "font" for it to update + // Then why is `font` stored in `Style`? } } From 61e6ecd18bb1caef92b7079fb12e1cf9ccebd0a4 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sat, 18 Apr 2026 18:05:47 +0800 Subject: [PATCH 10/24] Added `pub const UI_FONT_SIZE` to Editor, added `fn set_style` to FormattedText, added style update to Text and TextBox, boilerplate work - Every Text/TextBox widget in editor/ now explicitly uses `Editor::UI_FONT_SIZE` instead of the default `Style::FONT_SIZE` --- editor/src/asset/creator.rs | 4 +- editor/src/asset/dependency.rs | 44 ++++++++++--------- editor/src/asset/item.rs | 4 +- editor/src/asset/menu.rs | 16 +++++-- editor/src/asset/selector.rs | 2 + editor/src/audio/bus.rs | 4 ++ editor/src/audio/mod.rs | 7 ++- editor/src/audio/preview.rs | 6 ++- editor/src/command/panel.rs | 3 +- editor/src/configurator.rs | 8 +++- editor/src/export/mod.rs | 9 +++- editor/src/lib.rs | 40 ++++++++++++----- editor/src/light.rs | 5 ++- editor/src/mesh.rs | 4 +- editor/src/particle.rs | 5 ++- editor/src/plugins/absm/blendspace.rs | 8 ++++ editor/src/plugins/absm/node.rs | 3 ++ editor/src/plugins/absm/socket.rs | 2 + editor/src/plugins/animation/ruler.rs | 7 ++- editor/src/plugins/animation/toolbar.rs | 3 ++ editor/src/plugins/animation/track.rs | 8 ++++ editor/src/plugins/inspector/editors/font.rs | 3 ++ .../src/plugins/inspector/editors/handle.rs | 3 +- .../src/plugins/inspector/editors/resource.rs | 4 +- .../src/plugins/inspector/editors/script.rs | 4 +- .../plugins/inspector/editors/shader/mod.rs | 3 ++ .../inspector/editors/spritesheet/mod.rs | 3 ++ .../inspector/editors/spritesheet/window.rs | 3 ++ .../src/plugins/inspector/editors/surface.rs | 4 +- .../src/plugins/inspector/editors/texture.rs | 4 +- .../inspector/editors/triangle_buffer.rs | 3 ++ .../inspector/editors/vertex_buffer.rs | 3 ++ editor/src/plugins/inspector/mod.rs | 2 + editor/src/plugins/material/editor.rs | 4 +- editor/src/plugins/material/mod.rs | 3 ++ editor/src/plugins/stats.rs | 2 + editor/src/plugins/tilemap/autotile.rs | 6 +++ editor/src/plugins/tilemap/brush_macro.rs | 11 ++++- editor/src/plugins/tilemap/collider_editor.rs | 6 +++ editor/src/plugins/tilemap/colliders_tab.rs | 5 +++ editor/src/plugins/tilemap/handle_editor.rs | 1 + editor/src/plugins/tilemap/handle_field.rs | 3 ++ editor/src/plugins/tilemap/macro_inspector.rs | 2 + editor/src/plugins/tilemap/macro_tab.rs | 6 +++ editor/src/plugins/tilemap/mod.rs | 1 + editor/src/plugins/tilemap/palette.rs | 2 + editor/src/plugins/tilemap/panel.rs | 5 ++- editor/src/plugins/tilemap/panel_preview.rs | 1 + editor/src/plugins/tilemap/properties_tab.rs | 8 ++++ editor/src/plugins/tilemap/tile_editor.rs | 1 + editor/src/plugins/tilemap/tile_inspector.rs | 1 + .../src/plugins/tilemap/tile_prop_editor.rs | 2 + editor/src/plugins/tilemap/tileset.rs | 6 ++- editor/src/plugins/tilemap/wfc.rs | 6 +++ editor/src/scene/dialog.rs | 5 ++- editor/src/scene/property.rs | 2 + editor/src/scene/selector.rs | 3 ++ editor/src/scene_viewer/mod.rs | 15 ++++++- editor/src/stats.rs | 3 ++ editor/src/ui_scene/bbcode.rs | 5 ++- editor/src/utils/doc.rs | 3 ++ editor/src/world/item.rs | 3 +- fyrox-ui/src/lib.rs | 9 ---- 63 files changed, 292 insertions(+), 69 deletions(-) diff --git a/editor/src/asset/creator.rs b/editor/src/asset/creator.rs index d9c60670d..5aad376cf 100644 --- a/editor/src/asset/creator.rs +++ b/editor/src/asset/creator.rs @@ -32,6 +32,7 @@ use crate::{ list_view::{ListViewBuilder, ListViewMessage}, message::UiMessage, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::TextMessage, text_box::TextBoxBuilder, utils::make_dropdown_list_option, @@ -41,7 +42,7 @@ use crate::{ }, }, message::MessageSender, - Message, + Editor, Message, }; use fyrox::gui::button::Button; use fyrox::gui::list_view::ListView; @@ -97,6 +98,7 @@ impl ResourceCreator { .with_margin(Thickness::uniform(1.0)), ) .with_text(&name_str) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); name }) diff --git a/editor/src/asset/dependency.rs b/editor/src/asset/dependency.rs index e1d4d524c..cde892e2f 100644 --- a/editor/src/asset/dependency.rs +++ b/editor/src/asset/dependency.rs @@ -18,31 +18,34 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. -use crate::fyrox::{ - asset::{ - graph::{ResourceDependencyGraph, ResourceGraphNode}, - untyped::UntypedResource, - }, - core::{log::Log, pool::Handle}, - gui::{ - button::{ButtonBuilder, ButtonMessage}, - copypasta::ClipboardProvider, - grid::{Column, GridBuilder, Row}, - message::UiMessage, - scroll_viewer::ScrollViewerBuilder, - stack_panel::StackPanelBuilder, - text::TextBuilder, - tree::{TreeBuilder, TreeRootBuilder, TreeRootMessage}, - widget::WidgetBuilder, - window::{WindowBuilder, WindowMessage, WindowTitle}, - BuildContext, HorizontalAlignment, Orientation, Thickness, UserInterface, - VerticalAlignment, +use crate::{ + fyrox::{ + asset::{ + graph::{ResourceDependencyGraph, ResourceGraphNode}, + untyped::UntypedResource, + }, + core::{log::Log, pool::Handle}, + gui::{ + button::{ButtonBuilder, ButtonMessage}, + copypasta::ClipboardProvider, + grid::{Column, GridBuilder, Row}, + message::UiMessage, + scroll_viewer::ScrollViewerBuilder, + stack_panel::StackPanelBuilder, + text::TextBuilder, + tree::{TreeBuilder, TreeRootBuilder, TreeRootMessage}, + widget::WidgetBuilder, + window::{WindowBuilder, WindowMessage, WindowTitle}, + BuildContext, HorizontalAlignment, Orientation, Thickness, UserInterface, + VerticalAlignment, + }, }, + Editor, }; -use fyrox::asset::manager::ResourceManager; use fyrox::gui::button::Button; use fyrox::gui::tree::{Tree, TreeRoot}; use fyrox::gui::window::{Window, WindowAlignment}; +use fyrox::{asset::manager::ResourceManager, gui::style::resource::StyleResourceExt}; pub struct DependencyViewer { pub window: Handle, @@ -77,6 +80,7 @@ fn build_tree_recursively( WidgetBuilder::new().with_vertical_alignment(VerticalAlignment::Center), ) .with_text(format!("{name} ({data_type})")) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .build(ctx) diff --git a/editor/src/asset/item.rs b/editor/src/asset/item.rs index 3566eb9ef..5bca42899 100644 --- a/editor/src/asset/item.rs +++ b/editor/src/asset/item.rs @@ -49,7 +49,7 @@ use crate::{ scene::tilemap::{brush::TileMapBrush, tileset::TileSet}, }, message::MessageSender, - Message, + Editor, Message, }; use fyrox::core::ok_or_return; use fyrox::gui::border::Border; @@ -357,6 +357,7 @@ fn make_tooltip(ctx: &mut BuildContext, text: &str) -> RcUiNodeHandle { ) .with_wrap(WrapMode::Letter) .with_text(text) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) @@ -421,6 +422,7 @@ impl AssetItemBuilder { .to_string(), ) .with_shadow(true) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) diff --git a/editor/src/asset/menu.rs b/editor/src/asset/menu.rs index f02cfb562..c30196dd1 100644 --- a/editor/src/asset/menu.rs +++ b/editor/src/asset/menu.rs @@ -23,9 +23,14 @@ use crate::{ fyrox::{ asset::manager::ResourceManager, core::{ - futures::executor::block_on, log::Log, ok_or_return, pool::Handle, - pool::HandlesVecExtension, reflect::prelude::*, type_traits::prelude::*, - visitor::prelude::*, SafeLock, + futures::executor::block_on, + log::Log, + ok_or_return, + pool::{Handle, HandlesVecExtension}, + reflect::prelude::*, + type_traits::prelude::*, + visitor::prelude::*, + SafeLock, }, engine::Engine, graph::SceneGraph, @@ -44,6 +49,7 @@ use crate::{ }, popup::{Placement, PopupBuilder, PopupMessage}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::{TextBox, TextBoxBuilder, TextCommitMode}, widget::{Widget, WidgetBuilder, WidgetMessage}, @@ -53,7 +59,7 @@ use crate::{ }, }, message::MessageSender, - Message, + Editor, Message, }; use std::{ fs::File, @@ -163,6 +169,7 @@ impl AssetRenameDialogBuilder { "Enter a new name for {old_file_name}.{extension} resource." )) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -174,6 +181,7 @@ impl AssetRenameDialogBuilder { ) .with_text(&old_file_name) .with_text_commit_mode(TextCommitMode::Immediate) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); name_field }) diff --git a/editor/src/asset/selector.rs b/editor/src/asset/selector.rs index 338186f6d..5be58d6b6 100644 --- a/editor/src/asset/selector.rs +++ b/editor/src/asset/selector.rs @@ -61,6 +61,7 @@ use crate::{ UserInterface, VerticalAlignment, }, }, + Editor, }; use fyrox::gui::style::resource::StyleResourceExt; use fyrox::gui::style::Style; @@ -197,6 +198,7 @@ impl ItemBuilder { .map(|file_name| file_name.to_string_lossy().to_string()) .unwrap_or_default(), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) diff --git a/editor/src/audio/bus.rs b/editor/src/audio/bus.rs index 7a43c8827..e64171c30 100644 --- a/editor/src/audio/bus.rs +++ b/editor/src/audio/bus.rs @@ -36,6 +36,7 @@ use crate::fyrox::{ }, scene::sound::{AudioBus, AudioBusGraph}, }; +use crate::Editor; use fyrox::gui::dropdown_list::DropdownList; use fyrox::gui::list_view::ListView; use fyrox::gui::message::MessageData; @@ -118,6 +119,7 @@ fn make_effect_names(names: &[String], ctx: &mut BuildContext) -> Vec Vec Ha TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::left(5.0))) .with_text(format!("{}", entry.work_dir.display(),)) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), )) @@ -146,6 +148,7 @@ impl Configurator { TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_text(message) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child( @@ -161,6 +164,7 @@ impl Configurator { .with_vertical_alignment(VerticalAlignment::Center), ) .with_text("Working Directory") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -178,6 +182,7 @@ impl Configurator { .unwrap(), ) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); tb_work_dir }) @@ -208,6 +213,7 @@ impl Configurator { ) .with_text("Previous Configurations") .with_horizontal_text_alignment(HorizontalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ diff --git a/editor/src/export/mod.rs b/editor/src/export/mod.rs index 76ec0662a..9f452e723 100644 --- a/editor/src/export/mod.rs +++ b/editor/src/export/mod.rs @@ -54,7 +54,7 @@ use crate::{ }, }, message::MessageSender, - Message, + Editor, Message, }; use fyrox_build_tools::export::{BuildResult, ExportOptions}; use std::sync::{ @@ -89,6 +89,7 @@ fn make_title_text(text: &str, row: usize, ctx: &mut BuildContext) -> Handle {}", message.content)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); ui.send(entry, WidgetMessage::link_with(self.log)); diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 51546edd2..65c6cb0a5 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -554,7 +554,9 @@ pub struct SceneLoadingWindow { impl SceneLoadingWindow { pub fn new(ctx: &mut BuildContext) -> Self { - let scene_list_text = TextBuilder::new(WidgetBuilder::new()).build(ctx); + let scene_list_text = TextBuilder::new(WidgetBuilder::new()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) + .build(ctx); let window = WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(100.0)) .with_title(WindowTitle::text("Please wait...")) .can_close(false) @@ -570,6 +572,7 @@ impl SceneLoadingWindow { TextBuilder::new( WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .with_wrap(WrapMode::Word) .with_text( "Please wait until the following scene(s) are \ @@ -803,7 +806,8 @@ impl Editor { let ui = engine.user_interfaces.first_mut(); if let Some(style) = styles.get(&settings.general.style) { - style.set(Style::FONT_SIZE, settings.general.ui_font_size); + // style.set(Style::FONT_SIZE, settings.general.ui_font_size); + style.set(Self::UI_FONT_SIZE, settings.general.ui_font_size); ui.set_style(style.clone()); } @@ -2271,6 +2275,7 @@ impl Editor { TextBuilder::new(WidgetBuilder::new().with_desired_position(Vector2::new(300.0, 300.0))) .with_text("This is some text.") + .with_font_size(ui.build_ctx().style.property(Editor::UI_FONT_SIZE)) .build(&mut ui.build_ctx()); let entry = EditorSceneEntry::new_ui_scene( @@ -2790,26 +2795,39 @@ impl Editor { if self.settings.try_save() { println!("Need Update"); let ui = self.engine.user_interfaces.first_mut(); - println!("Old style font size: {}", ui.style().get(Style::FONT_SIZE).unwrap_or(0.0)); + println!( + "Old style font size: {}", + ui.style().get(Self::UI_FONT_SIZE).unwrap_or(0.0) + ); if let Some(style) = self.styles.get(&self.settings.general.style) { // ISSUE: They are the same resource ref - style.set(Style::FONT_SIZE, self.settings.general.ui_font_size); + // style.set(Style::FONT_SIZE, self.settings.general.ui_font_size); + style.set(Self::UI_FONT_SIZE, self.settings.general.ui_font_size); println!("Got new style"); - println!("New style font size: {}", style.get(Style::FONT_SIZE).unwrap_or(0.0)); - println!("Again Old style font size: {}", ui.style().get(Style::FONT_SIZE).unwrap_or(0.0)); + println!( + "New style font size: {}", + style.get(Self::UI_FONT_SIZE).unwrap_or(0.0) + ); + println!( + "Again Old style font size: {}", + ui.style().get(Self::UI_FONT_SIZE).unwrap_or(0.0) + ); // ERROR: If two styles are generated from the same // "make_style" function, they will always return same on comparison // even if the inner contents are modified after creation // This is because style comparisons only care about "resource handles" if style != ui.style() { println!("Old/New style are different"); - ui.set_style(style.clone()); + // ui.set_style(style.clone()); } - if (ui.style().get(Style::FONT_SIZE) as Option).unwrap() - != self.settings.general.ui_font_size { - println!("Old/New font size are different"); - ui.set_style(style.clone()); + if (ui.style().get(Self::UI_FONT_SIZE) as Option).unwrap() + != self.settings.general.ui_font_size + { + println!("Old/New font size are different"); + ui.set_style(style.clone()); } + // Update anyway + ui.set_style(style.clone()); } } } diff --git a/editor/src/light.rs b/editor/src/light.rs index 68a479432..9b7891501 100644 --- a/editor/src/light.rs +++ b/editor/src/light.rs @@ -33,6 +33,7 @@ use crate::{ progress_bar::{ProgressBar, ProgressBarBuilder, ProgressBarMessage}, scroll_viewer::ScrollViewerBuilder, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, widget::{WidgetBuilder, WidgetMessage}, window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, @@ -45,7 +46,7 @@ use crate::{ }, }, scene::GameScene, - Engine, + Editor, Engine, }; use std::{ path::PathBuf, @@ -128,6 +129,7 @@ impl ProgressWindow { take different amount of time depending on the settings.", ) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -144,6 +146,7 @@ impl ProgressWindow { .with_horizontal_alignment(HorizontalAlignment::Center) .with_vertical_alignment(VerticalAlignment::Center), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); text }) diff --git a/editor/src/mesh.rs b/editor/src/mesh.rs index 879c81563..2cb64d27d 100644 --- a/editor/src/mesh.rs +++ b/editor/src/mesh.rs @@ -32,6 +32,7 @@ use crate::{ scroll_viewer::ScrollViewerBuilder, stack_panel::StackPanel, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, utils::make_simple_tooltip, widget::WidgetBuilder, @@ -60,7 +61,7 @@ use crate::{ GameScene, Selection, }, world::selection::GraphSelection, - Message, + Editor, Message, }; use fyrox::core::math::TriangleDefinition; use fyrox::gui::VerticalAlignment; @@ -333,6 +334,7 @@ impl SurfaceDataViewer { let info = TextBuilder::new(WidgetBuilder::new().with_vertical_alignment(VerticalAlignment::Top)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let content = GridBuilder::new( diff --git a/editor/src/particle.rs b/editor/src/particle.rs index 189b73603..2815fb1d3 100644 --- a/editor/src/particle.rs +++ b/editor/src/particle.rs @@ -35,6 +35,7 @@ use crate::fyrox::{ grid::{Column, GridBuilder, Row}, message::UiMessage, numeric::{NumericUpDownBuilder, NumericUpDownMessage}, + style::resource::StyleResourceExt, text::TextBuilder, widget::WidgetBuilder, BuildContext, Thickness, VerticalAlignment, @@ -43,7 +44,7 @@ use crate::fyrox::{ }; use crate::{ scene::{GameScene, Selection}, - Message, FIXED_TIMESTEP, + Editor, Message, FIXED_TIMESTEP, }; pub struct ParticleSystemPreviewControlPanel { @@ -84,6 +85,7 @@ impl ParticleSystemPreviewControlPanel { .with_margin(Thickness::uniform(1.0)), ) .with_text("Preview") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .build(ctx); @@ -161,6 +163,7 @@ impl ParticleSystemPreviewControlPanel { .with_margin(Thickness::uniform(1.0)), ) .with_text("Playback Time") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ diff --git a/editor/src/plugins/absm/blendspace.rs b/editor/src/plugins/absm/blendspace.rs index 5eb493de4..6f574d8b4 100644 --- a/editor/src/plugins/absm/blendspace.rs +++ b/editor/src/plugins/absm/blendspace.rs @@ -56,6 +56,7 @@ use crate::plugins::absm::{ }, selection::{AbsmSelection, SelectedEntity}, }; +use crate::Editor; use crate::{menu::create_menu_item, message::MessageSender}; use fyrox::gui::menu::{ContextMenuBuilder, MenuItem}; @@ -627,6 +628,7 @@ impl BlendSpaceFieldPointBuilder { .with_clip_to_bounds(false), ) .with_text(format!("{:?}", self.index)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_width(10.0) @@ -685,6 +687,7 @@ impl BlendSpaceEditor { .with_height(22.0) .with_vertical_alignment(VerticalAlignment::Top), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); max_y }) @@ -697,6 +700,7 @@ impl BlendSpaceEditor { .with_vertical_alignment(VerticalAlignment::Center), ) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); y_axis_name }) @@ -708,6 +712,7 @@ impl BlendSpaceEditor { .with_margin(Thickness::uniform(1.0)) .with_vertical_alignment(VerticalAlignment::Bottom), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); min_y }), @@ -734,6 +739,7 @@ impl BlendSpaceEditor { HorizontalAlignment::Left, ), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); min_x }) @@ -748,6 +754,7 @@ impl BlendSpaceEditor { ), ) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); x_axis_name }) @@ -762,6 +769,7 @@ impl BlendSpaceEditor { ), ) .with_horizontal_text_alignment(HorizontalAlignment::Right) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); max_x }), diff --git a/editor/src/plugins/absm/node.rs b/editor/src/plugins/absm/node.rs index e3cff5bdc..08fc0b756 100644 --- a/editor/src/plugins/absm/node.rs +++ b/editor/src/plugins/absm/node.rs @@ -38,6 +38,7 @@ use crate::fyrox::{ }; use crate::plugins::absm::selectable::{Selectable, SelectableMessage}; use crate::plugins::absm::socket::Socket; +use crate::Editor; use fyrox::core::pool::HandlesVecExtension; use fyrox::gui::border::Border; use fyrox::gui::button::Button; @@ -379,6 +380,7 @@ where .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Center) .with_text(format!("{} ({})", self.name, self.model_handle)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); name }) @@ -431,6 +433,7 @@ where .with_margin(Thickness::uniform(2.0)), ) .with_text(title) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) diff --git a/editor/src/plugins/absm/socket.rs b/editor/src/plugins/absm/socket.rs index b64ab16fc..f6d9fa420 100644 --- a/editor/src/plugins/absm/socket.rs +++ b/editor/src/plugins/absm/socket.rs @@ -34,6 +34,7 @@ use crate::fyrox::{ BuildContext, Control, Orientation, Thickness, UiNode, UserInterface, VerticalAlignment, }, }; +use crate::Editor; use fyrox::gui::message::MessageData; use fyrox::gui::style::resource::StyleResourceExt; @@ -200,6 +201,7 @@ impl SocketBuilder { ) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text(format!("{:?}", self.index)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } else { Handle::NONE diff --git a/editor/src/plugins/animation/ruler.rs b/editor/src/plugins/animation/ruler.rs index 84354dd3a..2436f9c7e 100644 --- a/editor/src/plugins/animation/ruler.rs +++ b/editor/src/plugins/animation/ruler.rs @@ -43,6 +43,7 @@ use crate::fyrox::{ }, }; use crate::menu::create_menu_item; +use crate::Editor; use fyrox::gui::curve::{CurveTransformCell, STANDARD_GRID_SIZE}; use fyrox::gui::menu::{ContextMenuBuilder, MenuItem}; @@ -470,7 +471,11 @@ impl RulerBuilder { .with_foreground(ctx.style.property(Style::BRUSH_LIGHTER)) .build(ctx), transform: Default::default(), - text: RefCell::new(FormattedTextBuilder::new(ctx.default_font()).build()), + text: RefCell::new( + FormattedTextBuilder::new(ctx.default_font()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) + .build(), + ), value: self.value, drag_context: None, signals: Default::default(), diff --git a/editor/src/plugins/animation/toolbar.rs b/editor/src/plugins/animation/toolbar.rs index 9805d318d..61ee02b06 100644 --- a/editor/src/plugins/animation/toolbar.rs +++ b/editor/src/plugins/animation/toolbar.rs @@ -68,6 +68,7 @@ use crate::{ selector::{AllowedType, HierarchyNode, NodeSelectorMessage, NodeSelectorWindowBuilder}, Selection, }, + Editor, }; use fyrox::core::color::Color; use fyrox::gui::utils::ImageButtonBuilder; @@ -124,6 +125,7 @@ impl RootMotionDropdownArea { TextBuilder::new(WidgetBuilder::new().on_row(row).on_column(0)) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text(text) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } @@ -535,6 +537,7 @@ impl Toolbar { TextBuilder::new(WidgetBuilder::new()) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text("Enabled") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .build(ctx); diff --git a/editor/src/plugins/animation/track.rs b/editor/src/plugins/animation/track.rs index f7d3d63bd..4d225f9db 100644 --- a/editor/src/plugins/animation/track.rs +++ b/editor/src/plugins/animation/track.rs @@ -103,6 +103,7 @@ use crate::{ Selection, }, utils::{self}, + Editor, }; use fyrox::core::warn; use std::{ @@ -525,6 +526,7 @@ impl TrackViewBuilder { .on_column(1), ) .with_text(self.name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); name_text }), @@ -1525,6 +1527,9 @@ impl TrackList { model_track_binding.target().index(), model_track_binding.target().generation() )) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx), ) .build(ctx); @@ -1600,6 +1605,9 @@ impl TrackList { ), ) .with_text(curve_name) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx), ), ) diff --git a/editor/src/plugins/inspector/editors/font.rs b/editor/src/plugins/inspector/editors/font.rs index 917e1dd65..d0d457963 100644 --- a/editor/src/plugins/inspector/editors/font.rs +++ b/editor/src/plugins/inspector/editors/font.rs @@ -39,11 +39,13 @@ use crate::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageDirection, UiMessage}, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, widget::{Widget, WidgetBuilder, WidgetMessage}, BuildContext, Control, UiNode, UserInterface, }, }, + Editor, }; use fyrox::asset::manager::ResourceManager; @@ -180,6 +182,7 @@ impl FontFieldBuilder { .with_wrap(WrapMode::Word) .with_text(make_name(&resource_manager, &self.font)) .with_font(self.font.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); text_preview }) diff --git a/editor/src/plugins/inspector/editors/handle.rs b/editor/src/plugins/inspector/editors/handle.rs index ea1d08b42..7f70f0b9d 100644 --- a/editor/src/plugins/inspector/editors/handle.rs +++ b/editor/src/plugins/inspector/editors/handle.rs @@ -52,7 +52,7 @@ use crate::{ message::MessageSender, scene::selector::{HierarchyNode, NodeSelectorMessage, NodeSelectorWindowBuilder}, world::item::SceneItem, - Message, UiMessage, UiNode, UserInterface, VerticalAlignment, + Editor, Message, UiMessage, UiNode, UserInterface, VerticalAlignment, }; use fyrox::core::PhantomDataSendSync; use fyrox::gui::button::Button; @@ -378,6 +378,7 @@ impl HandlePropertyEditorBuilder { } else { "Err: Desync!".to_owned() }) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let locate_img = include_bytes!("../../../../resources/locate.png"); let locate = make_button(ctx, locate_img, Color::repeat(180), 2, "Locate Object"); diff --git a/editor/src/plugins/inspector/editors/resource.rs b/editor/src/plugins/inspector/editors/resource.rs index 0cb6c809d..09237a4fa 100644 --- a/editor/src/plugins/inspector/editors/resource.rs +++ b/editor/src/plugins/inspector/editors/resource.rs @@ -44,6 +44,7 @@ use crate::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageData, MessageDirection, UiMessage}, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, utils::{make_asset_preview_tooltip, ImageButtonBuilder}, widget::{Widget, WidgetBuilder, WidgetMessage}, @@ -53,7 +54,7 @@ use crate::{ load_image, message::MessageSender, plugins::inspector::EditorEnvironment, - utils, Message, + utils, Editor, Message, }; use std::{ any::TypeId, @@ -338,6 +339,7 @@ where ) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text(resource_path(&resource_manager, &self.resource)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); name }) diff --git a/editor/src/plugins/inspector/editors/script.rs b/editor/src/plugins/inspector/editors/script.rs index ac76ecb66..20c256869 100644 --- a/editor/src/plugins/inspector/editors/script.rs +++ b/editor/src/plugins/inspector/editors/script.rs @@ -40,6 +40,7 @@ use crate::fyrox::{ PropertyFilter, }, message::{MessageDirection, UiMessage}, + style::resource::StyleResourceExt, text::TextBuilder, utils::make_simple_tooltip, widget::{Widget, WidgetBuilder}, @@ -50,7 +51,7 @@ use crate::fyrox::{ use crate::plugins::inspector::EditorEnvironment; use crate::{ settings::{general::ScriptEditor, SettingsData}, - DropdownListBuilder, + DropdownListBuilder, Editor, }; use fyrox::gui::button::Button; @@ -345,6 +346,7 @@ impl PropertyEditorDefinition for ScriptPropertyEditorDefinition { TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(3.0))) .with_text("Edit...") .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.build_context.style.property(Editor::UI_FONT_SIZE)) .build(ctx.build_context), ) .build(ctx.build_context); diff --git a/editor/src/plugins/inspector/editors/shader/mod.rs b/editor/src/plugins/inspector/editors/shader/mod.rs index a29bb79f9..b58febae2 100644 --- a/editor/src/plugins/inspector/editors/shader/mod.rs +++ b/editor/src/plugins/inspector/editors/shader/mod.rs @@ -18,6 +18,7 @@ // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE // SOFTWARE. +use crate::Editor; use fyrox::{ core::{pool::Handle, reflect::prelude::*, type_traits::prelude::*, visitor::prelude::*}, gui::{ @@ -25,6 +26,7 @@ use fyrox::{ formatted_text::WrapMode, message::{MessageData, UiMessage}, scroll_viewer::ScrollViewerBuilder, + style::resource::StyleResourceExt, text::TextMessage, text_box::{TextBox, TextBoxBuilder, TextCommitMode}, widget::WidgetBuilder, @@ -97,6 +99,7 @@ impl ShaderSourceCodeEditorBuilder { .with_padding(Thickness::uniform(2.0)) .with_text_commit_mode(TextCommitMode::LostFocusPlusEnter) .with_text(&self.code.0) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let content = ScrollViewerBuilder::new(WidgetBuilder::new()) diff --git a/editor/src/plugins/inspector/editors/spritesheet/mod.rs b/editor/src/plugins/inspector/editors/spritesheet/mod.rs index 1f33f3ef8..d26b801e8 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/mod.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/mod.rs @@ -32,6 +32,7 @@ use crate::fyrox::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageDirection, UiMessage}, + style::resource::StyleResourceExt, text::TextBuilder, widget::{Widget, WidgetBuilder}, window::WindowMessage, @@ -40,6 +41,7 @@ use crate::fyrox::{ scene::animation::spritesheet::prelude::*, }; use crate::plugins::inspector::editors::spritesheet::window::SpriteSheetFramesEditorWindow; +use crate::Editor; use fyrox::gui::button::Button; use fyrox::gui::message::MessageData; @@ -113,6 +115,7 @@ impl SpriteSheetFramesPropertyEditor { .on_column(0), ) .with_text(format!("Frames: {}", container.len())) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ diff --git a/editor/src/plugins/inspector/editors/spritesheet/window.rs b/editor/src/plugins/inspector/editors/spritesheet/window.rs index 02f93f40d..1c122a5b2 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/window.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/window.rs @@ -44,6 +44,7 @@ use crate::fyrox::{ scene::animation::spritesheet::prelude::*, }; use crate::plugins::inspector::editors::spritesheet::SpriteSheetFramesPropertyEditorMessage; +use crate::Editor; use fyrox::core::pool::HandlesVecExtension; use fyrox::gui::border::Border; @@ -269,6 +270,7 @@ impl SpriteSheetFramesEditorWindow { .with_tooltip(make_simple_tooltip(ctx, column_tooltip)), ) .with_text("Width") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -288,6 +290,7 @@ impl SpriteSheetFramesEditorWindow { .with_tooltip(make_simple_tooltip(ctx, row_tooltip)), ) .with_text("Height") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ diff --git a/editor/src/plugins/inspector/editors/surface.rs b/editor/src/plugins/inspector/editors/surface.rs index f3c282568..905337e78 100644 --- a/editor/src/plugins/inspector/editors/surface.rs +++ b/editor/src/plugins/inspector/editors/surface.rs @@ -46,6 +46,7 @@ use crate::{ }, message::{MessageData, MessageDirection, UiMessage}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, utils::{make_asset_preview_tooltip, ImageButtonBuilder}, widget::{Widget, WidgetBuilder, WidgetMessage}, @@ -57,7 +58,7 @@ use crate::{ message::MessageSender, plugins::inspector::EditorEnvironment, utils::make_pick_button, - Message, + Editor, Message, }; use std::{any::TypeId, sync::mpsc::Sender}; @@ -226,6 +227,7 @@ impl SurfaceDataPropertyEditor { let text = TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_text(surface_data_info(&resource_manager, &surface_resource)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let (image_preview_tooltip, image_preview) = make_asset_preview_tooltip(None, ctx); diff --git a/editor/src/plugins/inspector/editors/texture.rs b/editor/src/plugins/inspector/editors/texture.rs index 859a08409..07937e204 100644 --- a/editor/src/plugins/inspector/editors/texture.rs +++ b/editor/src/plugins/inspector/editors/texture.rs @@ -39,6 +39,7 @@ use crate::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageData, MessageDirection, UiMessage}, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, utils::{make_asset_preview_tooltip, ImageButtonBuilder}, widget::{Widget, WidgetBuilder, WidgetMessage}, @@ -49,7 +50,7 @@ use crate::{ load_image, message::MessageSender, plugins::inspector::EditorEnvironment, - utils, Message, + utils, Editor, Message, }; use std::{ any::TypeId, @@ -224,6 +225,7 @@ impl TextureEditorBuilder { .with_vertical_alignment(VerticalAlignment::Center), ) .with_text(texture_name(self.texture.as_ref(), &resource_manager)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let locate = ImageButtonBuilder::default() diff --git a/editor/src/plugins/inspector/editors/triangle_buffer.rs b/editor/src/plugins/inspector/editors/triangle_buffer.rs index ebe18cddc..39967e1c9 100644 --- a/editor/src/plugins/inspector/editors/triangle_buffer.rs +++ b/editor/src/plugins/inspector/editors/triangle_buffer.rs @@ -29,12 +29,14 @@ use crate::fyrox::{ InspectorError, PropertyChanged, }, message::UiMessage, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, widget::WidgetBuilder, Thickness, VerticalAlignment, }, scene::mesh::buffer::TriangleBuffer, }; +use crate::Editor; use std::any::TypeId; #[derive(Debug)] @@ -65,6 +67,7 @@ impl PropertyEditorDefinition for TriangleBufferPropertyEditorDefinition { .with_vertical_alignment(VerticalAlignment::Center), ) .with_text(triangle_buffer_description(value)) + .with_font_size(ctx.build_context.style.property(Editor::UI_FONT_SIZE)) .build(ctx.build_context), )) } diff --git a/editor/src/plugins/inspector/editors/vertex_buffer.rs b/editor/src/plugins/inspector/editors/vertex_buffer.rs index 5e1324f64..5b06e937a 100644 --- a/editor/src/plugins/inspector/editors/vertex_buffer.rs +++ b/editor/src/plugins/inspector/editors/vertex_buffer.rs @@ -28,12 +28,14 @@ use crate::fyrox::{ InspectorError, PropertyChanged, }, message::UiMessage, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, widget::WidgetBuilder, Thickness, VerticalAlignment, }, scene::mesh::buffer::VertexBuffer, }; +use crate::Editor; use std::any::TypeId; #[derive(Debug)] @@ -65,6 +67,7 @@ impl PropertyEditorDefinition for VertexBufferPropertyEditorDefinition { .with_vertical_alignment(VerticalAlignment::Center), ) .with_text(vertex_buffer_description(value)) + .with_font_size(ctx.build_context.style.property(Editor::UI_FONT_SIZE)) .build(ctx.build_context), )) } diff --git a/editor/src/plugins/inspector/mod.rs b/editor/src/plugins/inspector/mod.rs index e92508b0a..f5602206b 100644 --- a/editor/src/plugins/inspector/mod.rs +++ b/editor/src/plugins/inspector/mod.rs @@ -230,6 +230,7 @@ impl InspectorPlugin { ) .with_wrap(WrapMode::Word) .with_text(warning_text_str) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); warning_text }) @@ -245,6 +246,7 @@ impl InspectorPlugin { .on_column(0), ) .with_wrap(WrapMode::NoWrap) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); type_name_text }) diff --git a/editor/src/plugins/material/editor.rs b/editor/src/plugins/material/editor.rs index 2b54f2016..6feea1beb 100644 --- a/editor/src/plugins/material/editor.rs +++ b/editor/src/plugins/material/editor.rs @@ -45,6 +45,7 @@ use crate::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageData, UiMessage}, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, utils::{make_asset_preview_tooltip, make_simple_tooltip, ImageButtonBuilder}, widget::{Widget, WidgetBuilder, WidgetMessage}, @@ -56,7 +57,7 @@ use crate::{ message::MessageSender, plugins::inspector::EditorEnvironment, utils::make_pick_button, - Message, MessageDirection, + Editor, Message, MessageDirection, }; use std::{ any::TypeId, @@ -321,6 +322,7 @@ impl MaterialFieldEditorBuilder { TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_text(make_name(&resource_manager, &material)) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); text }) diff --git a/editor/src/plugins/material/mod.rs b/editor/src/plugins/material/mod.rs index 34533a159..e73f88a76 100644 --- a/editor/src/plugins/material/mod.rs +++ b/editor/src/plugins/material/mod.rs @@ -51,6 +51,7 @@ use crate::{ numeric::{NumericUpDownBuilder, NumericUpDownMessage}, scroll_viewer::ScrollViewerBuilder, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::TextBuilder, utils::make_simple_tooltip, vec::{ @@ -133,6 +134,7 @@ fn make_item_container(ctx: &mut BuildContext, name: &str, item: Handle) TextBuilder::new(WidgetBuilder::new()) .with_text(name) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child(item), @@ -313,6 +315,7 @@ impl MaterialEditor { ) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text("Shader") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ diff --git a/editor/src/plugins/stats.rs b/editor/src/plugins/stats.rs index 9a40f0e10..7dbb5e754 100644 --- a/editor/src/plugins/stats.rs +++ b/editor/src/plugins/stats.rs @@ -27,6 +27,7 @@ use crate::{ message::UiMessage, stack_panel::StackPanelBuilder, text::{Text, TextBuilder, TextMessage}, + style::resource::StyleResourceExt, widget::{WidgetBuilder, WidgetMessage}, window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, HorizontalAlignment, Thickness, VerticalAlignment, @@ -71,6 +72,7 @@ impl EditorPlugin for EditorStatisticsPlugin { let ctx = &mut ui.build_ctx(); self.text = TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); self.window = WindowBuilder::new(WidgetBuilder::new().with_width(200.0).with_height(130.0)) diff --git a/editor/src/plugins/tilemap/autotile.rs b/editor/src/plugins/tilemap/autotile.rs index 118ae6fc1..572c320ca 100644 --- a/editor/src/plugins/tilemap/autotile.rs +++ b/editor/src/plugins/tilemap/autotile.rs @@ -96,6 +96,7 @@ fn make_list_item(text: &str, ctx: &mut BuildContext) -> Handle { .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(text) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); DecoratorBuilder::new( BorderBuilder::new(WidgetBuilder::new().with_child(content)) @@ -498,6 +499,7 @@ impl BrushMacro for AutoTileMacro { ); let failure_log_label = TextBuilder::new(WidgetBuilder::new()) .with_text("Failure Log Level") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); self.failure_log_list = make_failure_log_list( WidgetBuilder::new().on_column(1), @@ -518,11 +520,13 @@ impl BrushMacro for AutoTileMacro { TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) .with_wrap(WrapMode::Word) .with_text(PATTERN_PROP_DESC) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let freq_prop_help_text = TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) .with_wrap(WrapMode::Word) .with_text(FREQUENCY_PROP_DESC) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let handle = StackPanelBuilder::new( WidgetBuilder::new() @@ -578,6 +582,7 @@ impl BrushMacro for AutoTileMacro { .with_child( TextBuilder::new(WidgetBuilder::new().on_column(1)) .with_text("Adjacent") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child(adjacent_toggle), @@ -591,6 +596,7 @@ impl BrushMacro for AutoTileMacro { .with_child( TextBuilder::new(WidgetBuilder::new().on_column(1)) .with_text("Diagonal") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child(diagonal_toggle), diff --git a/editor/src/plugins/tilemap/brush_macro.rs b/editor/src/plugins/tilemap/brush_macro.rs index 4e0630411..866463a5d 100644 --- a/editor/src/plugins/tilemap/brush_macro.rs +++ b/editor/src/plugins/tilemap/brush_macro.rs @@ -20,6 +20,7 @@ use super::*; use crate::command::{Command, CommandContext, CommandTrait}; +use crate::Editor; use fyrox::gui::dropdown_list::DropdownList; use fyrox::gui::message::{DeliveryMode, MessageData}; use fyrox::{ @@ -33,6 +34,7 @@ use fyrox::{ dropdown_list::{DropdownListBuilder, DropdownListMessage}, grid::{Column, GridBuilder, Row}, numeric::{NumericUpDownBuilder, NumericUpDownMessage}, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::TextBoxBuilder, }, @@ -708,6 +710,7 @@ impl MacroPropertyValueField { use TileSetPropertyValueElement as Element; let label = TextBuilder::new(WidgetBuilder::new()) .with_text(label) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let wb = WidgetBuilder::new().on_column(1); let textbox = match &value { @@ -723,7 +726,11 @@ impl MacroPropertyValueField { .with_value(*v) .build(ctx) .to_base(), - Element::String(v) => TextBoxBuilder::new(wb).with_text(v).build(ctx).to_base(), + Element::String(v) => TextBoxBuilder::new(wb) + .with_text(v) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) + .build(ctx) + .to_base(), }; let list = if let Ok(value) = value.try_into() { let (index, items) = make_index_and_value_list(prop, value, ctx); @@ -884,6 +891,7 @@ fn make_item(text: &str, ctx: &mut BuildContext) -> Handle { WidgetBuilder::new().with_child( TextBuilder::new(WidgetBuilder::new()) .with_text(text) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), )) @@ -948,6 +956,7 @@ impl MacroPropertyField { ) -> Self { let label = TextBuilder::new(WidgetBuilder::new()) .with_text(label) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let (index, items) = make_index_and_items(prop_type, value, tile_set, ctx); let list = DropdownListBuilder::new(WidgetBuilder::new().on_column(1)) diff --git a/editor/src/plugins/tilemap/collider_editor.rs b/editor/src/plugins/tilemap/collider_editor.rs index 7f6dab0f3..6dbc3048e 100644 --- a/editor/src/plugins/tilemap/collider_editor.rs +++ b/editor/src/plugins/tilemap/collider_editor.rs @@ -24,6 +24,7 @@ //! See [`TileColliderEditor`] for more information. use super::*; +use crate::Editor; use commands::SetTileSetTilesCommand; use fyrox::core::pool::ObjectOrVariant; use fyrox::gui::border::Border; @@ -44,6 +45,7 @@ use fyrox::{ image::ImageBuilder, message::UiMessage, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::{TextBoxBuilder, TextCommitMode}, utils::make_simple_tooltip, @@ -109,6 +111,7 @@ pub fn make_list_option(ctx: &mut BuildContext, name: &str) -> Handle { .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); DecoratorBuilder::new( BorderBuilder::new(WidgetBuilder::new().with_child(text)) @@ -142,16 +145,19 @@ impl TileColliderEditor { let show_button = make_show_button(Some(1), ctx); let name_field = TextBuilder::new(WidgetBuilder::new().on_column(3)) .with_text(collider_layer.name.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let custom_field = TextBoxBuilder::new(WidgetBuilder::new().with_visibility(value.is_custom())) .with_multiline(true) .with_wrap(WrapMode::Word) .with_text_commit_mode(TextCommitMode::Changed) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let error_field = TextBuilder::new(WidgetBuilder::new().with_visibility(false)) .with_wrap(WrapMode::Word) .with_horizontal_text_alignment(HorizontalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let index = collider_to_index(&value).unwrap_or_default(); let list = DropdownListBuilder::new(WidgetBuilder::new().on_column(4)) diff --git a/editor/src/plugins/tilemap/colliders_tab.rs b/editor/src/plugins/tilemap/colliders_tab.rs index a963c4980..e30ebc961 100644 --- a/editor/src/plugins/tilemap/colliders_tab.rs +++ b/editor/src/plugins/tilemap/colliders_tab.rs @@ -30,6 +30,7 @@ use fyrox::{ grid::*, list_view::{ListView, ListViewBuilder, ListViewMessage}, scroll_viewer::ScrollViewerBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::{TextBoxBuilder, TextCommitMode}, utils::{make_arrow, ArrowDirection}, @@ -120,6 +121,7 @@ pub fn make_list_item(ctx: &mut BuildContext, collider: &TileSetColliderLayer) - .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(collider.name.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) @@ -178,6 +180,7 @@ impl CollidersTab { .with_margin(Thickness::uniform(2.0)), ) .with_text("Colliders:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let left_side = GridBuilder::new( WidgetBuilder::new() @@ -197,10 +200,12 @@ impl CollidersTab { .with_margin(Thickness::right(4.0)), ) .with_text("Name:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let name_field = TextBoxBuilder::new(WidgetBuilder::new().with_height(20.0).on_column(1)) .with_text_commit_mode(TextCommitMode::Changed) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let remove_button = make_button( "Delete", diff --git a/editor/src/plugins/tilemap/handle_editor.rs b/editor/src/plugins/tilemap/handle_editor.rs index f5995d41e..bb0d11d2c 100644 --- a/editor/src/plugins/tilemap/handle_editor.rs +++ b/editor/src/plugins/tilemap/handle_editor.rs @@ -165,6 +165,7 @@ impl TileDefinitionHandleEditorBuilder { let field = TextBoxBuilder::new(WidgetBuilder::new()) .with_text(text) .with_text_commit_mode(TextCommitMode::LostFocusPlusEnter) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let button = ButtonBuilder::new(WidgetBuilder::new().on_column(1)) .with_content( diff --git a/editor/src/plugins/tilemap/handle_field.rs b/editor/src/plugins/tilemap/handle_field.rs index 944792f0e..d1ea4076f 100644 --- a/editor/src/plugins/tilemap/handle_field.rs +++ b/editor/src/plugins/tilemap/handle_field.rs @@ -26,6 +26,7 @@ use crate::fyrox::gui::{ define_widget_deref, grid::{Column, GridBuilder, Row}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::TextBoxBuilder, widget::Widget, @@ -77,6 +78,7 @@ fn value_to_string(value: Option) -> String { fn make_label(name: &str, ctx: &mut BuildContext) -> Handle { TextBuilder::new(WidgetBuilder::new()) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } @@ -136,6 +138,7 @@ impl TileHandleFieldBuilder { pub fn build(self, ctx: &mut BuildContext) -> Handle { let field = TextBoxBuilder::new(WidgetBuilder::new().on_column(1)) .with_text(value_to_string(self.value)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let goto_button = make_drawing_mode_button( ctx, diff --git a/editor/src/plugins/tilemap/macro_inspector.rs b/editor/src/plugins/tilemap/macro_inspector.rs index c07bdc4cb..aa3ff8d88 100644 --- a/editor/src/plugins/tilemap/macro_inspector.rs +++ b/editor/src/plugins/tilemap/macro_inspector.rs @@ -26,6 +26,7 @@ use fyrox::{ button::{Button, ButtonMessage}, grid::{Column, GridBuilder, Row}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, VerticalAlignment, }, @@ -132,6 +133,7 @@ impl ItemHeader { ) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let button = if has_cell { make_remove_button(ctx) diff --git a/editor/src/plugins/tilemap/macro_tab.rs b/editor/src/plugins/tilemap/macro_tab.rs index 2dbbbf316..9f6471161 100644 --- a/editor/src/plugins/tilemap/macro_tab.rs +++ b/editor/src/plugins/tilemap/macro_tab.rs @@ -34,6 +34,7 @@ use fyrox::gui::{ list_view::{ListView, ListViewBuilder, ListViewMessage}, scroll_viewer::ScrollViewerBuilder, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::{TextBoxBuilder, TextCommitMode}, utils::{make_arrow, ArrowDirection}, @@ -116,6 +117,7 @@ pub fn make_list_item( .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Right) .with_text(macro_name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child( @@ -127,6 +129,7 @@ pub fn make_list_item( .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(instance_name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) @@ -242,6 +245,7 @@ impl MacroTab { .with_margin(Thickness::uniform(2.0)), ) .with_text("Macros:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let left_side = GridBuilder::new( WidgetBuilder::new() @@ -263,10 +267,12 @@ impl MacroTab { .with_margin(Thickness::right(4.0)), ) .with_text("Name:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let name_field = TextBoxBuilder::new(WidgetBuilder::new().with_height(20.0).on_column(1)) .with_text_commit_mode(TextCommitMode::Changed) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let remove_button = make_button( "Delete", diff --git a/editor/src/plugins/tilemap/mod.rs b/editor/src/plugins/tilemap/mod.rs index d9be70fb8..af6ca7f51 100644 --- a/editor/src/plugins/tilemap/mod.rs +++ b/editor/src/plugins/tilemap/mod.rs @@ -929,6 +929,7 @@ pub fn make_named_value_list_option( .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let grid = GridBuilder::new(WidgetBuilder::new().with_child(icon).with_child(text)) .add_column(Column::strict(20.0)) diff --git a/editor/src/plugins/tilemap/palette.rs b/editor/src/plugins/tilemap/palette.rs index c421833df..89b72506c 100644 --- a/editor/src/plugins/tilemap/palette.rs +++ b/editor/src/plugins/tilemap/palette.rs @@ -46,6 +46,7 @@ use crate::{ formatted_text::{FormattedText, FormattedTextBuilder}, message::CursorIcon, message::{KeyCode, MessageDirection, MouseButton, UiMessage}, + style::resource::StyleResourceExt, widget::{Widget, WidgetBuilder, WidgetMessage}, BuildContext, Control, UiNode, UserInterface, }, @@ -2076,6 +2077,7 @@ impl PaletteWidgetBuilder { slice_mode: false, position_text: FormattedTextBuilder::new(ctx.inner().default_font.clone()) .with_brush(Brush::Solid(Color::WHITE)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(), selecting_tiles: FxHashSet::default(), highlight: FxHashMap::default(), diff --git a/editor/src/plugins/tilemap/panel.rs b/editor/src/plugins/tilemap/panel.rs index 27c69775a..13adb4687 100644 --- a/editor/src/plugins/tilemap/panel.rs +++ b/editor/src/plugins/tilemap/panel.rs @@ -47,6 +47,7 @@ use crate::{ gui::{ grid::SizeMode, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, window::Window, }, @@ -165,7 +166,9 @@ impl TileMapPanel { /// or the current active tool has changed, so the main purpose of the tile map panel is to manipulate /// this state. pub fn new(ctx: &mut BuildContext, state: TileDrawStateRef, sender: MessageSender) -> Self { - let tile_set_name = TextBuilder::new(WidgetBuilder::new().on_row(0)).build(ctx); + let tile_set_name = TextBuilder::new(WidgetBuilder::new().on_row(0)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) + .build(ctx); let preview = PanelPreviewBuilder::new( WidgetBuilder::new() .with_margin(Thickness::uniform(1.0)) diff --git a/editor/src/plugins/tilemap/panel_preview.rs b/editor/src/plugins/tilemap/panel_preview.rs index 36c840bc9..70e8b57e0 100644 --- a/editor/src/plugins/tilemap/panel_preview.rs +++ b/editor/src/plugins/tilemap/panel_preview.rs @@ -281,6 +281,7 @@ impl PanelPreviewBuilder { handle_text: FormattedTextBuilder::new(ctx.inner().default_font.clone()) .with_constraint(Vector2::new(f32::INFINITY, f32::INFINITY)) .with_brush(Brush::Solid(Color::WHITE)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(), handle_text_size: Vector2::default(), }) diff --git a/editor/src/plugins/tilemap/properties_tab.rs b/editor/src/plugins/tilemap/properties_tab.rs index 697266fa9..4d790eac4 100644 --- a/editor/src/plugins/tilemap/properties_tab.rs +++ b/editor/src/plugins/tilemap/properties_tab.rs @@ -145,6 +145,7 @@ fn make_list_item(ctx: &mut BuildContext, property: &TileSetPropertyLayer) -> Ha .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(property.name.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) @@ -179,6 +180,7 @@ fn make_value_widget(ctx: &mut BuildContext, value: NamableValue) -> Handle Hand .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(&named_value.name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ), ) @@ -298,6 +301,7 @@ impl PropertiesTab { .with_margin(Thickness::uniform(2.0)), ) .with_text("Properties:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let left_side = GridBuilder::new( WidgetBuilder::new() @@ -319,6 +323,7 @@ impl PropertiesTab { .with_margin(Thickness::right(4.0)), ) .with_text("Name:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let name_text_1 = TextBuilder::new( WidgetBuilder::new() @@ -326,10 +331,12 @@ impl PropertiesTab { .with_margin(Thickness::right(4.0)), ) .with_text("Name:") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let name_field = TextBoxBuilder::new(WidgetBuilder::new().with_height(20.0).on_column(1)) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text_commit_mode(TextCommitMode::Changed) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let remove_button = make_button( "Delete", @@ -384,6 +391,7 @@ impl PropertiesTab { let value_name_field = TextBoxBuilder::new(WidgetBuilder::new().with_height(20.0).on_column(1)) .with_text_commit_mode(TextCommitMode::Changed) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let edit_header = GridBuilder::new( WidgetBuilder::new() diff --git a/editor/src/plugins/tilemap/tile_editor.rs b/editor/src/plugins/tilemap/tile_editor.rs index ac2fb5e43..7a8e2b6f4 100644 --- a/editor/src/plugins/tilemap/tile_editor.rs +++ b/editor/src/plugins/tilemap/tile_editor.rs @@ -111,6 +111,7 @@ pub trait TileEditor: Send { fn make_label(name: &str, ctx: &mut BuildContext) -> Handle { TextBuilder::new(WidgetBuilder::new()) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } diff --git a/editor/src/plugins/tilemap/tile_inspector.rs b/editor/src/plugins/tilemap/tile_inspector.rs index 2b17d7592..b26b43d11 100644 --- a/editor/src/plugins/tilemap/tile_inspector.rs +++ b/editor/src/plugins/tilemap/tile_inspector.rs @@ -461,6 +461,7 @@ fn make_button( fn make_label(name: &str, ctx: &mut BuildContext) -> Handle { TextBuilder::new(WidgetBuilder::new()) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } diff --git a/editor/src/plugins/tilemap/tile_prop_editor.rs b/editor/src/plugins/tilemap/tile_prop_editor.rs index 73561359b..a74aaf73a 100644 --- a/editor/src/plugins/tilemap/tile_prop_editor.rs +++ b/editor/src/plugins/tilemap/tile_prop_editor.rs @@ -119,6 +119,7 @@ impl TilePropertyEditor { let draw_button = make_draw_button(Some(0), ctx); let name_field = TextBuilder::new(WidgetBuilder::new()) .with_text(prop_layer.name.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let value_field = match prop_layer.prop_type { TileSetPropertyType::I32 => { @@ -132,6 +133,7 @@ impl TilePropertyEditor { .to_base() } TileSetPropertyType::String => TextBoxBuilder::new(WidgetBuilder::new().on_column(1)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) .to_base(), TileSetPropertyType::NineSlice => { diff --git a/editor/src/plugins/tilemap/tileset.rs b/editor/src/plugins/tilemap/tileset.rs index ae9998982..dcf105f1b 100644 --- a/editor/src/plugins/tilemap/tileset.rs +++ b/editor/src/plugins/tilemap/tileset.rs @@ -135,6 +135,7 @@ fn make_tab( uuid, header: TextBuilder::new(WidgetBuilder::new().with_margin(TAB_MARGIN)) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) .to_base(), content, @@ -165,6 +166,7 @@ fn make_button( fn make_label(name: &str, ctx: &mut BuildContext) -> Handle { TextBuilder::new(WidgetBuilder::new()) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } @@ -239,7 +241,9 @@ impl TileSetEditor { let remove; let all_pages; let all_tiles; - let cell_position = TextBuilder::new(WidgetBuilder::new()).build(ctx); + let cell_position = TextBuilder::new(WidgetBuilder::new()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) + .build(ctx); let pick_button = make_drawing_mode_button( ctx, 20.0, diff --git a/editor/src/plugins/tilemap/wfc.rs b/editor/src/plugins/tilemap/wfc.rs index 6e2e4628d..fd50bb9b4 100644 --- a/editor/src/plugins/tilemap/wfc.rs +++ b/editor/src/plugins/tilemap/wfc.rs @@ -166,6 +166,7 @@ fn make_terrain_list_element( let number = TextBuilder::new(WidgetBuilder::new()) .with_text(terrain.to_string()) .with_horizontal_text_alignment(HorizontalAlignment::Right) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let color; let name; @@ -186,6 +187,7 @@ fn make_terrain_list_element( .build(ctx); let name_text = TextBuilder::new(WidgetBuilder::new().on_column(2)) .with_text(name.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let frequency_field = NumericUpDownBuilder::new( WidgetBuilder::new() @@ -536,11 +538,13 @@ impl BrushMacro for WfcMacro { TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) .with_wrap(WrapMode::Word) .with_text(PATTERN_PROP_DESC) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let freq_prop_help_text = TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) .with_wrap(WrapMode::Word) .with_text(FREQUENCY_PROP_DESC) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let constrain_edges = instance.constrain_edges; let attempts = instance.max_attempts; @@ -555,6 +559,7 @@ impl BrushMacro for WfcMacro { .with_child( TextBuilder::new(WidgetBuilder::new().on_column(1)) .with_text("Constrain Edges") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child(self.edges_toggle), @@ -568,6 +573,7 @@ impl BrushMacro for WfcMacro { .with_child( TextBuilder::new(WidgetBuilder::new()) .with_text("Max Attempts") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child(self.attempts_field), diff --git a/editor/src/scene/dialog.rs b/editor/src/scene/dialog.rs index c2a1ddc2f..c01b783bf 100644 --- a/editor/src/scene/dialog.rs +++ b/editor/src/scene/dialog.rs @@ -29,6 +29,7 @@ use crate::fyrox::{ message::UiMessage, scroll_viewer::ScrollViewerBuilder, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, text_box::TextBoxBuilder, widget::WidgetBuilder, @@ -43,7 +44,7 @@ use crate::{ commands::{make_delete_selection_command, selection_to_delete}, GameScene, }, - Message, + Editor, Message, }; use fyrox::gui::button::Button; use fyrox::gui::text_box::TextBox; @@ -79,6 +80,7 @@ impl NodeRemovalDialog { ) .with_wrap(WrapMode::Word) .with_text(text) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child( @@ -93,6 +95,7 @@ impl NodeRemovalDialog { ) .with_multiline(true) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); info_text }) diff --git a/editor/src/scene/property.rs b/editor/src/scene/property.rs index ebe584e3e..3bbb5118f 100644 --- a/editor/src/scene/property.rs +++ b/editor/src/scene/property.rs @@ -41,6 +41,7 @@ use crate::fyrox::{ BuildContext, Control, HorizontalAlignment, Orientation, Thickness, UiNode, UserInterface, }, }; +use crate::Editor; use fyrox::gui::button::Button; use fyrox::gui::control_trait_proxy_impls; use fyrox::gui::message::MessageData; @@ -151,6 +152,7 @@ impl PropertyDescriptor { .with_content( TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_text(name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .build(ctx) diff --git a/editor/src/scene/selector.rs b/editor/src/scene/selector.rs index 3843b62b1..5bc20c465 100644 --- a/editor/src/scene/selector.rs +++ b/editor/src/scene/selector.rs @@ -46,6 +46,7 @@ use crate::{ }, }, utils::make_node_name, + Editor, }; use fyrox::gui::button::Button; use fyrox::gui::control_trait_proxy_impls; @@ -152,6 +153,7 @@ impl HierarchyNode { .with_content( TextBuilder::new(WidgetBuilder::new().with_foreground(brush)) .with_text(make_node_name(&self.name, self.handle) + " - " + &self.inner_type_name) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .build(ctx) @@ -591,6 +593,7 @@ impl NodeSelectorWindowBuilder { .join("\n"), ) .with_wrap(WrapMode::Letter) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ diff --git a/editor/src/scene_viewer/mod.rs b/editor/src/scene_viewer/mod.rs index a760a6a2b..1f18337d3 100644 --- a/editor/src/scene_viewer/mod.rs +++ b/editor/src/scene_viewer/mod.rs @@ -61,7 +61,7 @@ use crate::{ scene_viewer::gizmo::{SceneGizmo, SceneGizmoAction}, settings::SettingsMessage, utils::enable_widget, - DropdownListBuilder, GameScene, Message, Mode, SaveSceneConfirmationDialogAction, + DropdownListBuilder, Editor, GameScene, Message, Mode, SaveSceneConfirmationDialogAction, SceneContainer, Settings, }; use fyrox::core::algebra::Vector2; @@ -126,6 +126,7 @@ impl GridSnappingMenu { .with_child( TextBuilder::new(WidgetBuilder::new().on_row(0).on_column(0)) .with_text("Grid Snapping") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -142,6 +143,7 @@ impl GridSnappingMenu { .with_child( TextBuilder::new(WidgetBuilder::new().on_row(1).on_column(0)) .with_text("X Step") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -158,6 +160,7 @@ impl GridSnappingMenu { .with_child( TextBuilder::new(WidgetBuilder::new().on_row(2).on_column(0)) .with_text("Y Step") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -174,6 +177,7 @@ impl GridSnappingMenu { .with_child( TextBuilder::new(WidgetBuilder::new().on_row(3).on_column(0)) .with_text("Z Step") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child({ @@ -477,6 +481,7 @@ impl SceneViewer { .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Center) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let scene_gizmo_image = ImageBuilder::new( @@ -908,6 +913,14 @@ impl SceneViewer { bottom: 2.0, })) .with_text(entry.name()) + .with_font_size( + engine + .user_interfaces + .first_mut() + .build_ctx() + .style + .property(Editor::UI_FONT_SIZE), + ) .build(&mut engine.user_interfaces.first_mut().build_ctx()) .to_base(); diff --git a/editor/src/stats.rs b/editor/src/stats.rs index 3caef0e8f..d9806b7f9 100644 --- a/editor/src/stats.rs +++ b/editor/src/stats.rs @@ -24,12 +24,14 @@ use crate::fyrox::{ gui::{ message::UiMessage, scroll_viewer::ScrollViewerBuilder, + style::resource::StyleResourceExt, text::{TextBuilder, TextMessage}, widget::{WidgetBuilder, WidgetMessage}, window::{WindowBuilder, WindowMessage, WindowTitle}, BuildContext, HorizontalAlignment, Thickness, UiNode, UserInterface, VerticalAlignment, }, }; +use crate::Editor; use fyrox::core::pool::ObjectOrVariant; use fyrox::gui::text::Text; use fyrox::gui::window::{Window, WindowAlignment}; @@ -56,6 +58,7 @@ impl StatisticsWindow { text = TextBuilder::new( WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), ) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); text }) diff --git a/editor/src/ui_scene/bbcode.rs b/editor/src/ui_scene/bbcode.rs index ebe01d597..f5747c528 100644 --- a/editor/src/ui_scene/bbcode.rs +++ b/editor/src/ui_scene/bbcode.rs @@ -3,7 +3,7 @@ use crate::{ message::MessageSender, scene::Selection, ui_scene::{commands::UiSceneContext, UiScene}, - Message, + Editor, Message, }; use fyrox::gui::stack_panel::StackPanel; use fyrox::gui::text_box::TextBox; @@ -15,6 +15,7 @@ use fyrox::{ formatted_text::{RunSet, WrapMode}, message::UiMessage, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, text::{Text, TextBuilder, TextMessage}, text_box::{TextBoxBuilder, TextCommitMode}, widget::{WidgetBuilder, WidgetMessage}, @@ -33,6 +34,7 @@ impl BBCodePanel { .with_text_commit_mode(TextCommitMode::Changed) .with_multiline(true) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let root_widget = StackPanelBuilder::new( WidgetBuilder::new() @@ -40,6 +42,7 @@ impl BBCodePanel { .with_child( TextBuilder::new(WidgetBuilder::new()) .with_text("BBCode") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ) .with_child(text_box), diff --git a/editor/src/utils/doc.rs b/editor/src/utils/doc.rs index 61d478c9a..d5300d017 100644 --- a/editor/src/utils/doc.rs +++ b/editor/src/utils/doc.rs @@ -23,6 +23,7 @@ use crate::fyrox::{ gui::{ formatted_text::WrapMode, scroll_viewer::ScrollViewerBuilder, + style::resource::StyleResourceExt, text::TextMessage, text_box::TextBoxBuilder, widget::WidgetBuilder, @@ -30,6 +31,7 @@ use crate::fyrox::{ BuildContext, Thickness, UserInterface, }, }; +use crate::Editor; use fyrox::gui::text_box::TextBox; use fyrox::gui::window::{Window, WindowAlignment}; @@ -56,6 +58,7 @@ impl DocWindow { ) .with_editable(false) .with_wrap(WrapMode::Word) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); text }) diff --git a/editor/src/world/item.rs b/editor/src/world/item.rs index 577f54411..4aac5c74f 100644 --- a/editor/src/world/item.rs +++ b/editor/src/world/item.rs @@ -42,7 +42,7 @@ use crate::{ load_image, message::MessageSender, utils::make_node_name, - Message, + Editor, Message, }; use crate::world::SceneItemIcon; @@ -334,6 +334,7 @@ impl SceneItemBuilder { self.entity_handle.index(), self.entity_handle.generation() )) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); text_name }), diff --git a/fyrox-ui/src/lib.rs b/fyrox-ui/src/lib.rs index 822312669..6560d2e8c 100644 --- a/fyrox-ui/src/lib.rs +++ b/fyrox-ui/src/lib.rs @@ -324,7 +324,6 @@ use crate::{ resource::{StyleResource, StyleResourceExt}, Style, DEFAULT_STYLE, }, - text::TextMessage, widget::{Widget, WidgetBuilder, WidgetMaterial, WidgetMessage}, }; use copypasta::ClipboardContext; @@ -1535,14 +1534,6 @@ impl UserInterface { } ui.send(node, WidgetMessage::Style(ui.style.clone())); - ui.send( - node, - TextMessage::FontSize( - (ui.style.get(Style::FONT_SIZE) as Option) - .unwrap() - .into(), - ), - ); // This WidgetMessage::Style replaces old style in `Widget` // but does not update font size // because `Widget` does not carry a "font" value From 106e78f7047fa38380d3718925adacc705a821a8 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sun, 19 Apr 2026 01:07:27 +0800 Subject: [PATCH 11/24] Added font size update to Asset Browser/No Items Message --- editor/src/asset/mod.rs | 4 +++- fyrox-ui/src/file_browser/mod.rs | 27 ++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/editor/src/asset/mod.rs b/editor/src/asset/mod.rs index c8e73851d..7d258a24c 100644 --- a/editor/src/asset/mod.rs +++ b/editor/src/asset/mod.rs @@ -63,8 +63,9 @@ use crate::{ preview::PreviewPanel, scene::{commands::ChangeSelectionCommand, container::EditorSceneEntry, Selection}, utils::window_content, - Message, Mode, + Editor, Message, Mode, }; +use fyrox::gui::style::resource::StyleResourceExt; use menu::AssetItemContextMenu; use notify::{EventKind, RecommendedWatcher, RecursiveMode, Watcher}; use std::{ @@ -321,6 +322,7 @@ impl AssetBrowser { WidgetBuilder::new().on_column(0).with_tab_index(Some(0)), ) .with_no_items_text("There are no subfolders. Right-click to add one.") + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .with_show_path(false) .with_filter(PathFilter::folder()) .build(ctx); diff --git a/fyrox-ui/src/file_browser/mod.rs b/fyrox-ui/src/file_browser/mod.rs index f0a293e09..0eeda247e 100644 --- a/fyrox-ui/src/file_browser/mod.rs +++ b/fyrox-ui/src/file_browser/mod.rs @@ -34,11 +34,12 @@ use crate::{ fs_tree::{sanitize_path, TreeItemPath}, menu::ItemContextMenu, }, + font::FontResource, formatted_text::WrapMode, grid::{Column, GridBuilder, Row}, message::{MessageData, UiMessage}, scroll_viewer::{ScrollViewerBuilder, ScrollViewerMessage}, - style::{resource::StyleResourceExt, Style}, + style::{resource::StyleResourceExt, Style, StyledProperty}, text::{TextBuilder, TextMessage}, text_box::{TextBoxBuilder, TextCommitMode}, tree::{Tree, TreeMessage, TreeRoot, TreeRootBuilder, TreeRootMessage}, @@ -571,6 +572,8 @@ pub struct FileBrowserBuilder { root: Option, show_path: bool, no_items_text: String, + font: Option, + font_size: Option>, } impl FileBrowserBuilder { @@ -582,6 +585,8 @@ impl FileBrowserBuilder { root: None, show_path: true, no_items_text: "This folder is empty".to_string(), + font: None, + font_size: None, } } @@ -600,6 +605,16 @@ impl FileBrowserBuilder { self } + pub fn with_font(mut self, font: FontResource) -> Self { + self.font = Some(font); + self + } + + pub fn with_font_size(mut self, font_size: StyledProperty) -> Self { + self.font_size = Some(font_size); + self + } + /// Sets desired path which will be used to build file system tree. /// /// # Notes @@ -706,6 +721,11 @@ impl FileBrowserBuilder { .map(|p| p.to_string_lossy().to_string()) .unwrap_or_default(), ) + .with_font_size( + self.font_size + .clone() + .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)), + ) .build(ctx); path_text }), @@ -732,6 +752,11 @@ impl FileBrowserBuilder { .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Center) .with_text(self.no_items_text) + .with_font_size( + self.font_size + .clone() + .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)), + ) .build(ctx); let root_container = GridBuilder::new( From 52dafb6aea3ec7ecee7b8c1a8f8219477bc0ace6 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sun, 19 Apr 2026 04:08:04 +0800 Subject: [PATCH 12/24] Added font size update to WindowTitle (most of them) --- editor/src/asset/creator.rs | 6 +++- editor/src/asset/dependency.rs | 6 +++- editor/src/asset/menu.rs | 26 ++++++++++++---- editor/src/asset/mod.rs | 27 ++++++++++++----- editor/src/asset/selector.rs | 7 ++++- editor/src/audio/mod.rs | 6 +++- editor/src/camera/panel.rs | 9 ++++-- editor/src/command/panel.rs | 6 +++- editor/src/configurator.rs | 12 ++++++-- editor/src/export/mod.rs | 6 +++- editor/src/interaction/navmesh/mod.rs | 9 ++++-- editor/src/interaction/terrain.rs | 8 ++++- editor/src/lib.rs | 30 +++++++++++++++---- editor/src/light.rs | 6 +++- editor/src/menu/file.rs | 15 ++++++++-- editor/src/mesh.rs | 6 +++- editor/src/plugins/absm/blendspace.rs | 6 +++- editor/src/plugins/absm/mod.rs | 7 ++++- editor/src/plugins/absm/parameter.rs | 9 ++++-- editor/src/plugins/absm/state_graph/mod.rs | 7 ++++- editor/src/plugins/absm/state_viewer/mod.rs | 7 ++++- editor/src/plugins/absm/toolbar.rs | 20 +++++++++++-- editor/src/plugins/animation/toolbar.rs | 24 ++++++++++++--- editor/src/plugins/animation/track.rs | 18 +++++++++-- editor/src/plugins/curve_editor.rs | 18 +++++++++-- .../src/plugins/inspector/editors/handle.rs | 6 +++- .../plugins/inspector/editors/shader/field.rs | 8 ++++- .../inspector/editors/spritesheet/window.rs | 6 +++- editor/src/plugins/inspector/mod.rs | 6 +++- editor/src/plugins/material/mod.rs | 17 +++++++---- editor/src/plugins/ragdoll.rs | 7 ++++- editor/src/plugins/settings.rs | 7 ++++- editor/src/plugins/stats.rs | 6 +++- editor/src/plugins/tilemap/panel.rs | 6 +++- editor/src/plugins/tilemap/tileset.rs | 18 ++++++----- editor/src/scene/settings/mod.rs | 9 ++++-- editor/src/scene_viewer/mod.rs | 6 +++- editor/src/stats.rs | 6 +++- editor/src/utils/doc.rs | 6 +++- editor/src/world/mod.rs | 8 +++-- 40 files changed, 339 insertions(+), 84 deletions(-) diff --git a/editor/src/asset/creator.rs b/editor/src/asset/creator.rs index 5aad376cf..cecba89dc 100644 --- a/editor/src/asset/creator.rs +++ b/editor/src/asset/creator.rs @@ -84,7 +84,11 @@ impl ResourceCreator { let cancel; let resource_constructors_list; let window = WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) - .with_title(WindowTitle::text("Resource Creator")) + .with_title(WindowTitle::text_with_font_size( + "Resource Creator", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .open(false) .with_content( GridBuilder::new( diff --git a/editor/src/asset/dependency.rs b/editor/src/asset/dependency.rs index cde892e2f..7f70ecb9f 100644 --- a/editor/src/asset/dependency.rs +++ b/editor/src/asset/dependency.rs @@ -93,7 +93,11 @@ impl DependencyViewer { let close; let window = WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) .open(false) - .with_title(WindowTitle::text("Dependency Viewer")) + .with_title(WindowTitle::text_with_font_size( + "Dependency Viewer", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( GridBuilder::new( WidgetBuilder::new() diff --git a/editor/src/asset/menu.rs b/editor/src/asset/menu.rs index c30196dd1..bbdfaa2bf 100644 --- a/editor/src/asset/menu.rs +++ b/editor/src/asset/menu.rs @@ -373,7 +373,11 @@ impl AssetItemContextMenu { ) .open(false) .with_remove_on_close(true) - .with_title(WindowTitle::text("Confirm Deletion")), + .with_title(WindowTitle::text_with_font_size( + "Confirm Deletion", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )), ) .with_text(&text) .with_buttons(MessageBoxButtons::YesNo) @@ -502,19 +506,29 @@ impl AssetItemContextMenu { item.path.extension(), item.path.parent(), ) { + let (old_file_name, extension_name, folder_name, old_path) = ( + file_stem.to_string_lossy().to_string(), + extension.to_string_lossy().to_string(), + parent.to_string_lossy().to_string(), + item.path.clone(), + ); let dialog = AssetRenameDialogBuilder::new( WindowBuilder::new( WidgetBuilder::new().with_width(350.0).with_height(100.0), ) - .with_title(WindowTitle::text("Rename a Resource")) + .with_title(WindowTitle::text_with_font_size( + "Rename a Resource", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .with_remove_on_close(true) .open(false), ) .build( - file_stem.to_string_lossy().to_string(), - extension.to_string_lossy().to_string(), - parent.to_string_lossy().to_string(), - item.path.clone(), + old_file_name, + extension_name, + folder_name, + old_path, engine.resource_manager.clone(), &mut ui.build_ctx(), ); diff --git a/editor/src/asset/mod.rs b/editor/src/asset/mod.rs index 7d258a24c..91f3a56f3 100644 --- a/editor/src/asset/mod.rs +++ b/editor/src/asset/mod.rs @@ -312,7 +312,11 @@ impl AssetBrowser { let folder_browser; let scroll_panel; let folder_browser_window = WindowBuilder::new(WidgetBuilder::new()) - .with_title(WindowTitle::text("Folders")) + .with_title(WindowTitle::text_with_font_size( + "Folders", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Folders") .can_close(false) .can_minimize(false) @@ -331,7 +335,11 @@ impl AssetBrowser { .build(ctx); let main_window = WindowBuilder::new(WidgetBuilder::new()) - .with_title(WindowTitle::text("Folder Content")) + .with_title(WindowTitle::text_with_font_size( + "Folder Content", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Content") .can_close(false) .can_minimize(false) @@ -384,7 +392,11 @@ impl AssetBrowser { .build(ctx); let window = WindowBuilder::new(WidgetBuilder::new().with_name("AssetBrowser")) - .with_title(WindowTitle::text("Asset Browser")) + .with_title(WindowTitle::text_with_font_size( + "Asset Browser", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Asset Browser") .with_content(docking_manager) .build(ctx); @@ -518,10 +530,11 @@ impl AssetBrowser { self.current_path = path.to_path_buf(); ui.send( self.main_window, - WindowMessage::Title(WindowTitle::text(format!( - "Folder Content - {}", - self.current_path.display() - ))), + WindowMessage::Title(WindowTitle::text_with_font_size( + format!("Folder Content - {}", self.current_path.display()), + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )), ); ui.send( self.add_resource, diff --git a/editor/src/asset/selector.rs b/editor/src/asset/selector.rs index 5be58d6b6..c168003f6 100644 --- a/editor/src/asset/selector.rs +++ b/editor/src/asset/selector.rs @@ -561,9 +561,14 @@ impl<'a> AssetSelectorWindowBuilder<'a> { resource_manager: ResourceManager, ui: &mut UserInterface, ) -> Handle { + let ctx = ui.build_ctx(); let selector = AssetSelectorWindowBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) - .with_title(WindowTitle::text("Select a Resource")) + .with_title(WindowTitle::text_with_font_size( + "Select a Resource", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_remove_on_close(true) .open(false), ) diff --git a/editor/src/audio/mod.rs b/editor/src/audio/mod.rs index f17bf5b79..f39cac8a6 100644 --- a/editor/src/audio/mod.rs +++ b/editor/src/audio/mod.rs @@ -369,7 +369,11 @@ impl AudioPanel { .add_row(Row::strict(25.0)) .build(ctx), ) - .with_title(WindowTitle::text("Audio Context")) + .with_title(WindowTitle::text_with_font_size( + "Audio Context", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Audio") .build(ctx); diff --git a/editor/src/camera/panel.rs b/editor/src/camera/panel.rs index e2a0efc8a..d53f60b33 100644 --- a/editor/src/camera/panel.rs +++ b/editor/src/camera/panel.rs @@ -26,6 +26,7 @@ use crate::{ gui::{ image::{Image, ImageBuilder, ImageMessage}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, widget::{WidgetBuilder, WidgetMessage}, window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, BuildContext, HorizontalAlignment, Orientation, Thickness, VerticalAlignment, @@ -34,7 +35,7 @@ use crate::{ scene::{camera::Camera, collider::BitMask}, }, scene::{GameScene, Selection}, - Message, + Editor, Message, }; pub struct CameraPreviewControlPanel { @@ -51,7 +52,11 @@ impl CameraPreviewControlPanel { .with_name("CameraPanel") .with_min_size(Vector2::new(180.0, 225.0)), ) - .with_title(WindowTitle::text("Camera Preview")) + .with_title(WindowTitle::text_with_font_size( + "Camera Preview", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( StackPanelBuilder::new( WidgetBuilder::new() diff --git a/editor/src/command/panel.rs b/editor/src/command/panel.rs index d8bfb83e8..c7765250f 100644 --- a/editor/src/command/panel.rs +++ b/editor/src/command/panel.rs @@ -110,7 +110,11 @@ impl CommandStackViewer { .build(ctx); let window = WindowBuilder::new(WidgetBuilder::new().with_name("CommandStackPanel")) - .with_title(WindowTitle::text("Command Stack")) + .with_title(WindowTitle::text_with_font_size( + "Command Stack", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Commands") .with_content( GridBuilder::new( diff --git a/editor/src/configurator.rs b/editor/src/configurator.rs index d512ce9c4..f02eb6db4 100644 --- a/editor/src/configurator.rs +++ b/editor/src/configurator.rs @@ -107,7 +107,11 @@ impl Configurator { let work_dir_selector = FileSelectorBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) .open(false) - .with_title(WindowTitle::text("Select Working Directory")), + .with_title(WindowTitle::text_with_font_size( + "Select Working Directory", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_filter(PathFilter::folder()) .build(ctx); @@ -137,7 +141,11 @@ impl Configurator { .with_height(250.0) .with_min_size(Vector2::new(370.0, 250.0)), ) - .with_title(WindowTitle::text("Configure Editor")) + .with_title(WindowTitle::text_with_font_size( + "Configure Editor", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .open(false) .can_close(false) .with_content( diff --git a/editor/src/export/mod.rs b/editor/src/export/mod.rs index 9f452e723..1becbca79 100644 --- a/editor/src/export/mod.rs +++ b/editor/src/export/mod.rs @@ -317,7 +317,11 @@ impl ExportWindow { .add_column(Column::stretch()) .build(ctx), ) - .with_title(WindowTitle::text("Export Project")) + .with_title(WindowTitle::text_with_font_size( + "Export Project", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .build(ctx); Self { diff --git a/editor/src/interaction/navmesh/mod.rs b/editor/src/interaction/navmesh/mod.rs index 3750a8e78..41f7a6d62 100644 --- a/editor/src/interaction/navmesh/mod.rs +++ b/editor/src/interaction/navmesh/mod.rs @@ -37,6 +37,7 @@ use crate::{ grid::{Column, GridBuilder, Row}, message::{KeyCode, UiMessage}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, widget::{WidgetBuilder, WidgetMessage}, window::{WindowBuilder, WindowMessage, WindowTitle}, BuildContext, Orientation, Thickness, UserInterface, @@ -66,7 +67,7 @@ use crate::{ }, settings::Settings, utils::window_content, - Mode, + Editor, Mode, }; use fyrox::gui::button::Button; use fyrox::gui::image::Image; @@ -97,7 +98,11 @@ impl NavmeshPanel { let connect_edges; let window = WindowBuilder::new(WidgetBuilder::new().with_name("NavmeshPanel")) .open(false) - .with_title(WindowTitle::text("Navmesh")) + .with_title(WindowTitle::text_with_font_size( + "Navmesh", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Navmesh") .with_content( GridBuilder::new( diff --git a/editor/src/interaction/terrain.rs b/editor/src/interaction/terrain.rs index d60c85fa9..14c76fe33 100644 --- a/editor/src/interaction/terrain.rs +++ b/editor/src/interaction/terrain.rs @@ -73,11 +73,13 @@ use crate::{ GameScene, Selection, SelectionContainer, }, settings::Settings, + Editor, }; use fyrox::gui::button::Button; use fyrox::gui::image::Image; use fyrox::gui::inspector::InspectorContextArgs; +use fyrox::gui::style::resource::StyleResourceExt; use fyrox::gui::window::{Window, WindowAlignment}; use fyrox::scene::mesh::Mesh; use std::sync::mpsc::channel; @@ -655,7 +657,11 @@ impl BrushPanel { inspector }) .open(false) - .with_title(WindowTitle::text("Brush Options")) + .with_title(WindowTitle::text_with_font_size( + "Brush Options", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .build(ctx); Self { window, inspector } diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 65c6cb0a5..6a02b33d2 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -317,7 +317,11 @@ pub fn make_save_file_selector( .with_width(300.0) .with_height(400.0), ) - .with_title(WindowTitle::text("Save Scene As")) + .with_title(WindowTitle::text_with_font_size( + "Save Scene As", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .open(false) .with_remove_on_close(true), ) @@ -397,7 +401,11 @@ impl SaveSceneConfirmationDialog { .can_close(false) .can_minimize(false) .open(false) - .with_title(WindowTitle::text("Unsaved changes")), + .with_title(WindowTitle::text_with_font_size( + "Unsaved changes", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_buttons(MessageBoxButtons::YesNoCancel) .build(ctx); @@ -558,7 +566,11 @@ impl SceneLoadingWindow { .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); let window = WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(100.0)) - .with_title(WindowTitle::text("Please wait...")) + .with_title(WindowTitle::text_with_font_size( + "Please wait...", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .can_close(false) .can_minimize(false) .open(false) @@ -999,7 +1011,11 @@ impl Editor { .can_close(false) .can_minimize(false) .open(false) - .with_title(WindowTitle::text("Unsaved changes")), + .with_title(WindowTitle::text_with_font_size( + "Unsaved changes", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_buttons(MessageBoxButtons::YesNoCancel) .build(ctx); @@ -1009,7 +1025,11 @@ impl Editor { .can_close(false) .can_minimize(false) .open(false) - .with_title(WindowTitle::text("Validation failed!")), + .with_title(WindowTitle::text_with_font_size( + "Validation failed!", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_buttons(MessageBoxButtons::Ok) .build(ctx); diff --git a/editor/src/light.rs b/editor/src/light.rs index 9b7891501..39fe67abe 100644 --- a/editor/src/light.rs +++ b/editor/src/light.rs @@ -118,7 +118,11 @@ impl ProgressWindow { let text; let window = WindowBuilder::new(WidgetBuilder::new().with_width(400.0).with_height(120.0)) .open(false) - .with_title(WindowTitle::text("Progress")) + .with_title(WindowTitle::text_with_font_size( + "Progress", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( GridBuilder::new( WidgetBuilder::new() diff --git a/editor/src/menu/file.rs b/editor/src/menu/file.rs index e42361b91..3597c54e8 100644 --- a/editor/src/menu/file.rs +++ b/editor/src/menu/file.rs @@ -29,6 +29,7 @@ use crate::{ menu::{self, MenuItemMessage}, message::UiMessage, messagebox::{MessageBoxBuilder, MessageBoxButtons, MessageBoxMessage}, + style::resource::StyleResourceExt, widget::{WidgetBuilder, WidgetMessage}, window::{WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, BuildContext, UserInterface, @@ -39,7 +40,7 @@ use crate::{ message::MessageSender, scene::container::EditorSceneEntry, settings::{recent::RecentFiles, Settings}, - Engine, Message, Mode, Panels, SaveSceneConfirmationDialogAction, + Editor, Engine, Message, Mode, Panels, SaveSceneConfirmationDialogAction, }; use fyrox::core::parking_lot::Mutex; use fyrox::graph::SceneGraph; @@ -122,7 +123,11 @@ impl FileMenu { let configure_message = MessageBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(250.0).with_height(150.0)) .open(false) - .with_title(WindowTitle::text("Warning")), + .with_title(WindowTitle::text_with_font_size( + "Warning", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_text("Cannot reconfigure editor while scene is open! Close scene first and retry.") .with_buttons(MessageBoxButtons::Ok) @@ -258,7 +263,11 @@ impl FileMenu { let load_file_selector = FileSelectorBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) .open(false) - .with_title(WindowTitle::text("Select a Scene To Load")), + .with_title(WindowTitle::text_with_font_size( + "Select a Scene To Load", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_filter( PathFilter::new() diff --git a/editor/src/mesh.rs b/editor/src/mesh.rs index 2cb64d27d..16cdf0b86 100644 --- a/editor/src/mesh.rs +++ b/editor/src/mesh.rs @@ -353,7 +353,11 @@ impl SurfaceDataViewer { let window = WindowBuilder::new(WidgetBuilder::new().with_width(650.0).with_height(400.0)) .open(false) - .with_title(WindowTitle::text("Surface Data")) + .with_title(WindowTitle::text_with_font_size( + "Surface Data", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content(content) .build(ctx); diff --git a/editor/src/plugins/absm/blendspace.rs b/editor/src/plugins/absm/blendspace.rs index 6f574d8b4..ad16c8d01 100644 --- a/editor/src/plugins/absm/blendspace.rs +++ b/editor/src/plugins/absm/blendspace.rs @@ -796,7 +796,11 @@ impl BlendSpaceEditor { let window = WindowBuilder::new(WidgetBuilder::new().with_width(500.0).with_height(400.0)) .open(false) .with_content(content) - .with_title(WindowTitle::text("Blend Space Editor")) + .with_title(WindowTitle::text_with_font_size( + "Blend Space Editor", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Blend Space") .build(ctx); diff --git a/editor/src/plugins/absm/mod.rs b/editor/src/plugins/absm/mod.rs index c8e794f9d..fa989a148 100644 --- a/editor/src/plugins/absm/mod.rs +++ b/editor/src/plugins/absm/mod.rs @@ -47,6 +47,7 @@ use crate::{ inspector::editors::PropertyEditorDefinitionContainer, menu::{MenuItem, MenuItemMessage}, message::UiMessage, + style::resource::StyleResourceExt, widget::{WidgetBuilder, WidgetMessage}, window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, BuildContext, UserInterface, @@ -279,7 +280,11 @@ impl AbsmEditor { ) .open(false) .with_content(content) - .with_title(WindowTitle::text("ABSM Editor")) + .with_title(WindowTitle::text_with_font_size( + "ABSM Editor", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("ABSM") .build(ctx); diff --git a/editor/src/plugins/absm/parameter.rs b/editor/src/plugins/absm/parameter.rs index be6b12821..229e28569 100644 --- a/editor/src/plugins/absm/parameter.rs +++ b/editor/src/plugins/absm/parameter.rs @@ -39,6 +39,7 @@ use crate::{ }, message::UiMessage, scroll_viewer::ScrollViewerBuilder, + style::resource::StyleResourceExt, widget::WidgetBuilder, window::{WindowBuilder, WindowTitle}, BuildContext, UserInterface, @@ -46,7 +47,7 @@ use crate::{ }, message::MessageSender, plugins::absm::command::fetch_machine, - Message, + Editor, Message, }; use fyrox::gui::inspector::Inspector; use fyrox::gui::window::Window; @@ -71,7 +72,11 @@ impl ParameterPanel { let inspector; let window = WindowBuilder::new(WidgetBuilder::new()) - .with_title(WindowTitle::text("Parameters")) + .with_title(WindowTitle::text_with_font_size( + "Parameters", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( ScrollViewerBuilder::new(WidgetBuilder::new()) .with_content({ diff --git a/editor/src/plugins/absm/state_graph/mod.rs b/editor/src/plugins/absm/state_graph/mod.rs index 2b3455b54..422403e19 100644 --- a/editor/src/plugins/absm/state_graph/mod.rs +++ b/editor/src/plugins/absm/state_graph/mod.rs @@ -45,6 +45,7 @@ use crate::{ command::{Command, CommandGroup}, message::MessageSender, scene::{commands::ChangeSelectionCommand, Selection}, + Editor, }; use fyrox::core::reflect::Reflect; @@ -90,7 +91,11 @@ impl StateGraphViewer { .build(ctx); let window = WindowBuilder::new(WidgetBuilder::new()) - .with_title(WindowTitle::text("State Graph")) + .with_title(WindowTitle::text_with_font_size( + "State Graph", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("State Graph") .can_close(false) .can_minimize(false) diff --git a/editor/src/plugins/absm/state_viewer/mod.rs b/editor/src/plugins/absm/state_viewer/mod.rs index ea06a995c..3c12ac736 100644 --- a/editor/src/plugins/absm/state_viewer/mod.rs +++ b/editor/src/plugins/absm/state_viewer/mod.rs @@ -58,6 +58,7 @@ use crate::plugins::absm::{ use crate::scene::{commands::ChangeSelectionCommand, Selection}; use crate::plugins::absm::canvas::AbsmCanvas; +use crate::Editor; use fyrox::core::reflect::Reflect; use fyrox::gui::style::resource::StyleResourceExt; use fyrox::gui::style::Style; @@ -181,7 +182,11 @@ impl StateViewer { let window = WindowBuilder::new(WidgetBuilder::new()) .can_close(false) .can_minimize(false) - .with_title(WindowTitle::text("State Viewer")) + .with_title(WindowTitle::text_with_font_size( + "State Viewer", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( BorderBuilder::new( WidgetBuilder::new() diff --git a/editor/src/plugins/absm/toolbar.rs b/editor/src/plugins/absm/toolbar.rs index b16f84e3a..ba764d713 100644 --- a/editor/src/plugins/absm/toolbar.rs +++ b/editor/src/plugins/absm/toolbar.rs @@ -31,6 +31,7 @@ use crate::{ input::{InputBox, InputBoxBuilder, InputBoxMessage, InputBoxResult}, message::UiMessage, stack_panel::{StackPanel, StackPanelBuilder}, + style::resource::StyleResourceExt, toggle::{ToggleButton, ToggleButtonMessage}, utils::{make_dropdown_list_option, ImageButtonBuilder}, widget::{WidgetBuilder, WidgetMessage}, @@ -54,6 +55,7 @@ use crate::{ }, Selection, }, + Editor, }; use std::any::TypeId; @@ -189,7 +191,11 @@ impl Toolbar { if message.destination() == self.rename_layer { self.rename_layer_input_box = InputBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(320.0).with_height(120.0)) - .with_title(WindowTitle::text("Rename Layer")) + .with_title(WindowTitle::text_with_font_size( + "Rename Layer", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false) .with_remove_on_close(true), ) @@ -200,7 +206,11 @@ impl Toolbar { } else if message.destination() == self.add_layer { self.add_layer_input_box = InputBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(320.0).with_height(120.0)) - .with_title(WindowTitle::text("Add Layer")) + .with_title(WindowTitle::text_with_font_size( + "Add Layer", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false) .with_remove_on_close(true), ) @@ -255,7 +265,11 @@ impl Toolbar { WidgetBuilder::new().with_width(300.0).with_height(400.0), ) .open(false) - .with_title(WindowTitle::text("Select nodes that will NOT be animated")), + .with_title(WindowTitle::text_with_font_size( + "Select nodes that will NOT be animated", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )), ) .with_allowed_types( [AllowedType { diff --git a/editor/src/plugins/animation/toolbar.rs b/editor/src/plugins/animation/toolbar.rs index 61ee02b06..61ac85464 100644 --- a/editor/src/plugins/animation/toolbar.rs +++ b/editor/src/plugins/animation/toolbar.rs @@ -676,7 +676,11 @@ impl Toolbar { let import_file_selector = FileSelectorBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) .open(false) - .with_title(WindowTitle::text("Select Animation To Import")), + .with_title(WindowTitle::text_with_font_size( + "Select Animation To Import", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_filter( // TODO: Here we allow importing only FBX and GLTF files, but they can contain @@ -795,7 +799,11 @@ impl Toolbar { } else if message.destination() == self.rename_current_animation { self.rename_animation_input_box = InputBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(320.0).with_height(120.0)) - .with_title(WindowTitle::text("Rename Animation")) + .with_title(WindowTitle::text_with_font_size( + "Rename Animation", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false) .with_remove_on_close(true), ) @@ -815,7 +823,11 @@ impl Toolbar { } else if message.destination() == self.add_animation { self.animation_name_input_box = InputBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(320.0).with_height(120.0)) - .with_title(WindowTitle::text("New Animation Name")) + .with_title(WindowTitle::text_with_font_size( + "New Animation Name", + ui.default_font.clone(), + ui.style.property(Editor::UI_FONT_SIZE), + )) .open(false) .with_remove_on_close(true), ) @@ -926,7 +938,11 @@ impl Toolbar { self.node_selector = NodeSelectorWindowBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) .with_remove_on_close(true) - .with_title(WindowTitle::text("Select a Target Node")) + .with_title(WindowTitle::text_with_font_size( + "Select a Target Node", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false), ) .with_allowed_types( diff --git a/editor/src/plugins/animation/track.rs b/editor/src/plugins/animation/track.rs index 4d225f9db..650fd4b0f 100644 --- a/editor/src/plugins/animation/track.rs +++ b/editor/src/plugins/animation/track.rs @@ -952,7 +952,11 @@ impl TrackList { { self.node_selector = NodeSelectorWindowBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) - .with_title(WindowTitle::text("Select a Node To Animate")), + .with_title(WindowTitle::text_with_font_size( + "Select a Node To Animate", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )), ) .with_allowed_types( [AllowedType { @@ -1195,7 +1199,11 @@ impl TrackList { } else if message.destination() == self.context_menu.set_target { self.context_menu.target_node_selector = NodeSelectorWindowBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) - .with_title(WindowTitle::text("Select a New Target Node")), + .with_title(WindowTitle::text_with_font_size( + "Select a New Target Node", + ui.default_font.clone(), + ui.style.property(Editor::UI_FONT_SIZE), + )), ) .with_hierarchy(HierarchyNode::from_scene_node(root, Handle::NONE, graph)) .build(&mut ui.build_ctx()); @@ -1300,7 +1308,11 @@ impl TrackList { let property_selector = PropertySelectorWindowBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) - .with_title(WindowTitle::text("Select a Numeric Property To Animate")) + .with_title(WindowTitle::text_with_font_size( + "Select a Numeric Property To Animate", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false), ) .with_allowed_types(Some(FxHashSet::from_iter(define_allowed_types! { diff --git a/editor/src/plugins/curve_editor.rs b/editor/src/plugins/curve_editor.rs index bdb00a728..cf3477c01 100644 --- a/editor/src/plugins/curve_editor.rs +++ b/editor/src/plugins/curve_editor.rs @@ -143,7 +143,11 @@ impl CurveEditorWindow { let save_changes_message_box = MessageBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new()) .open(false) - .with_title(WindowTitle::text("Unsaved Changes")), + .with_title(WindowTitle::text_with_font_size( + "Unsaved Changes", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_text( "You have unsaved changes, do you want to save it before closing the curve editor?", @@ -154,7 +158,11 @@ impl CurveEditorWindow { let cancel_message_box = MessageBoxBuilder::new( WindowBuilder::new(WidgetBuilder::new()) .open(false) - .with_title(WindowTitle::text("Unsaved Changes")), + .with_title(WindowTitle::text_with_font_size( + "Unsaved Changes", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )), ) .with_text("You have unsaved changes, do you want to quit the curve editor without saving?") .with_buttons(MessageBoxButtons::YesNo) @@ -293,7 +301,11 @@ impl CurveEditorWindow { .build(ctx), ) .with_remove_on_close(true) - .with_title(WindowTitle::text("Curve Editor")) + .with_title(WindowTitle::text_with_font_size( + "Curve Editor", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Curve") .build(ctx); diff --git a/editor/src/plugins/inspector/editors/handle.rs b/editor/src/plugins/inspector/editors/handle.rs index 7f70f0b9d..09a71fd65 100644 --- a/editor/src/plugins/inspector/editors/handle.rs +++ b/editor/src/plugins/inspector/editors/handle.rs @@ -266,7 +266,11 @@ impl Control for HandlePropertyEditor { } else if message.destination == self.pick { let node_selector = NodeSelectorWindowBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(300.0).with_height(400.0)) - .with_title(WindowTitle::text("Select a Node")) + .with_title(WindowTitle::text_with_font_size( + "Select a Node", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false), ) .with_allowed_types( diff --git a/editor/src/plugins/inspector/editors/shader/field.rs b/editor/src/plugins/inspector/editors/shader/field.rs index 4b2377b9c..513b5ce3c 100644 --- a/editor/src/plugins/inspector/editors/shader/field.rs +++ b/editor/src/plugins/inspector/editors/shader/field.rs @@ -32,6 +32,7 @@ use crate::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageDirection, UiMessage}, + style::resource::StyleResourceExt, widget::{Widget, WidgetBuilder}, window::{WindowBuilder, WindowTitle}, BuildContext, Control, UiNode, UserInterface, @@ -41,6 +42,7 @@ use crate::{ plugins::inspector::editors::shader::{ ShaderSourceCodeEditor, ShaderSourceCodeEditorBuilder, ShaderSourceCodeEditorMessage, }, + Editor, }; use fyrox::gui::button::Button; use std::{any::TypeId, cell::RefCell}; @@ -64,7 +66,11 @@ impl Control for ShaderSourceCodeEditorField { if let Some(ButtonMessage::Click) = message.data() { self.editor = ShaderSourceCodeEditorBuilder::new( WindowBuilder::new(WidgetBuilder::new().with_width(400.0).with_height(600.0)) - .with_title(WindowTitle::text("Edit Shader Source Code")) + .with_title(WindowTitle::text_with_font_size( + "Edit Shader Source Code", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false), ) .with_code(self.code.borrow().clone()) diff --git a/editor/src/plugins/inspector/editors/spritesheet/window.rs b/editor/src/plugins/inspector/editors/spritesheet/window.rs index 1c122a5b2..0820975c9 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/window.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/window.rs @@ -402,7 +402,11 @@ impl SpriteSheetFramesEditorWindow { ) .open(false) .can_minimize(false) - .with_title(WindowTitle::text("Sprite Sheet Frames Editor")) + .with_title(WindowTitle::text_with_font_size( + "Sprite Sheet Frames Editor", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Sprite Sheet Frames") .build_window(ctx), animation: SpriteSheetAnimation::with_container(container), diff --git a/editor/src/plugins/inspector/mod.rs b/editor/src/plugins/inspector/mod.rs index f5602206b..44355eb03 100644 --- a/editor/src/plugins/inspector/mod.rs +++ b/editor/src/plugins/inspector/mod.rs @@ -215,7 +215,11 @@ impl InspectorPlugin { let type_name_text; let docs_button; let window = WindowBuilder::new(WidgetBuilder::new().with_name("Inspector")) - .with_title(WindowTitle::text("Inspector")) + .with_title(WindowTitle::text_with_font_size( + "Inspector", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Inspector") .with_content( GridBuilder::new( diff --git a/editor/src/plugins/material/mod.rs b/editor/src/plugins/material/mod.rs index e73f88a76..fcbe2c044 100644 --- a/editor/src/plugins/material/mod.rs +++ b/editor/src/plugins/material/mod.rs @@ -298,7 +298,11 @@ impl MaterialEditor { .with_name("MaterialEditor"), ) .open(false) - .with_title(WindowTitle::text(Self::TITLE)) + .with_title(WindowTitle::text_with_font_size( + Self::TITLE, + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( GridBuilder::new( WidgetBuilder::new() @@ -402,13 +406,14 @@ impl MaterialEditor { .unwrap_or(PathBuf::from("Embedded")) .to_string_lossy() .to_string(); + let ui = engine.user_interfaces.first(); engine.user_interfaces.first().send( self.window, - WindowMessage::Title(WindowTitle::text(format!( - "{} - {}", - Self::TITLE, - material_name - ))), + WindowMessage::Title(WindowTitle::text_with_font_size( + format!("{} - {}", Self::TITLE, material_name), + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )), ); engine.scenes[self.preview.scene()].graph[self.preview.model()] diff --git a/editor/src/plugins/ragdoll.rs b/editor/src/plugins/ragdoll.rs index ba507142d..47ef6b677 100644 --- a/editor/src/plugins/ragdoll.rs +++ b/editor/src/plugins/ragdoll.rs @@ -41,6 +41,7 @@ use crate::{ message::UiMessage, scroll_viewer::ScrollViewerBuilder, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, utils::make_simple_tooltip, widget::WidgetBuilder, window::{WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, @@ -1037,7 +1038,11 @@ impl RagdollWizard { .with_name("RagdollWizard"), ) .open(false) - .with_title(WindowTitle::text("Ragdoll Wizard")) + .with_title(WindowTitle::text_with_font_size( + "Ragdoll Wizard", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( GridBuilder::new( WidgetBuilder::new() diff --git a/editor/src/plugins/settings.rs b/editor/src/plugins/settings.rs index 151e65c5e..c02304c4f 100644 --- a/editor/src/plugins/settings.rs +++ b/editor/src/plugins/settings.rs @@ -41,6 +41,7 @@ use crate::{ scroll_viewer::{ScrollViewerBuilder, ScrollViewerMessage}, searchbar::{SearchBarBuilder, SearchBarMessage}, stack_panel::StackPanelBuilder, + style::resource::StyleResourceExt, widget::{WidgetBuilder, WidgetMessage}, window::{WindowBuilder, WindowMessage, WindowTitle}, HorizontalAlignment, Orientation, Thickness, UiNode, UserInterface, @@ -128,7 +129,11 @@ impl SettingsWindow { let window = WindowBuilder::new(WidgetBuilder::new().with_width(700.0).with_height(800.0)) .open(false) - .with_title(WindowTitle::text("Settings")) + .with_title(WindowTitle::text_with_font_size( + "Settings", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Settings") .with_content( GridBuilder::new( diff --git a/editor/src/plugins/stats.rs b/editor/src/plugins/stats.rs index 7dbb5e754..d32dc91d6 100644 --- a/editor/src/plugins/stats.rs +++ b/editor/src/plugins/stats.rs @@ -76,7 +76,11 @@ impl EditorPlugin for EditorStatisticsPlugin { .build(ctx); self.window = WindowBuilder::new(WidgetBuilder::new().with_width(200.0).with_height(130.0)) - .with_title(WindowTitle::text("Editor Statistics")) + .with_title(WindowTitle::text_with_font_size( + "Editor Statistics", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content( StackPanelBuilder::new(WidgetBuilder::new().with_child(self.text)) .build(ctx), diff --git a/editor/src/plugins/tilemap/panel.rs b/editor/src/plugins/tilemap/panel.rs index 13adb4687..f4f7f60a1 100644 --- a/editor/src/plugins/tilemap/panel.rs +++ b/editor/src/plugins/tilemap/panel.rs @@ -386,7 +386,11 @@ impl TileMapPanel { let window = WindowBuilder::new(WidgetBuilder::new().with_width(400.0).with_height(600.0)) .open(false) - .with_title(WindowTitle::text("Tile Map Control Panel")) + .with_title(WindowTitle::text_with_font_size( + "Tile Map Control Panel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content(content) .build(ctx); diff --git a/editor/src/plugins/tilemap/tileset.rs b/editor/src/plugins/tilemap/tileset.rs index dcf105f1b..7e238f34e 100644 --- a/editor/src/plugins/tilemap/tileset.rs +++ b/editor/src/plugins/tilemap/tileset.rs @@ -445,10 +445,11 @@ impl TileSetEditor { let window = WindowBuilder::new(WidgetBuilder::new().with_width(800.0).with_height(600.0)) .open(false) - .with_title(WindowTitle::text(tile_set_to_title( - &resource_manager, - &tile_book, - ))) + .with_title(WindowTitle::text_with_font_size( + tile_set_to_title(&resource_manager, &tile_book), + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_content(tab_control) .build(ctx); @@ -511,10 +512,11 @@ impl TileSetEditor { self.tile_inspector.set_tile_resource(tile_book.clone(), ui); ui.send( self.window, - WindowMessage::Title(WindowTitle::text(tile_set_to_title( - resource_manager, - &tile_book, - ))), + WindowMessage::Title(WindowTitle::text_with_font_size( + tile_set_to_title(resource_manager, &tile_book), + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )), ); let mut state = self.state.lock_mut("set_tile_resource"); if state.selection_palette() == self.pages_palette diff --git a/editor/src/scene/settings/mod.rs b/editor/src/scene/settings/mod.rs index a7272b549..e59775c89 100644 --- a/editor/src/scene/settings/mod.rs +++ b/editor/src/scene/settings/mod.rs @@ -35,6 +35,7 @@ use crate::{ }, message::UiMessage, scroll_viewer::ScrollViewerBuilder, + style::resource::StyleResourceExt, widget::WidgetBuilder, window::{Window, WindowAlignment, WindowBuilder, WindowMessage, WindowTitle}, BuildContext, WidgetPool, @@ -53,7 +54,7 @@ use crate::{ plugins::inspector::EditorEnvironment, scene::{commands::GameSceneContext, controller::SceneController}, ui_scene::UiScene, - GameScene, Message, + Editor, GameScene, Message, }; use fyrox::gui::inspector::Inspector; use std::sync::{mpsc::Sender, Arc}; @@ -86,7 +87,11 @@ impl SceneSettingsWindow { ) .open(false) .can_minimize(false) - .with_title(WindowTitle::text("Scene Settings")) + .with_title(WindowTitle::text_with_font_size( + "Scene Settings", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .build(ctx); property_definitions.register_inheritable_inspectable::(); diff --git a/editor/src/scene_viewer/mod.rs b/editor/src/scene_viewer/mod.rs index 1f18337d3..326af8378 100644 --- a/editor/src/scene_viewer/mod.rs +++ b/editor/src/scene_viewer/mod.rs @@ -560,7 +560,11 @@ impl SceneViewer { .add_column(Column::stretch()) .build(ctx), ) - .with_title(WindowTitle::text("Scene Preview")) + .with_title(WindowTitle::text_with_font_size( + "Scene Preview", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Scene") .build(ctx); Self { diff --git a/editor/src/stats.rs b/editor/src/stats.rs index d9806b7f9..55f089e15 100644 --- a/editor/src/stats.rs +++ b/editor/src/stats.rs @@ -64,7 +64,11 @@ impl StatisticsWindow { }) .build(ctx), ) - .with_title(WindowTitle::text("Rendering Statistics")) + .with_title(WindowTitle::text_with_font_size( + "Rendering Statistics", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .build(ctx); ctx.inner().send( diff --git a/editor/src/utils/doc.rs b/editor/src/utils/doc.rs index d5300d017..549265063 100644 --- a/editor/src/utils/doc.rs +++ b/editor/src/utils/doc.rs @@ -64,7 +64,11 @@ impl DocWindow { }) .build(ctx), ) - .with_title(WindowTitle::text("Documentation")) + .with_title(WindowTitle::text_with_font_size( + "Documentation", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .build(ctx); Self { window, text } } diff --git a/editor/src/world/mod.rs b/editor/src/world/mod.rs index ec1d725c4..98db39e30 100644 --- a/editor/src/world/mod.rs +++ b/editor/src/world/mod.rs @@ -53,7 +53,7 @@ use crate::{ message::MessageSender, utils::window_content, world::item::{DropAnchor, SceneItem, SceneItemBuilder, SceneItemMessage}, - Mode, Settings, + Editor, Mode, Settings, }; use fyrox::core::color::Color; use fyrox::core::pool::HandlesVecExtension; @@ -328,7 +328,11 @@ impl WorldViewer { .build(ctx); let window = WindowBuilder::new(WidgetBuilder::new().with_name("WorldOutliner")) - .with_title(WindowTitle::text("World Viewer")) + .with_title(WindowTitle::text_with_font_size( + "World Viewer", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("World") .with_content( GridBuilder::new( From 3c2fac5d657e57de3588bd698537de926f1caac2 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sun, 19 Apr 2026 19:25:55 +0800 Subject: [PATCH 13/24] Added font size update to MenuItem --- editor/src/asset/menu.rs | 1 + editor/src/light.rs | 6 +++- editor/src/menu/mod.rs | 6 +++- editor/src/plugins/animation/mod.rs | 6 +++- editor/src/plugins/animation/toolbar.rs | 6 +++- editor/src/plugins/curve_editor.rs | 17 +++++++++++ editor/src/world/menu.rs | 6 +++- fyrox-ui/src/color/gradient.rs | 19 +++++++++++-- fyrox-ui/src/curve/mod.rs | 22 +++++++++++++- fyrox-ui/src/file_browser/menu.rs | 38 +++++++++++++++++++------ fyrox-ui/src/file_browser/mod.rs | 25 ++++++++-------- fyrox-ui/src/menu.rs | 15 ++++++++++ 12 files changed, 138 insertions(+), 29 deletions(-) diff --git a/editor/src/asset/menu.rs b/editor/src/asset/menu.rs index bbdfaa2bf..67d800300 100644 --- a/editor/src/asset/menu.rs +++ b/editor/src/asset/menu.rs @@ -264,6 +264,7 @@ impl AssetItemContextMenu { fn item(text: &str, ctx: &mut BuildContext) -> Handle { MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text(text)) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } diff --git a/editor/src/light.rs b/editor/src/light.rs index 39fe67abe..9d8b87b80 100644 --- a/editor/src/light.rs +++ b/editor/src/light.rs @@ -251,7 +251,11 @@ impl LightPanel { .with_width(300.0) .with_height(400.0), ) - .with_title(WindowTitle::text("Light Settings")) + .with_title(WindowTitle::text_with_font_size( + "Light Settings", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .open(false) .with_content( GridBuilder::new( diff --git a/editor/src/menu/mod.rs b/editor/src/menu/mod.rs index d0ca01aba..5ba9d545b 100644 --- a/editor/src/menu/mod.rs +++ b/editor/src/menu/mod.rs @@ -38,13 +38,14 @@ use crate::{ scene::{container::EditorSceneEntry, controller::SceneController}, settings::Settings, stats::StatisticsWindow, - Engine, Mode, SceneSettingsWindow, + Editor, Engine, Mode, SceneSettingsWindow, }; use fyrox::asset::manager::ResourceManager; use fyrox::core::Uuid; use fyrox::gui::file_browser::FileType; use fyrox::gui::image::{Image, ImageBuilder}; use fyrox::gui::menu::MenuItem; +use fyrox::gui::style::resource::StyleResourceExt; use fyrox::gui::texture::TextureResource; use fyrox::gui::window::Window; use std::path::PathBuf; @@ -107,6 +108,7 @@ pub fn create_root_menu_item( ) .with_content(MenuItemContent::text_centered(text)) .with_items(items) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } @@ -123,6 +125,7 @@ pub fn create_menu_item( ) .with_content(MenuItemContent::text(text)) .with_items(items) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } @@ -153,6 +156,7 @@ pub fn create_menu_item_shortcut( ) .with_content(icon) .with_items(items) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx) } diff --git a/editor/src/plugins/animation/mod.rs b/editor/src/plugins/animation/mod.rs index 50b8528e4..6900e5c7a 100644 --- a/editor/src/plugins/animation/mod.rs +++ b/editor/src/plugins/animation/mod.rs @@ -330,7 +330,11 @@ impl AnimationEditor { ) .with_content(content) .open(false) - .with_title(WindowTitle::text("Animation Editor")) + .with_title(WindowTitle::text_with_font_size( + "Animation Editor", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + )) .with_tab_label("Animation") .build(ctx); diff --git a/editor/src/plugins/animation/toolbar.rs b/editor/src/plugins/animation/toolbar.rs index 61ac85464..9d1166f95 100644 --- a/editor/src/plugins/animation/toolbar.rs +++ b/editor/src/plugins/animation/toolbar.rs @@ -272,7 +272,11 @@ impl RootMotionDropdownArea { WindowBuilder::new( WidgetBuilder::new().with_width(300.0).with_height(400.0), ) - .with_title(WindowTitle::text("Select a Root Node")) + .with_title(WindowTitle::text_with_font_size( + "Select a Root Node", + ui.default_font.clone(), + ui.style().property(Editor::UI_FONT_SIZE), + )) .open(false), ) .with_allowed_types( diff --git a/editor/src/plugins/curve_editor.rs b/editor/src/plugins/curve_editor.rs index cf3477c01..bb381a724 100644 --- a/editor/src/plugins/curve_editor.rs +++ b/editor/src/plugins/curve_editor.rs @@ -194,6 +194,9 @@ impl CurveEditorWindow { "New", "Ctrl+N", ), ) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); new }, @@ -204,6 +207,9 @@ impl CurveEditorWindow { "Load", "Ctrl+L", ), ) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); load }, @@ -214,10 +220,14 @@ impl CurveEditorWindow { "Save", "Ctrl+S", ), ) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); save }, ]) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Edit")) @@ -229,6 +239,9 @@ impl CurveEditorWindow { "Undo", "Ctrl+Z", ), ) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); undo }, @@ -239,10 +252,14 @@ impl CurveEditorWindow { "Redo", "Ctrl+Y", ), ) + .with_font_size( + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); redo }, ]) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx), ]) .build(ctx), diff --git a/editor/src/world/menu.rs b/editor/src/world/menu.rs index 055e95c16..31d01e99e 100644 --- a/editor/src/world/menu.rs +++ b/editor/src/world/menu.rs @@ -57,11 +57,12 @@ use crate::{ settings::Settings, utils, world::WorldViewerItemContextMenu, - Engine, Message, PasteCommand, + Editor, Engine, Message, PasteCommand, }; use fyrox::core::{uuid, Uuid}; use fyrox::gui::file_browser::{FileSelector, FileType}; use fyrox::gui::menu::MenuItem; +use fyrox::gui::style::resource::StyleResourceExt; use fyrox::gui::window::WindowAlignment; use std::{any::TypeId, path::PathBuf}; @@ -155,6 +156,7 @@ impl SceneNodeContextMenu { ) .with_content(MenuItemContent::text("Create Child Node")) .with_items(create_child_entity_menu.root_items.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); create_child }) @@ -199,6 +201,7 @@ impl SceneNodeContextMenu { ) .with_content(MenuItemContent::text("Create Parent Node")) .with_items(create_parent_entity_menu.root_items.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); create_parent }) @@ -210,6 +213,7 @@ impl SceneNodeContextMenu { ) .with_content(MenuItemContent::text("Replace With Node")) .with_items(replace_with_menu.root_items.clone()) + .with_font_size(ctx.style.property(Editor::UI_FONT_SIZE)) .build(ctx); replace_with }) diff --git a/fyrox-ui/src/color/gradient.rs b/fyrox-ui/src/color/gradient.rs index f85ab4856..d06164167 100644 --- a/fyrox-ui/src/color/gradient.rs +++ b/fyrox-ui/src/color/gradient.rs @@ -19,6 +19,8 @@ // SOFTWARE. use crate::menu::{ContextMenuBuilder, MenuItem}; +use crate::style::resource::StyleResourceExt; +use crate::style::{Style, StyledProperty}; use crate::{ brush::Brush, color::{ColorFieldBuilder, ColorFieldMessage}, @@ -329,6 +331,7 @@ impl ColorGradientEditor { pub struct ColorGradientEditorBuilder { widget_builder: WidgetBuilder, color_gradient: ColorGradient, + font_size: Option>, } fn create_color_points( @@ -358,6 +361,7 @@ impl ColorGradientEditorBuilder { Self { widget_builder, color_gradient: Default::default(), + font_size: None, } } @@ -366,6 +370,11 @@ impl ColorGradientEditorBuilder { self } + pub fn with_font_size(mut self, font_size: StyledProperty) -> Self { + self.font_size = Some(font_size); + self + } + pub fn build(self, ctx: &mut BuildContext) -> Handle { let add_point; let context_menu = ContextMenuBuilder::new( @@ -392,9 +401,13 @@ impl ColorGradientEditorBuilder { StackPanelBuilder::new( WidgetBuilder::new() .with_child({ - remove_point = MenuItemBuilder::new(WidgetBuilder::new()) - .with_content(MenuItemContent::text("Remove Point")) - .build(ctx); + remove_point = + MenuItemBuilder::new(WidgetBuilder::new()) + .with_content(MenuItemContent::text("Remove Point")) + .with_font_size(self.font_size.unwrap_or_else(|| { + ctx.style.property(Style::FONT_SIZE) + })) + .build(ctx); remove_point }) .with_child({ diff --git a/fyrox-ui/src/curve/mod.rs b/fyrox-ui/src/curve/mod.rs index 085daee19..f55354ecd 100644 --- a/fyrox-ui/src/curve/mod.rs +++ b/fyrox-ui/src/curve/mod.rs @@ -20,7 +20,7 @@ use crate::message::{CursorIcon, MessageData}; use crate::style::resource::StyleResourceExt; -use crate::style::Style; +use crate::style::{Style, StyledProperty}; use crate::{ brush::Brush, core::{ @@ -1731,6 +1731,7 @@ pub struct CurveEditorBuilder { max_zoom: Vector2, highlight_zones: Vec, show_background_curves: bool, + font_size: Option>, } impl CurveEditorBuilder { @@ -1749,6 +1750,7 @@ impl CurveEditorBuilder { max_zoom: Vector2::new(1000.0, 1000.0), highlight_zones: Default::default(), show_background_curves: true, + font_size: None, } } @@ -1813,6 +1815,11 @@ impl CurveEditorBuilder { self } + pub fn with_font_size(mut self, font_size: StyledProperty) -> Self { + self.font_size = Some(font_size); + self + } + pub fn build(mut self, ctx: &mut BuildContext) -> Handle { let background_curve_brush = ctx.style.get_or_default::(Style::BRUSH_LIGHT); let key_brush = Brush::Solid(Color::opaque(140, 140, 140)); @@ -1823,6 +1830,9 @@ impl CurveEditorBuilder { } let curves = CurvesContainer::from_native(key_brush.clone(), &self.curves); + let font_size = self + .font_size + .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)); let add_key; let remove; @@ -1903,6 +1913,7 @@ impl CurveEditorBuilder { .with_child({ add_key = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Add Key")) + .with_font_size(font_size.clone()) .build(ctx); add_key }) @@ -1911,6 +1922,7 @@ impl CurveEditorBuilder { WidgetBuilder::new().with_enabled(false), ) .with_content(MenuItemContent::text("Remove")) + .with_font_size(font_size.clone()) .build(ctx); remove }) @@ -1924,6 +1936,7 @@ impl CurveEditorBuilder { make_constant = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Constant")) + .with_font_size(font_size.clone()) .build(ctx); make_constant }, @@ -1931,34 +1944,40 @@ impl CurveEditorBuilder { make_linear = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Linear")) + .with_font_size(font_size.clone()) .build(ctx); make_linear }, { make_cubic = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Cubic")) + .with_font_size(font_size.clone()) .build(ctx); make_cubic }, ]) + .with_font_size(font_size.clone()) .build(ctx); key }) .with_child({ zoom_to_fit = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Zoom To Fit")) + .with_font_size(font_size.clone()) .build(ctx); zoom_to_fit }) .with_child({ copy_keys = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Copy Selected Keys")) + .with_font_size(font_size.clone()) .build(ctx); copy_keys }) .with_child({ paste_keys = MenuItemBuilder::new(WidgetBuilder::new()) .with_content(MenuItemContent::text("Paste Keys")) + .with_font_size(font_size.clone()) .build(ctx); paste_keys }), @@ -1994,6 +2013,7 @@ impl CurveEditorBuilder { text: RefCell::new( FormattedTextBuilder::new(ctx.default_font()) .with_brush(Brush::Solid(Color::opaque(100, 100, 100))) + .with_font_size(font_size.clone()) .build(), ), context_menu: ContextMenu { diff --git a/fyrox-ui/src/file_browser/menu.rs b/fyrox-ui/src/file_browser/menu.rs index 5a2f67dcb..ae3f06bf2 100644 --- a/fyrox-ui/src/file_browser/menu.rs +++ b/fyrox-ui/src/file_browser/menu.rs @@ -20,6 +20,8 @@ use crate::menu::MenuItem; use crate::messagebox::MessageBox; +use crate::style::resource::StyleResourceExt; +use crate::style::{Style, StyledProperty}; use crate::{ core::{ algebra::Vector2, log::Log, pool::Handle, reflect::prelude::*, uuid_provider, @@ -183,7 +185,31 @@ impl Control for ItemContextMenu { } impl ItemContextMenu { - pub fn build(ctx: &mut BuildContext) -> Handle { + fn item_path(&self, ui: &UserInterface) -> Option { + ui.try_get_node(self.base_menu.popup.placement.target()) + .ok() + .and_then(|n| n.user_data_cloned::()) + } +} + +pub struct ItemContextMenuBuilder { + font_size: Option>, +} + +impl ItemContextMenuBuilder { + pub fn new() -> Self { + Self { font_size: None } + } + + pub fn with_font_size(mut self, font_size: StyledProperty) -> Self { + self.font_size = Some(font_size); + self + } + + pub fn build(self, ctx: &mut BuildContext) -> Handle { + let font_size = self + .font_size + .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)); let delete; let make_folder; let base_menu = ContextMenuBuilder::new( @@ -200,6 +226,7 @@ impl ItemContextMenu { WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), ) .with_content(MenuItemContent::text("Delete")) + .with_font_size(font_size.clone()) .build(ctx); delete }) @@ -208,6 +235,7 @@ impl ItemContextMenu { WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), ) .with_content(MenuItemContent::text("Make Folder")) + .with_font_size(font_size.clone()) .build(ctx); make_folder }), @@ -218,7 +246,7 @@ impl ItemContextMenu { ) .build_context_menu(ctx); - let menu = Self { + let menu = ItemContextMenu { base_menu, delete, make_folder, @@ -228,10 +256,4 @@ impl ItemContextMenu { ctx.add(menu) } - - fn item_path(&self, ui: &UserInterface) -> Option { - ui.try_get_node(self.base_menu.popup.placement.target()) - .ok() - .and_then(|n| n.user_data_cloned::()) - } } diff --git a/fyrox-ui/src/file_browser/mod.rs b/fyrox-ui/src/file_browser/mod.rs index 0eeda247e..b6645fce6 100644 --- a/fyrox-ui/src/file_browser/mod.rs +++ b/fyrox-ui/src/file_browser/mod.rs @@ -32,7 +32,7 @@ use crate::{ }, file_browser::{ fs_tree::{sanitize_path, TreeItemPath}, - menu::ItemContextMenu, + menu::ItemContextMenuBuilder, }, font::FontResource, formatted_text::WrapMode, @@ -640,7 +640,16 @@ impl FileBrowserBuilder { } pub fn build(self, ctx: &mut BuildContext) -> Handle { - let item_context_menu = RcUiNodeHandle::new(ItemContextMenu::build(ctx), ctx.sender()); + // let item_context_menu = RcUiNodeHandle::new(ItemContextMenu::build(ctx), ctx.sender()); + let font_size = self + .font_size + .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)); + let item_context_menu = RcUiNodeHandle::new( + ItemContextMenuBuilder::new() + .with_font_size(font_size.clone()) + .build(ctx), + ctx.sender(), + ); let fs_tree::FsTree { root_items: items, @@ -721,11 +730,7 @@ impl FileBrowserBuilder { .map(|p| p.to_string_lossy().to_string()) .unwrap_or_default(), ) - .with_font_size( - self.font_size - .clone() - .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)), - ) + .with_font_size(font_size.clone()) .build(ctx); path_text }), @@ -752,11 +757,7 @@ impl FileBrowserBuilder { .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Center) .with_text(self.no_items_text) - .with_font_size( - self.font_size - .clone() - .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)), - ) + .with_font_size(font_size.clone()) .build(ctx); let root_container = GridBuilder::new( diff --git a/fyrox-ui/src/menu.rs b/fyrox-ui/src/menu.rs index 1febe0221..ea1509345 100644 --- a/fyrox-ui/src/menu.rs +++ b/fyrox-ui/src/menu.rs @@ -25,6 +25,7 @@ use crate::message::MessageData; use crate::stack_panel::StackPanel; +use crate::style::StyledProperty; use crate::vector_image::VectorImage; use crate::{ border::BorderBuilder, @@ -944,6 +945,7 @@ pub struct MenuItemBuilder { back: Option>, clickable_when_not_empty: bool, restrict_picking: bool, + font_size: Option>, } impl MenuItemBuilder { @@ -956,6 +958,7 @@ impl MenuItemBuilder { back: None, clickable_when_not_empty: false, restrict_picking: false, + font_size: None, } } @@ -990,9 +993,18 @@ impl MenuItemBuilder { self } + /// Set the font size of the menu item and its sub items. + pub fn with_font_size(mut self, font_size: StyledProperty) -> Self { + self.font_size = Some(font_size); + self + } + /// Finishes menu item building and adds it to the user interface. pub fn build(self, ctx: &mut BuildContext) -> Handle { let mut arrow_widget = Handle::NONE; + let font_size = self + .font_size + .unwrap_or_else(|| ctx.style.property(Style::FONT_SIZE)); let content = match self.content.as_ref() { None => Handle::NONE, Some(MenuItemContent::Text { @@ -1012,6 +1024,7 @@ impl MenuItemBuilder { .with_vertical_alignment(VerticalAlignment::Center), ) .with_text(text) + .with_font_size(font_size.clone()) .build(ctx), ) .with_child( @@ -1024,6 +1037,7 @@ impl MenuItemBuilder { .on_column(2), ) .with_text(shortcut) + .with_font_size(font_size.clone()) .build(ctx), ) .with_child({ @@ -1059,6 +1073,7 @@ impl MenuItemBuilder { .with_text(text) .with_horizontal_text_alignment(HorizontalAlignment::Center) .with_vertical_text_alignment(VerticalAlignment::Center) + .with_font_size(font_size.clone()) .build(ctx) .to_base() } From d19504e595217dc693b6215b9a9df1cbc54485f7 Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Sun, 19 Apr 2026 20:22:20 +0800 Subject: [PATCH 14/24] Added font size update to Buttons (most of them) --- editor/src/asset/creator.rs | 12 ++++++-- editor/src/asset/dependency.rs | 12 ++++++-- editor/src/asset/menu.rs | 12 ++++++-- editor/src/asset/mod.rs | 12 ++++++-- editor/src/asset/selector.rs | 12 ++++++-- editor/src/audio/mod.rs | 12 ++++++-- editor/src/audio/preview.rs | 6 +++- editor/src/configurator.rs | 12 ++++++-- editor/src/export/mod.rs | 12 ++++++-- editor/src/interaction/navmesh/mod.rs | 6 +++- editor/src/lib.rs | 6 +++- editor/src/light.rs | 18 +++++++++-- editor/src/mesh.rs | 6 +++- editor/src/particle.rs | 30 +++++++++++++++---- editor/src/plugins/absm/node.rs | 12 ++++++-- editor/src/plugins/animation/toolbar.rs | 6 +++- editor/src/plugins/collider/panel.rs | 15 ++++++++-- editor/src/plugins/curve_editor.rs | 12 ++++++-- .../plugins/inspector/editors/animation.rs | 14 +++++++-- .../plugins/inspector/editors/shader/field.rs | 6 +++- .../inspector/editors/spritesheet/mod.rs | 6 +++- .../inspector/editors/spritesheet/window.rs | 12 ++++++-- .../src/plugins/inspector/editors/surface.rs | 6 +++- editor/src/plugins/material/editor.rs | 12 ++++++-- editor/src/plugins/probe.rs | 13 ++++++-- editor/src/plugins/ragdoll.rs | 18 +++++++++-- editor/src/plugins/settings.rs | 18 +++++++++-- editor/src/plugins/tilemap/colliders_tab.rs | 6 +++- editor/src/plugins/tilemap/macro_inspector.rs | 6 +++- editor/src/plugins/tilemap/macro_tab.rs | 12 ++++++-- editor/src/plugins/tilemap/panel.rs | 6 +++- editor/src/plugins/tilemap/properties_tab.rs | 6 +++- editor/src/plugins/tilemap/tile_inspector.rs | 6 +++- .../src/plugins/tilemap/tile_prop_editor.rs | 6 +++- editor/src/plugins/tilemap/tileset.rs | 6 +++- editor/src/plugins/tilemap/wfc.rs | 12 ++++++-- editor/src/scene/dialog.rs | 12 ++++++-- editor/src/scene/property.rs | 12 ++++++-- editor/src/scene/selector.rs | 12 ++++++-- 39 files changed, 350 insertions(+), 70 deletions(-) diff --git a/editor/src/asset/creator.rs b/editor/src/asset/creator.rs index cecba89dc..54dc01ec0 100644 --- a/editor/src/asset/creator.rs +++ b/editor/src/asset/creator.rs @@ -127,7 +127,11 @@ impl ResourceCreator { .with_width(100.0) .with_height(22.0), ) - .with_text("OK") + .with_text_and_font_size( + "OK", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); ok }) @@ -138,7 +142,11 @@ impl ResourceCreator { .with_width(100.0) .with_height(22.0), ) - .with_text("Cancel") + .with_text_and_font_size( + "Cancel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); cancel }), diff --git a/editor/src/asset/dependency.rs b/editor/src/asset/dependency.rs index 7f70ecb9f..e5822f910 100644 --- a/editor/src/asset/dependency.rs +++ b/editor/src/asset/dependency.rs @@ -124,7 +124,11 @@ impl DependencyViewer { .with_width(130.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Copy To Clipboard") + .with_text_and_font_size( + "Copy To Clipboard", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); copy_to_clipboard }) @@ -134,7 +138,11 @@ impl DependencyViewer { .with_width(130.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Close") + .with_text_and_font_size( + "Close", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); close }), diff --git a/editor/src/asset/menu.rs b/editor/src/asset/menu.rs index 67d800300..11a51f4b0 100644 --- a/editor/src/asset/menu.rs +++ b/editor/src/asset/menu.rs @@ -198,7 +198,11 @@ impl AssetRenameDialogBuilder { .with_height(24.0) .with_tab_index(Some(1)), ) - .with_text("Rename") + .with_text_and_font_size( + "Rename", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); rename }) @@ -210,7 +214,11 @@ impl AssetRenameDialogBuilder { .with_height(24.0) .with_tab_index(Some(2)), ) - .with_text("Cancel") + .with_text_and_font_size( + "Cancel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); cancel }), diff --git a/editor/src/asset/mod.rs b/editor/src/asset/mod.rs index 91f3a56f3..908391bab 100644 --- a/editor/src/asset/mod.rs +++ b/editor/src/asset/mod.rs @@ -1007,7 +1007,11 @@ impl AssetBrowser { .with_width(100.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Apply") + .with_text_and_font_size( + "Apply", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); apply }) @@ -1017,7 +1021,11 @@ impl AssetBrowser { .with_width(100.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Revert") + .with_text_and_font_size( + "Revert", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); revert }), diff --git a/editor/src/asset/selector.rs b/editor/src/asset/selector.rs index c168003f6..dd61b2f14 100644 --- a/editor/src/asset/selector.rs +++ b/editor/src/asset/selector.rs @@ -511,7 +511,11 @@ impl<'a> AssetSelectorWindowBuilder<'a> { .with_margin(Thickness::uniform(1.0)) .with_tab_index(Some(2)), ) - .with_text("Select") + .with_text_and_font_size( + "Select", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); ok }) @@ -523,7 +527,11 @@ impl<'a> AssetSelectorWindowBuilder<'a> { .with_margin(Thickness::uniform(1.0)) .with_tab_index(Some(3)), ) - .with_text("Cancel") + .with_text_and_font_size( + "Cancel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); cancel }), diff --git a/editor/src/audio/mod.rs b/editor/src/audio/mod.rs index f39cac8a6..15d041e22 100644 --- a/editor/src/audio/mod.rs +++ b/editor/src/audio/mod.rs @@ -342,7 +342,11 @@ impl AudioPanel { .with_width(100.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Add Bus") + .with_text_and_font_size( + "Add Bus", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); add_bus }) @@ -354,7 +358,11 @@ impl AudioPanel { .with_enabled(false) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Remove Bus") + .with_text_and_font_size( + "Remove Bus", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); remove_bus }), diff --git a/editor/src/audio/preview.rs b/editor/src/audio/preview.rs index da02e3bd7..981b27b8b 100644 --- a/editor/src/audio/preview.rs +++ b/editor/src/audio/preview.rs @@ -61,7 +61,11 @@ fn make_button(text: &str, column: usize, ctx: &mut BuildContext) -> Handle Handle") + .with_text_and_font_size( + "", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); select_node }) diff --git a/editor/src/plugins/collider/panel.rs b/editor/src/plugins/collider/panel.rs index 8c38f515d..804739982 100644 --- a/editor/src/plugins/collider/panel.rs +++ b/editor/src/plugins/collider/panel.rs @@ -40,10 +40,11 @@ use crate::{ message::MessageSender, plugins::collider::ColliderShapeInteractionMode, scene::{commands::GameSceneContext, GameScene, Selection}, - Message, + Editor, Message, }; use fyrox::gui::button::Button; use fyrox::gui::stack_panel::StackPanel; +use fyrox::gui::style::resource::StyleResourceExt; pub struct ColliderControlPanel { pub root_widget: Handle, @@ -92,7 +93,11 @@ impl ColliderControlPanel { .with_height(24.0) .with_tooltip(make_simple_tooltip(ctx, try_fit_tooltip)), ) - .with_text("Try Fit") + .with_text_and_font_size( + "Try Fit", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); fit }) @@ -103,7 +108,11 @@ impl ColliderControlPanel { .with_height(24.0) .with_tooltip(make_simple_tooltip(ctx, edit_tooltip)), ) - .with_text("Edit") + .with_text_and_font_size( + "Edit", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); edit }), diff --git a/editor/src/plugins/curve_editor.rs b/editor/src/plugins/curve_editor.rs index bb381a724..0320c4f9e 100644 --- a/editor/src/plugins/curve_editor.rs +++ b/editor/src/plugins/curve_editor.rs @@ -292,7 +292,11 @@ impl CurveEditorWindow { .with_margin(Thickness::uniform(1.0)) .with_width(100.0), ) - .with_text("OK") + .with_text_and_font_size( + "OK", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); ok }) @@ -302,7 +306,11 @@ impl CurveEditorWindow { .with_margin(Thickness::uniform(1.0)) .with_width(100.0), ) - .with_text("Cancel") + .with_text_and_font_size( + "Cancel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); cancel }), diff --git a/editor/src/plugins/inspector/editors/animation.rs b/editor/src/plugins/inspector/editors/animation.rs index 251f7f9e5..0ea2a5729 100644 --- a/editor/src/plugins/inspector/editors/animation.rs +++ b/editor/src/plugins/inspector/editors/animation.rs @@ -35,10 +35,12 @@ use crate::fyrox::{ FieldAction, InspectorError, PropertyChanged, }, message::{MessageDirection, UiMessage}, + style::resource::StyleResourceExt, widget::WidgetBuilder, }, }; use crate::plugins::inspector::EditorEnvironment; +use crate::Editor; use crate::Message; use fyrox::core::reflect::Reflect; @@ -184,7 +186,11 @@ where ) -> Result { Ok(PropertyEditorInstance::Simple { editor: ButtonBuilder::new(WidgetBuilder::new()) - .with_text("Open Animation Editor...") + .with_text_and_font_size( + "Open Animation Editor...", + ctx.build_context.default_font(), + ctx.build_context.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx.build_context) .to_base(), }) @@ -241,7 +247,11 @@ where ) -> Result { Ok(PropertyEditorInstance::Simple { editor: ButtonBuilder::new(WidgetBuilder::new()) - .with_text("Open ABSM Editor...") + .with_text_and_font_size( + "Open ABSM Editor...", + ctx.build_context.default_font(), + ctx.build_context.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx.build_context) .to_base(), }) diff --git a/editor/src/plugins/inspector/editors/shader/field.rs b/editor/src/plugins/inspector/editors/shader/field.rs index 513b5ce3c..8c8a9574d 100644 --- a/editor/src/plugins/inspector/editors/shader/field.rs +++ b/editor/src/plugins/inspector/editors/shader/field.rs @@ -110,7 +110,11 @@ impl ShaderSourceCodeEditorFieldBuilder { pub fn build(self, ctx: &mut BuildContext) -> Handle { let button = ButtonBuilder::new(WidgetBuilder::new()) - .with_text("Edit Source Code...") + .with_text_and_font_size( + "Edit Source Code...", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); let editor = ShaderSourceCodeEditorField { diff --git a/editor/src/plugins/inspector/editors/spritesheet/mod.rs b/editor/src/plugins/inspector/editors/spritesheet/mod.rs index d26b801e8..75dbf65d2 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/mod.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/mod.rs @@ -125,7 +125,11 @@ impl SpriteSheetFramesPropertyEditor { .with_margin(Thickness::uniform(1.0)) .on_column(1), ) - .with_text("Edit...") + .with_text_and_font_size( + "Edit...", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); edit_button }), diff --git a/editor/src/plugins/inspector/editors/spritesheet/window.rs b/editor/src/plugins/inspector/editors/spritesheet/window.rs index 0820975c9..568890c58 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/window.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/window.rs @@ -330,7 +330,11 @@ impl SpriteSheetFramesEditorWindow { .with_width(70.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("OK") + .with_text_and_font_size( + "OK", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); ok }) @@ -340,7 +344,11 @@ impl SpriteSheetFramesEditorWindow { .with_width(70.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Cancel") + .with_text_and_font_size( + "Cancel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); cancel }), diff --git a/editor/src/plugins/inspector/editors/surface.rs b/editor/src/plugins/inspector/editors/surface.rs index 905337e78..4f254bf3a 100644 --- a/editor/src/plugins/inspector/editors/surface.rs +++ b/editor/src/plugins/inspector/editors/surface.rs @@ -220,7 +220,11 @@ impl SurfaceDataPropertyEditor { .with_width(55.0) .with_height(22.0), ) - .with_text("View...") + .with_text_and_font_size( + "View...", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); let select = make_pick_button(1, ctx); diff --git a/editor/src/plugins/material/editor.rs b/editor/src/plugins/material/editor.rs index 6feea1beb..682b8596c 100644 --- a/editor/src/plugins/material/editor.rs +++ b/editor/src/plugins/material/editor.rs @@ -278,7 +278,11 @@ impl MaterialFieldEditorBuilder { .with_margin(Thickness::uniform(1.0)) .on_column(2), ) - .with_text("Edit...") + .with_text_and_font_size( + "Edit...", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); edit }) @@ -290,7 +294,11 @@ impl MaterialFieldEditorBuilder { .on_column(3) .with_tooltip(make_simple_tooltip(ctx, make_unique_tooltip)), ) - .with_text("Make Unique") + .with_text_and_font_size( + "Make Unique", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); make_unique }), diff --git a/editor/src/plugins/probe.rs b/editor/src/plugins/probe.rs index 909e965e7..517d3046f 100644 --- a/editor/src/plugins/probe.rs +++ b/editor/src/plugins/probe.rs @@ -54,6 +54,7 @@ use crate::{ use fyrox::core::reflect::Reflect; use fyrox::gui::button::Button; use fyrox::gui::grid::Grid; +use fyrox::gui::style::resource::StyleResourceExt; pub struct ReflectionProbePreviewControlPanel { pub root_widget: Handle, @@ -75,7 +76,11 @@ impl ReflectionProbePreviewControlPanel { .with_vertical_alignment(VerticalAlignment::Center) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Update") + .with_text_and_font_size( + "Update", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); update }) @@ -87,7 +92,11 @@ impl ReflectionProbePreviewControlPanel { .with_vertical_alignment(VerticalAlignment::Center) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Adjust") + .with_text_and_font_size( + "Adjust", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); adjust }), diff --git a/editor/src/plugins/ragdoll.rs b/editor/src/plugins/ragdoll.rs index 47ef6b677..d74cdc03f 100644 --- a/editor/src/plugins/ragdoll.rs +++ b/editor/src/plugins/ragdoll.rs @@ -1089,7 +1089,11 @@ impl RagdollWizard { Tested only on Mixamo skeletons.", )), ) - .with_text("Autofill") + .with_text_and_font_size( + "Autofill", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); autofill }) @@ -1099,7 +1103,11 @@ impl RagdollWizard { .with_width(100.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("OK") + .with_text_and_font_size( + "OK", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); ok }) @@ -1109,7 +1117,11 @@ impl RagdollWizard { .with_width(100.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Cancel") + .with_text_and_font_size( + "Cancel", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); cancel }), diff --git a/editor/src/plugins/settings.rs b/editor/src/plugins/settings.rs index c02304c4f..86925f8f6 100644 --- a/editor/src/plugins/settings.rs +++ b/editor/src/plugins/settings.rs @@ -151,7 +151,11 @@ impl SettingsWindow { .with_width(80.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("Default") + .with_text_and_font_size( + "Default", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); default }) @@ -161,7 +165,11 @@ impl SettingsWindow { .with_width(80.0) .with_margin(Thickness::uniform(1.0)), ) - .with_text("OK") + .with_text_and_font_size( + "OK", + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx); ok }), @@ -235,7 +243,11 @@ impl SettingsWindow { ButtonBuilder::new(WidgetBuilder::new().with_user_data(Arc::new(Mutex::new( GroupName(entry.property_tag.clone()), )))) - .with_text(&entry.property_display_name) + .with_text_and_font_size( + &entry.property_display_name, + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx) .to_base() }) diff --git a/editor/src/plugins/tilemap/colliders_tab.rs b/editor/src/plugins/tilemap/colliders_tab.rs index e30ebc961..9e340fe35 100644 --- a/editor/src/plugins/tilemap/colliders_tab.rs +++ b/editor/src/plugins/tilemap/colliders_tab.rs @@ -94,7 +94,11 @@ fn make_button( .with_margin(Thickness::uniform(1.0)) .with_tooltip(make_simple_tooltip(ctx, tooltip)), ) - .with_text(title) + .with_text_and_font_size( + title, + ctx.default_font(), + ctx.style.property(Editor::UI_FONT_SIZE), + ) .build(ctx) } diff --git a/editor/src/plugins/tilemap/macro_inspector.rs b/editor/src/plugins/tilemap/macro_inspector.rs index aa3ff8d88..3d655e5e0 100644 --- a/editor/src/plugins/tilemap/macro_inspector.rs +++ b/editor/src/plugins/tilemap/macro_inspector.rs @@ -114,7 +114,11 @@ fn make_button(title: &str, tooltip: &str, ctx: &mut BuildContext) -> Handle Handle