From 54b774b299b8d88051a6c779d21e8c7c6a900e6e Mon Sep 17 00:00:00 2001 From: CopeFiend Date: Wed, 6 May 2026 22:56:02 +0800 Subject: [PATCH] Refactored TextBuilder initialization TextBuilder can now be initialized without `widget_builder` which means calls like: ```rust TextBuilder::new() .with_font(font) .with_font_size(font_size) ``` are now possible --- editor/src/asset/dependency.rs | 11 +- editor/src/asset/item.rs | 22 ++- editor/src/asset/menu.rs | 21 +-- editor/src/asset/preview/mod.rs | 2 +- editor/src/asset/selector.rs | 33 ++-- editor/src/audio/bus.rs | 33 ++-- editor/src/audio/mod.rs | 30 ++-- editor/src/audio/preview.rs | 28 +-- editor/src/command/panel.rs | 27 +-- editor/src/configurator.rs | 44 ++--- editor/src/export/mod.rs | 58 ++++--- editor/src/lib.rs | 24 +-- editor/src/light.rs | 18 +- editor/src/mesh.rs | 8 +- editor/src/particle.rs | 32 ++-- editor/src/plugins/absm/blendspace.rs | 143 +++++++++------- editor/src/plugins/absm/node.rs | 38 +++-- editor/src/plugins/absm/socket.rs | 13 +- editor/src/plugins/animation/toolbar.rs | 5 +- editor/src/plugins/animation/track.rs | 42 ++--- editor/src/plugins/inspector/editors/font.rs | 2 +- .../src/plugins/inspector/editors/handle.rs | 25 +-- .../src/plugins/inspector/editors/resource.rs | 17 +- .../src/plugins/inspector/editors/script.rs | 3 +- .../inspector/editors/spritesheet/mod.rs | 15 +- .../inspector/editors/spritesheet/window.rs | 42 ++--- .../src/plugins/inspector/editors/surface.rs | 3 +- .../src/plugins/inspector/editors/texture.rs | 17 +- .../inspector/editors/triangle_buffer.rs | 15 +- .../inspector/editors/vertex_buffer.rs | 15 +- editor/src/plugins/inspector/mod.rs | 38 +++-- editor/src/plugins/material/editor.rs | 12 +- editor/src/plugins/material/mod.rs | 21 +-- editor/src/plugins/stats.rs | 6 +- editor/src/plugins/tilemap/autotile.rs | 33 ++-- editor/src/plugins/tilemap/brush_macro.rs | 14 +- editor/src/plugins/tilemap/collider_editor.rs | 8 +- editor/src/plugins/tilemap/colliders_tab.rs | 49 +++--- editor/src/plugins/tilemap/handle_field.rs | 4 +- editor/src/plugins/tilemap/macro_inspector.rs | 13 +- editor/src/plugins/tilemap/macro_tab.rs | 68 ++++---- editor/src/plugins/tilemap/mod.rs | 3 +- editor/src/plugins/tilemap/panel.rs | 4 +- editor/src/plugins/tilemap/properties_tab.rs | 93 +++++----- editor/src/plugins/tilemap/tile_editor.rs | 4 +- editor/src/plugins/tilemap/tile_inspector.rs | 4 +- .../src/plugins/tilemap/tile_prop_editor.rs | 2 +- editor/src/plugins/tilemap/tileset.rs | 9 +- editor/src/plugins/tilemap/wfc.rs | 34 ++-- editor/src/scene/dialog.rs | 17 +- editor/src/scene/property.rs | 3 +- editor/src/scene/selector.rs | 36 ++-- editor/src/scene_viewer/mod.rs | 33 ++-- editor/src/stats.rs | 9 +- editor/src/ui_scene/bbcode.rs | 6 +- editor/src/world/item.rs | 35 ++-- editor/src/world/mod.rs | 2 +- fyrox-build-tools/src/build.rs | 33 ++-- fyrox-ui/src/button.rs | 2 +- fyrox-ui/src/color/mod.rs | 17 +- fyrox-ui/src/curve/mod.rs | 46 ++--- fyrox-ui/src/dock/tile.rs | 17 +- fyrox-ui/src/file_browser/fs_tree.rs | 27 +-- fyrox-ui/src/file_browser/mod.rs | 23 +-- fyrox-ui/src/file_browser/selector.rs | 34 ++-- fyrox-ui/src/input.rs | 12 +- .../src/inspector/editors/texture_slice.rs | 20 +-- fyrox-ui/src/inspector/mod.rs | 30 ++-- fyrox-ui/src/key.rs | 4 +- fyrox-ui/src/log.rs | 35 ++-- fyrox-ui/src/menu.rs | 53 +++--- fyrox-ui/src/messagebox.rs | 17 +- fyrox-ui/src/range.rs | 17 +- fyrox-ui/src/rect.rs | 2 +- fyrox-ui/src/scroll_bar.rs | 47 +++--- fyrox-ui/src/text.rs | 30 ++-- fyrox-ui/src/text_box.rs | 19 ++- fyrox-ui/src/utils.rs | 75 +++++---- fyrox-ui/src/uuid.rs | 19 ++- fyrox-ui/src/window.rs | 25 +-- project-manager/src/manager.rs | 159 +++++++++--------- project-manager/src/project.rs | 61 +++---- project-manager/src/upgrade.rs | 33 ++-- project-manager/src/utils.rs | 2 +- 84 files changed, 1167 insertions(+), 1038 deletions(-) diff --git a/editor/src/asset/dependency.rs b/editor/src/asset/dependency.rs index e1d4d524c..d938d6473 100644 --- a/editor/src/asset/dependency.rs +++ b/editor/src/asset/dependency.rs @@ -73,11 +73,12 @@ fn build_tree_recursively( TreeBuilder::new(WidgetBuilder::new()) .with_items(children) .with_content( - TextBuilder::new( - WidgetBuilder::new().with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text(format!("{name} ({data_type})")) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text(format!("{name} ({data_type})")) + .build(ctx), ) .build(ctx) } diff --git a/editor/src/asset/item.rs b/editor/src/asset/item.rs index 826fb8035..c861e8a4c 100644 --- a/editor/src/asset/item.rs +++ b/editor/src/asset/item.rs @@ -350,14 +350,15 @@ fn make_tooltip(ctx: &mut BuildContext, text: &str) -> RcUiNodeHandle { .with_background(ctx.style.property(Style::BRUSH_TEXT)) .with_max_size(Vector2::new(300.0, f32::INFINITY)) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(2.0)) - .with_foreground(ctx.style.property(Style::BRUSH_DARKER)), - ) - .with_wrap(WrapMode::Letter) - .with_text(text) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(2.0)) + .with_foreground(ctx.style.property(Style::BRUSH_DARKER)), + ) + .with_wrap(WrapMode::Letter) + .with_text(text) + .build(ctx), ), ) .build(ctx); @@ -409,7 +410,10 @@ impl AssetItemBuilder { .property(AssetItem::DESELECTED_TEXT_BORDER_BACKGROUND), ) .with_child( - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(2.0))) + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), + ) .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Center) .with_wrap(WrapMode::Word) diff --git a/editor/src/asset/menu.rs b/editor/src/asset/menu.rs index 91e1f1a84..b7382bf30 100644 --- a/editor/src/asset/menu.rs +++ b/editor/src/asset/menu.rs @@ -154,16 +154,17 @@ impl AssetRenameDialogBuilder { let content = GridBuilder::new( WidgetBuilder::new() .with_child( - TextBuilder::new( - WidgetBuilder::new() - .on_row(0) - .with_margin(Thickness::uniform(2.0)), - ) - .with_text(format!( - "Enter a new name for {old_file_name}.{extension} resource." - )) - .with_wrap(WrapMode::Word) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(0) + .with_margin(Thickness::uniform(2.0)), + ) + .with_text(format!( + "Enter a new name for {old_file_name}.{extension} resource." + )) + .with_wrap(WrapMode::Word) + .build(ctx), ) .with_child({ name_field = TextBoxBuilder::new( diff --git a/editor/src/asset/preview/mod.rs b/editor/src/asset/preview/mod.rs index 6c3654f3d..1a8ff1950 100644 --- a/editor/src/asset/preview/mod.rs +++ b/editor/src/asset/preview/mod.rs @@ -723,7 +723,7 @@ impl AssetPreviewGenerator for FontPreview { let mut ui = UserInterface::new(asset::item::DEFAULT_VEC_SIZE); ScreenBuilder::new( WidgetBuilder::new().with_child( - TextBuilder::new(WidgetBuilder::new()) + TextBuilder::new() .with_font(font) .with_font_size(16.0.into()) .with_vertical_text_alignment(VerticalAlignment::Center) diff --git a/editor/src/asset/selector.rs b/editor/src/asset/selector.rs index c67a8d0a0..7774ccd8e 100644 --- a/editor/src/asset/selector.rs +++ b/editor/src/asset/selector.rs @@ -182,22 +182,23 @@ impl ItemBuilder { let content = GridBuilder::new( WidgetBuilder::new().with_child(image).with_child( - TextBuilder::new( - WidgetBuilder::new() - .on_row(1) - .with_width(64.0) - .with_margin(Thickness::uniform(1.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Top) - .with_horizontal_text_alignment(HorizontalAlignment::Center) - .with_wrap(WrapMode::Word) - .with_text( - self.path - .file_name() - .map(|file_name| file_name.to_string_lossy().to_string()) - .unwrap_or_default(), - ) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(1) + .with_width(64.0) + .with_margin(Thickness::uniform(1.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Top) + .with_horizontal_text_alignment(HorizontalAlignment::Center) + .with_wrap(WrapMode::Word) + .with_text( + self.path + .file_name() + .map(|file_name| file_name.to_string_lossy().to_string()) + .unwrap_or_default(), + ) + .build(ctx), ), ) .add_row(Row::auto()) diff --git a/editor/src/audio/bus.rs b/editor/src/audio/bus.rs index fffb902c9..f1c594aa6 100644 --- a/editor/src/audio/bus.rs +++ b/editor/src/audio/bus.rs @@ -116,18 +116,20 @@ fn make_items(buses: &[(Handle, String)], ctx: &mut BuildContext) -> V fn make_effect_names(names: &[String], ctx: &mut BuildContext) -> Vec> { if names.is_empty() { - vec![TextBuilder::new( - WidgetBuilder::new().with_foreground(ctx.style.property(Style::BRUSH_LIGHTER)), - ) - .with_text("No Effects") - .with_horizontal_text_alignment(HorizontalAlignment::Center) - .build(ctx) - .to_base()] + vec![TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_foreground(ctx.style.property(Style::BRUSH_LIGHTER)), + ) + .with_text("No Effects") + .with_horizontal_text_alignment(HorizontalAlignment::Center) + .build(ctx) + .to_base()] } else { names .iter() .map(|n| { - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_text(n) .with_horizontal_text_alignment(HorizontalAlignment::Center) .build(ctx) @@ -194,13 +196,14 @@ impl AudioBusViewBuilder { WidgetBuilder::new() .with_child( BorderBuilder::new(WidgetBuilder::new().on_row(0).on_column(0).with_child({ - name = TextBuilder::new( - WidgetBuilder::new() - .with_horizontal_alignment(HorizontalAlignment::Center) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text(self.name) - .build(ctx); + name = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_horizontal_alignment(HorizontalAlignment::Center) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text(self.name) + .build(ctx); name })) .build(ctx), diff --git a/editor/src/audio/mod.rs b/editor/src/audio/mod.rs index a67f2746d..a51a6b99e 100644 --- a/editor/src/audio/mod.rs +++ b/editor/src/audio/mod.rs @@ -240,13 +240,14 @@ impl AudioPanel { WidgetBuilder::new() .on_row(0) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(1.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text("DM") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(1.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text("DM") + .build(ctx), ) .with_child({ distance_model = DropdownListBuilder::new( @@ -271,13 +272,14 @@ impl AudioPanel { distance_model }) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(1.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text("Renderer") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(1.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text("Renderer") + .build(ctx), ) .with_child({ renderer = DropdownListBuilder::new( diff --git a/editor/src/audio/preview.rs b/editor/src/audio/preview.rs index 5857fa57a..40186d434 100644 --- a/editor/src/audio/preview.rs +++ b/editor/src/audio/preview.rs @@ -86,13 +86,14 @@ impl AudioPreviewPanel { .with_margin(Thickness::uniform(1.0)), ) .with_content( - TextBuilder::new( - WidgetBuilder::new() - .on_column(0) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text("Preview") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(0) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text("Preview") + .build(ctx), ) .build(ctx); preview @@ -127,12 +128,13 @@ impl AudioPreviewPanel { WidgetBuilder::new() .on_row(1) .with_child( - TextBuilder::new( - WidgetBuilder::new().with_margin(Thickness::uniform(1.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text("Time, s") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::uniform(1.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text("Time, s") + .build(ctx), ) .with_child({ time = ScrollBarBuilder::new( diff --git a/editor/src/command/panel.rs b/editor/src/command/panel.rs index 12f6a24e2..99efb3be7 100644 --- a/editor/src/command/panel.rs +++ b/editor/src/command/panel.rs @@ -177,19 +177,20 @@ impl CommandStackViewer { ui.style.property(Style::BRUSH_LIGHTEST) }; - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness { - left: 2.0, - top: 1.0, - right: 2.0, - bottom: 0.0, - }) - .with_foreground(brush), - ) - .with_text(name) - .build(&mut ui.build_ctx()) - .to_base() + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness { + left: 2.0, + top: 1.0, + right: 2.0, + bottom: 0.0, + }) + .with_foreground(brush), + ) + .with_text(name) + .build(&mut ui.build_ctx()) + .to_base() }) .collect(); diff --git a/editor/src/configurator.rs b/editor/src/configurator.rs index c3e44fcb3..2615525e1 100644 --- a/editor/src/configurator.rs +++ b/editor/src/configurator.rs @@ -84,7 +84,8 @@ fn make_history_entry_widget(ctx: &mut BuildContext, entry: &HistoryEntry) -> Ha bottom: 1.0, }) .with_child( - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::left(5.0))) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::left(5.0))) .with_text(format!("{}", entry.work_dir.display(),)) .with_vertical_text_alignment(VerticalAlignment::Center) .build(ctx), @@ -143,7 +144,10 @@ impl Configurator { WidgetBuilder::new() .with_margin(Thickness::uniform(1.0)) .with_child( - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::uniform(1.0)), + ) .with_text(message) .with_wrap(WrapMode::Word) .build(ctx), @@ -153,15 +157,16 @@ impl Configurator { WidgetBuilder::new() .on_row(1) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .on_row(0) - .on_column(0) - .with_margin(Thickness::uniform(1.0)) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text("Working Directory") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(0) + .on_column(0) + .with_margin(Thickness::uniform(1.0)) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text("Working Directory") + .build(ctx), ) .with_child({ tb_work_dir = TextBoxBuilder::new( @@ -201,14 +206,15 @@ impl Configurator { .build(ctx), ) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(5.0)) - .on_row(2), - ) - .with_text("Previous Configurations") - .with_horizontal_text_alignment(HorizontalAlignment::Center) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(5.0)) + .on_row(2), + ) + .with_text("Previous Configurations") + .with_horizontal_text_alignment(HorizontalAlignment::Center) + .build(ctx), ) .with_child({ lv_history = ListViewBuilder::new( diff --git a/editor/src/export/mod.rs b/editor/src/export/mod.rs index 76ec0662a..f2cc8d7de 100644 --- a/editor/src/export/mod.rs +++ b/editor/src/export/mod.rs @@ -82,14 +82,15 @@ pub struct ExportWindow { } fn make_title_text(text: &str, row: usize, ctx: &mut BuildContext) -> Handle { - TextBuilder::new( - WidgetBuilder::new() - .on_row(row) - .with_foreground(ctx.style.property(ExportWindow::TITLE_BRUSH)) - .with_margin(Thickness::uniform(2.0)), - ) - .with_text(text) - .build(ctx) + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(row) + .with_foreground(ctx.style.property(ExportWindow::TITLE_BRUSH)) + .with_margin(Thickness::uniform(2.0)), + ) + .with_text(text) + .build(ctx) } impl ExportWindow { @@ -135,7 +136,7 @@ impl ExportWindow { .with_height(50.0) .with_margin(Thickness::uniform(1.0)) .with_child( - TextBuilder::new(WidgetBuilder::new()) + TextBuilder::new() .with_vertical_text_alignment( VerticalAlignment::Center, ) @@ -163,7 +164,10 @@ impl ExportWindow { WidgetBuilder::new() .on_row(2) .with_child( - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(2.0))) + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), + ) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text("Build Target") .build(ctx), @@ -287,14 +291,15 @@ impl ExportWindow { GridBuilder::new( WidgetBuilder::new() .with_child( - TextBuilder::new( - WidgetBuilder::new() - .on_row(0) - .with_margin(Thickness::uniform(2.0)), - ) - .with_wrap(WrapMode::Word) - .with_text(instructions) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(0) + .with_margin(Thickness::uniform(2.0)), + ) + .with_wrap(WrapMode::Word) + .with_text(instructions) + .build(ctx), ) .with_child(platform_section) .with_child(grid) @@ -482,14 +487,15 @@ impl ExportWindow { MessageKind::Warning => ctx.style.property(Style::BRUSH_WARNING), MessageKind::Error => ctx.style.property(Style::BRUSH_ERROR), }; - let entry = TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(1.0)) - .with_foreground(foreground), - ) - .with_wrap(WrapMode::Letter) - .with_text(format!("> {}", message.content)) - .build(ctx); + let entry = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(1.0)) + .with_foreground(foreground), + ) + .with_wrap(WrapMode::Letter) + .with_text(format!("> {}", message.content)) + .build(ctx); ui.send(entry, WidgetMessage::link_with(self.log)); ui.send(self.log_scroll_viewer, ScrollViewerMessage::ScrollToEnd); diff --git a/editor/src/lib.rs b/editor/src/lib.rs index 367348b87..aa5804263 100644 --- a/editor/src/lib.rs +++ b/editor/src/lib.rs @@ -551,7 +551,7 @@ 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().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) @@ -564,15 +564,16 @@ impl SceneLoadingWindow { WidgetBuilder::new() .with_margin(Thickness::uniform(2.0)) .with_child( - TextBuilder::new( - WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), - ) - .with_wrap(WrapMode::Word) - .with_text( - "Please wait until the following scene(s) are \ + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::uniform(2.0)), + ) + .with_wrap(WrapMode::Word) + .with_text( + "Please wait until the following scene(s) are \ fully loaded.", - ) - .build(ctx), + ) + .build(ctx), ) .with_child(scene_list_text), ) @@ -2265,7 +2266,10 @@ impl Editor { .with_text("Click Me!") .build(&mut ui.build_ctx()); - TextBuilder::new(WidgetBuilder::new().with_desired_position(Vector2::new(300.0, 300.0))) + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_desired_position(Vector2::new(300.0, 300.0)), + ) .with_text("This is some text.") .build(&mut ui.build_ctx()); diff --git a/editor/src/light.rs b/editor/src/light.rs index 68a479432..d3aafc712 100644 --- a/editor/src/light.rs +++ b/editor/src/light.rs @@ -122,7 +122,8 @@ impl ProgressWindow { GridBuilder::new( WidgetBuilder::new() .with_child( - TextBuilder::new(WidgetBuilder::new().on_row(0)) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().on_row(0)) .with_text( "Please wait until light map is fully generated. It may \ take different amount of time depending on the settings.", @@ -138,13 +139,14 @@ impl ProgressWindow { progress_bar }) .with_child({ - text = TextBuilder::new( - WidgetBuilder::new() - .on_row(1) - .with_horizontal_alignment(HorizontalAlignment::Center) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .build(ctx); + text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(1) + .with_horizontal_alignment(HorizontalAlignment::Center) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .build(ctx); text }) .with_child({ diff --git a/editor/src/mesh.rs b/editor/src/mesh.rs index 2c3472686..8bf7f11b9 100644 --- a/editor/src/mesh.rs +++ b/editor/src/mesh.rs @@ -331,9 +331,11 @@ impl SurfaceDataViewer { let ctx = &mut engine.user_interfaces.first_mut().build_ctx(); - let info = - TextBuilder::new(WidgetBuilder::new().with_vertical_alignment(VerticalAlignment::Top)) - .build(ctx); + let info = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_vertical_alignment(VerticalAlignment::Top), + ) + .build(ctx); let content = GridBuilder::new( WidgetBuilder::new() diff --git a/editor/src/particle.rs b/editor/src/particle.rs index 189b73603..4e5928595 100644 --- a/editor/src/particle.rs +++ b/editor/src/particle.rs @@ -78,13 +78,14 @@ impl ParticleSystemPreviewControlPanel { .with_margin(Thickness::uniform(1.0)), ) .with_content( - TextBuilder::new( - WidgetBuilder::new() - .with_vertical_alignment(VerticalAlignment::Center) - .with_margin(Thickness::uniform(1.0)), - ) - .with_text("Preview") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_vertical_alignment(VerticalAlignment::Center) + .with_margin(Thickness::uniform(1.0)), + ) + .with_text("Preview") + .build(ctx), ) .build(ctx); preview @@ -154,14 +155,15 @@ impl ParticleSystemPreviewControlPanel { .on_row(1) .on_column(0) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .on_column(0) - .with_vertical_alignment(VerticalAlignment::Center) - .with_margin(Thickness::uniform(1.0)), - ) - .with_text("Playback Time") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(0) + .with_vertical_alignment(VerticalAlignment::Center) + .with_margin(Thickness::uniform(1.0)), + ) + .with_text("Playback Time") + .build(ctx), ) .with_child({ time = NumericUpDownBuilder::new( diff --git a/editor/src/plugins/absm/blendspace.rs b/editor/src/plugins/absm/blendspace.rs index 40364fdb0..2859c9551 100644 --- a/editor/src/plugins/absm/blendspace.rs +++ b/editor/src/plugins/absm/blendspace.rs @@ -621,13 +621,14 @@ impl BlendSpaceFieldPointBuilder { .with_cursor(Some(CursorIcon::Grab)) .with_clip_to_bounds(false) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::left(10.0)) - .with_clip_to_bounds(false), - ) - .with_text(format!("{:?}", self.index)) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::left(10.0)) + .with_clip_to_bounds(false), + ) + .with_text(format!("{:?}", self.index)) + .build(ctx), ) .with_width(10.0) .with_height(10.0) @@ -678,37 +679,46 @@ impl BlendSpaceEditor { GridBuilder::new( WidgetBuilder::new() .with_child({ - max_y = TextBuilder::new( - WidgetBuilder::new() - .on_row(0) - .with_margin(Thickness::uniform(1.0)) - .with_height(22.0) - .with_vertical_alignment(VerticalAlignment::Top), - ) - .build(ctx); + max_y = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(0) + .with_margin(Thickness::uniform(1.0)) + .with_height(22.0) + .with_vertical_alignment( + VerticalAlignment::Top, + ), + ) + .build(ctx); max_y }) .with_child({ - y_axis_name = TextBuilder::new( - WidgetBuilder::new() - .with_height(22.0) - .on_row(1) - .with_margin(Thickness::uniform(1.0)) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .build(ctx); + y_axis_name = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_height(22.0) + .on_row(1) + .with_margin(Thickness::uniform(1.0)) + .with_vertical_alignment( + VerticalAlignment::Center, + ), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .build(ctx); y_axis_name }) .with_child({ - min_y = TextBuilder::new( - WidgetBuilder::new() - .with_height(22.0) - .on_row(2) - .with_margin(Thickness::uniform(1.0)) - .with_vertical_alignment(VerticalAlignment::Bottom), - ) - .build(ctx); + min_y = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_height(22.0) + .on_row(2) + .with_margin(Thickness::uniform(1.0)) + .with_vertical_alignment( + VerticalAlignment::Bottom, + ), + ) + .build(ctx); min_y }), ) @@ -725,44 +735,49 @@ impl BlendSpaceEditor { .on_row(1) .on_column(1) .with_child({ - min_x = TextBuilder::new( - WidgetBuilder::new() - .on_column(0) - .with_margin(Thickness::uniform(1.0)) - .with_width(50.0) - .with_horizontal_alignment( - HorizontalAlignment::Left, - ), - ) - .build(ctx); + min_x = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(0) + .with_margin(Thickness::uniform(1.0)) + .with_width(50.0) + .with_horizontal_alignment( + HorizontalAlignment::Left, + ), + ) + .build(ctx); min_x }) .with_child({ - x_axis_name = TextBuilder::new( - WidgetBuilder::new() - .on_column(1) - .with_margin(Thickness::uniform(1.0)) - .with_width(50.0) - .with_horizontal_alignment( - HorizontalAlignment::Center, - ), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .build(ctx); + x_axis_name = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(1) + .with_margin(Thickness::uniform(1.0)) + .with_width(50.0) + .with_horizontal_alignment( + HorizontalAlignment::Center, + ), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .build(ctx); x_axis_name }) .with_child({ - max_x = TextBuilder::new( - WidgetBuilder::new() - .on_column(2) - .with_margin(Thickness::uniform(1.0)) - .with_width(50.0) - .with_horizontal_alignment( - HorizontalAlignment::Right, - ), - ) - .with_horizontal_text_alignment(HorizontalAlignment::Right) - .build(ctx); + max_x = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(2) + .with_margin(Thickness::uniform(1.0)) + .with_width(50.0) + .with_horizontal_alignment( + HorizontalAlignment::Right, + ), + ) + .with_horizontal_text_alignment( + HorizontalAlignment::Right, + ) + .build(ctx); max_x }), ) diff --git a/editor/src/plugins/absm/node.rs b/editor/src/plugins/absm/node.rs index c2c028e0e..3eeffe155 100644 --- a/editor/src/plugins/absm/node.rs +++ b/editor/src/plugins/absm/node.rs @@ -375,13 +375,14 @@ where WidgetBuilder::new() .on_column(1) .with_child({ - name = TextBuilder::new( - WidgetBuilder::new().with_width(150.0).with_height(75.0), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_horizontal_text_alignment(HorizontalAlignment::Center) - .with_text(format!("{} ({})", self.name, self.model_handle)) - .build(ctx); + name = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_width(150.0).with_height(75.0), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_horizontal_text_alignment(HorizontalAlignment::Center) + .with_text(format!("{} ({})", self.name, self.model_handle)) + .build(ctx); name }) .with_child(if self.editable { @@ -424,16 +425,19 @@ where .with_height(24.0) .with_background(ctx.style.property(Style::BRUSH_DARKER)) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_vertical_alignment(VerticalAlignment::Center) - .with_horizontal_alignment( - HorizontalAlignment::Center, - ) - .with_margin(Thickness::uniform(2.0)), - ) - .with_text(title) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_vertical_alignment( + VerticalAlignment::Center, + ) + .with_horizontal_alignment( + HorizontalAlignment::Center, + ) + .with_margin(Thickness::uniform(2.0)), + ) + .with_text(title) + .build(ctx), ), ) .with_pad_by_corner_radius(false) diff --git a/editor/src/plugins/absm/socket.rs b/editor/src/plugins/absm/socket.rs index 10a43d77e..f32904d1c 100644 --- a/editor/src/plugins/absm/socket.rs +++ b/editor/src/plugins/absm/socket.rs @@ -196,12 +196,13 @@ impl SocketBuilder { pin }) .with_child(if self.show_index { - TextBuilder::new( - WidgetBuilder::new().with_margin(Thickness::left(2.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text(format!("{:?}", self.index)) - .build(ctx) + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::left(2.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text(format!("{:?}", self.index)) + .build(ctx) } else { Handle::NONE }), diff --git a/editor/src/plugins/animation/toolbar.rs b/editor/src/plugins/animation/toolbar.rs index 9805d318d..a9945d91d 100644 --- a/editor/src/plugins/animation/toolbar.rs +++ b/editor/src/plugins/animation/toolbar.rs @@ -121,7 +121,8 @@ struct RootMotionDropdownArea { impl RootMotionDropdownArea { fn new(ctx: &mut BuildContext) -> Self { fn text(text: &str, row: usize, ctx: &mut BuildContext) -> Handle { - TextBuilder::new(WidgetBuilder::new().on_row(row).on_column(0)) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().on_row(row).on_column(0)) .with_vertical_text_alignment(VerticalAlignment::Center) .with_text(text) .build(ctx) @@ -532,7 +533,7 @@ impl Toolbar { )), ) .with_content( - TextBuilder::new(WidgetBuilder::new()) + TextBuilder::new() .with_vertical_text_alignment(VerticalAlignment::Center) .with_text("Enabled") .build(ctx), diff --git a/editor/src/plugins/animation/track.rs b/editor/src/plugins/animation/track.rs index ede621199..8f3f34461 100644 --- a/editor/src/plugins/animation/track.rs +++ b/editor/src/plugins/animation/track.rs @@ -519,14 +519,15 @@ impl TrackViewBuilder { track_enabled_switch }) .with_child({ - name_text = TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(1.0)) - .with_vertical_alignment(VerticalAlignment::Center) - .on_column(1), - ) - .with_text(self.name) - .build(ctx); + name_text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(1.0)) + .with_vertical_alignment(VerticalAlignment::Center) + .on_column(1), + ) + .with_text(self.name) + .build(ctx); name_text }), ) @@ -1515,7 +1516,7 @@ impl TrackList { let ctx = &mut ui.build_ctx(); let group = TreeBuilder::new(WidgetBuilder::new()) .with_content( - TextBuilder::new(WidgetBuilder::new()) + TextBuilder::new() .with_vertical_text_alignment(VerticalAlignment::Center) .with_text(format!( "{} ({}:{})", @@ -1591,17 +1592,18 @@ impl TrackList { .build(ctx), ) .with_child( - TextBuilder::new( - WidgetBuilder::new().on_column(1).with_margin( - Thickness { - top: 2.0, - left: 3.0, - ..Default::default() - }, - ), - ) - .with_text(curve_name) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(1) + .with_margin(Thickness { + top: 2.0, + left: 3.0, + ..Default::default() + }), + ) + .with_text(curve_name) + .build(ctx), ), ) .add_row(Row::auto()) diff --git a/editor/src/plugins/inspector/editors/font.rs b/editor/src/plugins/inspector/editors/font.rs index 8bfc4d334..b069baaa4 100644 --- a/editor/src/plugins/inspector/editors/font.rs +++ b/editor/src/plugins/inspector/editors/font.rs @@ -176,7 +176,7 @@ impl FontFieldBuilder { .widget_builder .with_allow_drop(true) .with_child({ - text_preview = TextBuilder::new(WidgetBuilder::new()) + text_preview = TextBuilder::new() .with_wrap(WrapMode::Word) .with_text(make_name(&resource_manager, &self.font)) .with_font(self.font.clone()) diff --git a/editor/src/plugins/inspector/editors/handle.rs b/editor/src/plugins/inspector/editors/handle.rs index df5df6f89..227786942 100644 --- a/editor/src/plugins/inspector/editors/handle.rs +++ b/editor/src/plugins/inspector/editors/handle.rs @@ -367,18 +367,19 @@ impl HandlePropertyEditorBuilder { } pub fn build(self, ctx: &mut BuildContext) -> Handle> { - let text = TextBuilder::new( - WidgetBuilder::new() - .on_column(0) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text(if self.value.is_none() { - "Unassigned".to_owned() - } else { - "Err: Desync!".to_owned() - }) - .build(ctx); + let text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(0) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text(if self.value.is_none() { + "Unassigned".to_owned() + } else { + "Err: Desync!".to_owned() + }) + .build(ctx); let locate_img = include_bytes!("../../../../resources/locate.png"); let locate = make_button(ctx, locate_img, Color::repeat(180), 2, "Locate Object"); let select_img = include_bytes!("../../../../resources/select_in_wv.png"); diff --git a/editor/src/plugins/inspector/editors/resource.rs b/editor/src/plugins/inspector/editors/resource.rs index 71e94b63a..3b409a4de 100644 --- a/editor/src/plugins/inspector/editors/resource.rs +++ b/editor/src/plugins/inspector/editors/resource.rs @@ -331,14 +331,15 @@ where image }) .with_child({ - name = TextBuilder::new( - WidgetBuilder::new() - .on_column(1) - .with_margin(Thickness::uniform(3.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text(resource_path(&resource_manager, &self.resource)) - .build(ctx); + name = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(1) + .with_margin(Thickness::uniform(3.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text(resource_path(&resource_manager, &self.resource)) + .build(ctx); name }) .with_child({ diff --git a/editor/src/plugins/inspector/editors/script.rs b/editor/src/plugins/inspector/editors/script.rs index 6e45a5b7b..827d65281 100644 --- a/editor/src/plugins/inspector/editors/script.rs +++ b/editor/src/plugins/inspector/editors/script.rs @@ -342,7 +342,8 @@ impl PropertyEditorDefinition for ScriptPropertyEditorDefinition { .with_tooltip(make_simple_tooltip(ctx.build_context, "Open in IDE")), ) .with_content( - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(3.0))) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::uniform(3.0))) .with_text("Edit...") .with_vertical_text_alignment(VerticalAlignment::Center) .build(ctx.build_context), diff --git a/editor/src/plugins/inspector/editors/spritesheet/mod.rs b/editor/src/plugins/inspector/editors/spritesheet/mod.rs index 7db5ab3aa..1295cbe15 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/mod.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/mod.rs @@ -110,13 +110,14 @@ impl SpriteSheetFramesPropertyEditor { let grid = GridBuilder::new( WidgetBuilder::new() .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(1.0)) - .on_column(0), - ) - .with_text(format!("Frames: {}", container.len())) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(1.0)) + .on_column(0), + ) + .with_text(format!("Frames: {}", container.len())) + .build(ctx), ) .with_child({ edit_button = ButtonBuilder::new( diff --git a/editor/src/plugins/inspector/editors/spritesheet/window.rs b/editor/src/plugins/inspector/editors/spritesheet/window.rs index d257afc82..cc6fdcee7 100644 --- a/editor/src/plugins/inspector/editors/spritesheet/window.rs +++ b/editor/src/plugins/inspector/editors/spritesheet/window.rs @@ -261,16 +261,17 @@ impl SpriteSheetFramesEditorWindow { .on_column(0) .on_row(1) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(2.0)) - .on_column(0) - .on_row(0) - .with_vertical_alignment(VerticalAlignment::Center) - .with_tooltip(make_simple_tooltip(ctx, column_tooltip)), - ) - .with_text("Width") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(2.0)) + .on_column(0) + .on_row(0) + .with_vertical_alignment(VerticalAlignment::Center) + .with_tooltip(make_simple_tooltip(ctx, column_tooltip)), + ) + .with_text("Width") + .build(ctx), ) .with_child({ width = NumericUpDownBuilder::new(WidgetBuilder::new().on_column(1).on_row(0)) @@ -280,16 +281,17 @@ impl SpriteSheetFramesEditorWindow { width }) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(2.0)) - .on_column(0) - .on_row(1) - .with_vertical_alignment(VerticalAlignment::Center) - .with_tooltip(make_simple_tooltip(ctx, row_tooltip)), - ) - .with_text("Height") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(2.0)) + .on_column(0) + .on_row(1) + .with_vertical_alignment(VerticalAlignment::Center) + .with_tooltip(make_simple_tooltip(ctx, row_tooltip)), + ) + .with_text("Height") + .build(ctx), ) .with_child({ height = NumericUpDownBuilder::new(WidgetBuilder::new().on_column(1).on_row(1)) diff --git a/editor/src/plugins/inspector/editors/surface.rs b/editor/src/plugins/inspector/editors/surface.rs index 660090c38..b8747b170 100644 --- a/editor/src/plugins/inspector/editors/surface.rs +++ b/editor/src/plugins/inspector/editors/surface.rs @@ -224,7 +224,8 @@ impl SurfaceDataPropertyEditor { let select = make_pick_button(1, ctx); - let text = TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) + let text = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_text(surface_data_info(&resource_manager, &surface_resource)) .build(ctx); diff --git a/editor/src/plugins/inspector/editors/texture.rs b/editor/src/plugins/inspector/editors/texture.rs index 145293c31..ff75097a9 100644 --- a/editor/src/plugins/inspector/editors/texture.rs +++ b/editor/src/plugins/inspector/editors/texture.rs @@ -217,14 +217,15 @@ impl TextureEditorBuilder { let select = utils::make_pick_button(2, ctx); - let path = TextBuilder::new( - WidgetBuilder::new() - .on_column(1) - .with_margin(Thickness::uniform(1.0)) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text(texture_name(self.texture.as_ref(), &resource_manager)) - .build(ctx); + let path = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_column(1) + .with_margin(Thickness::uniform(1.0)) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text(texture_name(self.texture.as_ref(), &resource_manager)) + .build(ctx); let locate = ImageButtonBuilder::default() .on_column(3) diff --git a/editor/src/plugins/inspector/editors/triangle_buffer.rs b/editor/src/plugins/inspector/editors/triangle_buffer.rs index ebe18cddc..0f1699ec8 100644 --- a/editor/src/plugins/inspector/editors/triangle_buffer.rs +++ b/editor/src/plugins/inspector/editors/triangle_buffer.rs @@ -59,13 +59,14 @@ impl PropertyEditorDefinition for TriangleBufferPropertyEditorDefinition { ) -> Result { let value = ctx.property_info.cast_value::()?; Ok(PropertyEditorInstance::simple( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::top_bottom(1.0)) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text(triangle_buffer_description(value)) - .build(ctx.build_context), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::top_bottom(1.0)) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text(triangle_buffer_description(value)) + .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..3451507cb 100644 --- a/editor/src/plugins/inspector/editors/vertex_buffer.rs +++ b/editor/src/plugins/inspector/editors/vertex_buffer.rs @@ -59,13 +59,14 @@ impl PropertyEditorDefinition for VertexBufferPropertyEditorDefinition { ) -> Result { let value = ctx.property_info.cast_value::()?; Ok(PropertyEditorInstance::simple( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::top_bottom(1.0)) - .with_vertical_alignment(VerticalAlignment::Center), - ) - .with_text(vertex_buffer_description(value)) - .build(ctx.build_context), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::top_bottom(1.0)) + .with_vertical_alignment(VerticalAlignment::Center), + ) + .with_text(vertex_buffer_description(value)) + .build(ctx.build_context), )) } diff --git a/editor/src/plugins/inspector/mod.rs b/editor/src/plugins/inspector/mod.rs index 607681017..52646c66e 100644 --- a/editor/src/plugins/inspector/mod.rs +++ b/editor/src/plugins/inspector/mod.rs @@ -228,16 +228,17 @@ impl InspectorPlugin { GridBuilder::new( WidgetBuilder::new() .with_child({ - warning_text = TextBuilder::new( - WidgetBuilder::new() - .with_visibility(false) - .with_margin(Thickness::left(4.0)) - .with_foreground(ctx.style.property(Style::BRUSH_ERROR)) - .on_row(0), - ) - .with_wrap(WrapMode::Word) - .with_text(warning_text_str) - .build(ctx); + warning_text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_visibility(false) + .with_margin(Thickness::left(4.0)) + .with_foreground(ctx.style.property(Style::BRUSH_ERROR)) + .on_row(0), + ) + .with_wrap(WrapMode::Word) + .with_text(warning_text_str) + .build(ctx); warning_text }) .with_child( @@ -245,14 +246,15 @@ impl InspectorPlugin { WidgetBuilder::new() .on_row(1) .with_child({ - type_name_text = TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::uniform(4.0)) - .on_row(0) - .on_column(0), - ) - .with_wrap(WrapMode::NoWrap) - .build(ctx); + type_name_text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::uniform(4.0)) + .on_row(0) + .on_column(0), + ) + .with_wrap(WrapMode::NoWrap) + .build(ctx); type_name_text }) .with_child({ diff --git a/editor/src/plugins/material/editor.rs b/editor/src/plugins/material/editor.rs index ca262d07e..1190be84a 100644 --- a/editor/src/plugins/material/editor.rs +++ b/editor/src/plugins/material/editor.rs @@ -317,11 +317,13 @@ impl MaterialFieldEditorBuilder { WidgetBuilder::new() .on_column(1) .with_child({ - text = - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) - .with_text(make_name(&resource_manager, &material)) - .with_vertical_text_alignment(VerticalAlignment::Center) - .build(ctx); + text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new().with_margin(Thickness::uniform(1.0)), + ) + .with_text(make_name(&resource_manager, &material)) + .with_vertical_text_alignment(VerticalAlignment::Center) + .build(ctx); text }) .with_child(buttons), diff --git a/editor/src/plugins/material/mod.rs b/editor/src/plugins/material/mod.rs index 34533a159..f2dcc1f73 100644 --- a/editor/src/plugins/material/mod.rs +++ b/editor/src/plugins/material/mod.rs @@ -130,7 +130,7 @@ fn make_item_container(ctx: &mut BuildContext, name: &str, item: Handle) WidgetBuilder::new() .with_margin(Thickness::uniform(1.0)) .with_child( - TextBuilder::new(WidgetBuilder::new()) + TextBuilder::new() .with_text(name) .with_vertical_text_alignment(VerticalAlignment::Center) .build(ctx), @@ -305,15 +305,16 @@ impl MaterialEditor { WidgetBuilder::new() .on_row(0) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .on_row(0) - .on_column(0) - .with_margin(Thickness::uniform(3.0)), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_text("Shader") - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .on_row(0) + .on_column(0) + .with_margin(Thickness::uniform(3.0)), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_text("Shader") + .build(ctx), ) .with_child({ shader = ResourceFieldBuilder::::new( diff --git a/editor/src/plugins/stats.rs b/editor/src/plugins/stats.rs index 9a40f0e10..541b2b997 100644 --- a/editor/src/plugins/stats.rs +++ b/editor/src/plugins/stats.rs @@ -69,9 +69,9 @@ impl EditorPlugin for EditorStatisticsPlugin { if let Some(MenuItemMessage::Click) = message.data() { if message.destination() == self.open_ui_stats && self.window.is_none() { let ctx = &mut ui.build_ctx(); - self.text = - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) - .build(ctx); + self.text = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) + .build(ctx); self.window = WindowBuilder::new(WidgetBuilder::new().with_width(200.0).with_height(130.0)) .with_title(WindowTitle::text("Editor Statistics")) diff --git a/editor/src/plugins/tilemap/autotile.rs b/editor/src/plugins/tilemap/autotile.rs index 118ae6fc1..36a84e784 100644 --- a/editor/src/plugins/tilemap/autotile.rs +++ b/editor/src/plugins/tilemap/autotile.rs @@ -92,7 +92,8 @@ fn make_failure_log_list( } fn make_list_item(text: &str, ctx: &mut BuildContext) -> Handle { - let content = TextBuilder::new(WidgetBuilder::new().on_column(1)) + let content = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().on_column(1)) .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(text) @@ -496,9 +497,7 @@ impl BrushMacro for AutoTileMacro { tile_set, ctx, ); - let failure_log_label = TextBuilder::new(WidgetBuilder::new()) - .with_text("Failure Log Level") - .build(ctx); + let failure_log_label = TextBuilder::new().with_text("Failure Log Level").build(ctx); self.failure_log_list = make_failure_log_list( WidgetBuilder::new().on_column(1), instance.failure_log_kind, @@ -514,16 +513,16 @@ impl BrushMacro for AutoTileMacro { .add_column(Row::strict(PROPERTY_LABEL_WIDTH)) .add_column(Row::stretch()) .build(ctx); - let pattern_prop_help_text = - TextBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) - .with_wrap(WrapMode::Word) - .with_text(PATTERN_PROP_DESC) - .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) - .build(ctx); + let pattern_prop_help_text = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) + .with_wrap(WrapMode::Word) + .with_text(PATTERN_PROP_DESC) + .build(ctx); + let freq_prop_help_text = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_margin(Thickness::uniform(5.0))) + .with_wrap(WrapMode::Word) + .with_text(FREQUENCY_PROP_DESC) + .build(ctx); let handle = StackPanelBuilder::new( WidgetBuilder::new() .with_margin(Thickness::uniform(5.0)) @@ -576,7 +575,8 @@ impl BrushMacro for AutoTileMacro { let adjacent_field = GridBuilder::new( WidgetBuilder::new() .with_child( - TextBuilder::new(WidgetBuilder::new().on_column(1)) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().on_column(1)) .with_text("Adjacent") .build(ctx), ) @@ -589,7 +589,8 @@ impl BrushMacro for AutoTileMacro { let diagonal_field = GridBuilder::new( WidgetBuilder::new() .with_child( - TextBuilder::new(WidgetBuilder::new().on_column(1)) + TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().on_column(1)) .with_text("Diagonal") .build(ctx), ) diff --git a/editor/src/plugins/tilemap/brush_macro.rs b/editor/src/plugins/tilemap/brush_macro.rs index 4e0630411..17dc310a2 100644 --- a/editor/src/plugins/tilemap/brush_macro.rs +++ b/editor/src/plugins/tilemap/brush_macro.rs @@ -706,9 +706,7 @@ impl MacroPropertyValueField { ctx: &mut BuildContext, ) -> Self { use TileSetPropertyValueElement as Element; - let label = TextBuilder::new(WidgetBuilder::new()) - .with_text(label) - .build(ctx); + let label = TextBuilder::new().with_text(label).build(ctx); let wb = WidgetBuilder::new().on_column(1); let textbox = match &value { Element::I32(v) => NumericUpDownBuilder::::new(wb) @@ -881,11 +879,7 @@ impl MacroPropertyValueField { fn make_item(text: &str, ctx: &mut BuildContext) -> Handle { DecoratorBuilder::new(BorderBuilder::new( - WidgetBuilder::new().with_child( - TextBuilder::new(WidgetBuilder::new()) - .with_text(text) - .build(ctx), - ), + WidgetBuilder::new().with_child(TextBuilder::new().with_text(text).build(ctx)), )) .build(ctx) .to_base() @@ -946,9 +940,7 @@ impl MacroPropertyField { tile_set: Option<&TileSet>, ctx: &mut BuildContext, ) -> Self { - let label = TextBuilder::new(WidgetBuilder::new()) - .with_text(label) - .build(ctx); + let label = TextBuilder::new().with_text(label).build(ctx); let (index, items) = make_index_and_items(prop_type, value, tile_set, ctx); let list = DropdownListBuilder::new(WidgetBuilder::new().on_column(1)) .with_items(items) diff --git a/editor/src/plugins/tilemap/collider_editor.rs b/editor/src/plugins/tilemap/collider_editor.rs index 7f6dab0f3..0f59c3b31 100644 --- a/editor/src/plugins/tilemap/collider_editor.rs +++ b/editor/src/plugins/tilemap/collider_editor.rs @@ -105,7 +105,7 @@ pub struct TileColliderEditor { } pub fn make_list_option(ctx: &mut BuildContext, name: &str) -> Handle { - let text = TextBuilder::new(WidgetBuilder::new()) + let text = TextBuilder::new() .with_vertical_text_alignment(VerticalAlignment::Center) .with_horizontal_text_alignment(HorizontalAlignment::Left) .with_text(name) @@ -140,7 +140,8 @@ impl TileColliderEditor { .build(ctx); let draw_button = make_draw_button(Some(0), ctx); let show_button = make_show_button(Some(1), ctx); - let name_field = TextBuilder::new(WidgetBuilder::new().on_column(3)) + let name_field = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().on_column(3)) .with_text(collider_layer.name.clone()) .build(ctx); let custom_field = @@ -149,7 +150,8 @@ impl TileColliderEditor { .with_wrap(WrapMode::Word) .with_text_commit_mode(TextCommitMode::Changed) .build(ctx); - let error_field = TextBuilder::new(WidgetBuilder::new().with_visibility(false)) + let error_field = TextBuilder::new() + .with_widget_builder(WidgetBuilder::new().with_visibility(false)) .with_wrap(WrapMode::Word) .with_horizontal_text_alignment(HorizontalAlignment::Center) .build(ctx); diff --git a/editor/src/plugins/tilemap/colliders_tab.rs b/editor/src/plugins/tilemap/colliders_tab.rs index a963c4980..68ffcf495 100644 --- a/editor/src/plugins/tilemap/colliders_tab.rs +++ b/editor/src/plugins/tilemap/colliders_tab.rs @@ -112,15 +112,16 @@ pub fn make_list_item(ctx: &mut BuildContext, collider: &TileSetColliderLayer) - .build(ctx), ) .with_child( - TextBuilder::new( - WidgetBuilder::new() - .with_margin(Thickness::left(5.0)) - .on_column(1), - ) - .with_vertical_text_alignment(VerticalAlignment::Center) - .with_horizontal_text_alignment(HorizontalAlignment::Left) - .with_text(collider.name.clone()) - .build(ctx), + TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_margin(Thickness::left(5.0)) + .on_column(1), + ) + .with_vertical_text_alignment(VerticalAlignment::Center) + .with_horizontal_text_alignment(HorizontalAlignment::Left) + .with_text(collider.name.clone()) + .build(ctx), ), ) .add_row(Row::auto()) @@ -172,13 +173,14 @@ impl CollidersTab { .add_column(Column::stretch()) .add_column(Column::stretch()) .build(ctx); - let left_label = TextBuilder::new( - WidgetBuilder::new() - .with_horizontal_alignment(HorizontalAlignment::Center) - .with_margin(Thickness::uniform(2.0)), - ) - .with_text("Colliders:") - .build(ctx); + let left_label = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_horizontal_alignment(HorizontalAlignment::Center) + .with_margin(Thickness::uniform(2.0)), + ) + .with_text("Colliders:") + .build(ctx); let left_side = GridBuilder::new( WidgetBuilder::new() .with_margin(Thickness::uniform(2.0)) @@ -191,13 +193,14 @@ impl CollidersTab { .add_row(Row::strict(30.0)) .add_column(Column::stretch()) .build(ctx); - let name_text = TextBuilder::new( - WidgetBuilder::new() - .with_vertical_alignment(VerticalAlignment::Center) - .with_margin(Thickness::right(4.0)), - ) - .with_text("Name:") - .build(ctx); + let name_text = TextBuilder::new() + .with_widget_builder( + WidgetBuilder::new() + .with_vertical_alignment(VerticalAlignment::Center) + .with_margin(Thickness::right(4.0)), + ) + .with_text("Name:") + .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) diff --git a/editor/src/plugins/tilemap/handle_field.rs b/editor/src/plugins/tilemap/handle_field.rs index 2f833ec72..9b59a9969 100644 --- a/editor/src/plugins/tilemap/handle_field.rs +++ b/editor/src/plugins/tilemap/handle_field.rs @@ -75,9 +75,7 @@ fn value_to_string(value: Option) -> String { } fn make_label(name: &str, ctx: &mut BuildContext) -> Handle { - TextBuilder::new(WidgetBuilder::new()) - .with_text(name) - .build(ctx) + TextBuilder::new().with_text(name).build(ctx) } impl Control for TileHandleField { diff --git a/editor/src/plugins/tilemap/macro_inspector.rs b/editor/src/plugins/tilemap/macro_inspector.rs index c07bdc4cb..f6810eeed 100644 --- a/editor/src/plugins/tilemap/macro_inspector.rs +++ b/editor/src/plugins/tilemap/macro_inspector.rs @@ -127,12 +127,13 @@ fn make_remove_button(ctx: &mut BuildContext) -> Handle