diff --git a/project-manager/resources/caution.png b/project-manager/resources/caution.png new file mode 100644 index 000000000..f3568c3d0 Binary files /dev/null and b/project-manager/resources/caution.png differ diff --git a/project-manager/src/main.rs b/project-manager/src/main.rs index 8d5b4944b..2ce825692 100644 --- a/project-manager/src/main.rs +++ b/project-manager/src/main.rs @@ -58,7 +58,7 @@ fn main() { graphics_context_params: GraphicsContextParams { window_attributes, vsync: true, - msaa_sample_count: None, + msaa_sample_count: Some(2), }, resource_manager: ResourceManager::new(task_pool.clone()), serialization_context, @@ -88,6 +88,10 @@ fn main() { engine .initialize_graphics_context(window_target) .expect("Unable to initialize graphics context!"); + engine + .graphics_context + .as_initialized_mut() + .set_window_icon_from_memory(include_bytes!("../resources/icon.png")); } Event::Suspended => { engine diff --git a/project-manager/src/manager.rs b/project-manager/src/manager.rs index 0e7189cd2..60801148f 100644 --- a/project-manager/src/manager.rs +++ b/project-manager/src/manager.rs @@ -47,8 +47,7 @@ use fyrox::{ utils::make_simple_tooltip, widget::{WidgetBuilder, WidgetMessage}, window::{WindowBuilder, WindowMessage}, - BuildContext, HorizontalAlignment, Orientation, Thickness, UiNode, UserInterface, - VerticalAlignment, + BuildContext, HorizontalAlignment, Thickness, UiNode, UserInterface, VerticalAlignment, }, }; use fyrox_build_tools::{BuildCommand, BuildProfile}; @@ -227,26 +226,63 @@ impl ProjectManager { settings."; let import_tooltip = "Allows you to import an existing project in the project manager."; - let create = make_button("+ Create", 100.0, 25.0, 0, Some(create_tooltip), ctx); - let import = make_button("Import", 100.0, 25.0, 1, Some(import_tooltip), ctx); + let create = make_button("+ Create", 100.0, 25.0, 0, 0, 0, Some(create_tooltip), ctx); + let import = make_button("Import", 100.0, 25.0, 1, 0, 1, Some(import_tooltip), ctx); let search_bar = SearchBarBuilder::new( WidgetBuilder::new() + .on_column(2) .with_tab_index(Some(2)) .with_margin(Thickness::uniform(1.0)) - .with_height(25.0) - .with_width(200.0), + .with_height(25.0), ) .build(ctx); - let toolbar = StackPanelBuilder::new( + let log = GridBuilder::new( + WidgetBuilder::new() + .with_vertical_alignment(VerticalAlignment::Center) + .on_column(3) + .with_child( + ImageBuilder::new( + WidgetBuilder::new() + .with_margin(Thickness::uniform(1.0)) + .with_width(18.0) + .with_height(18.0) + .on_column(0), + ) + .with_opt_texture(load_image(include_bytes!("../resources/caution.png"))) + .build(ctx), + ) + .with_child( + TextBuilder::new( + WidgetBuilder::new() + .on_column(1) + .with_margin(Thickness::uniform(1.0)) + .with_vertical_alignment(VerticalAlignment::Center) + .with_foreground(Brush::Solid(Color::GOLD).into()), + ) + .with_text("2") + .build(ctx), + ), + ) + .add_column(Column::auto()) + .add_column(Column::auto()) + .add_row(Row::auto()) + .build(ctx); + + let toolbar = GridBuilder::new( WidgetBuilder::new() .with_enabled(is_ready) .on_row(1) .with_child(create) .with_child(import) - .with_child(search_bar), + .with_child(search_bar) + .with_child(log), ) - .with_orientation(Orientation::Horizontal) + .add_column(Column::auto()) + .add_column(Column::auto()) + .add_column(Column::stretch()) + .add_column(Column::auto()) + .add_row(Row::auto()) .build(ctx); let edit_tooltip = "Build the editor and run it."; @@ -254,9 +290,9 @@ impl ProjectManager { let delete_tooltip = "Delete the entire project with all its assets. \ WARNING: This is irreversible operation and permanently deletes your project!"; - let edit = make_button("Edit", 130.0, 25.0, 3, Some(edit_tooltip), ctx); - let run = make_button("Run", 130.0, 25.0, 4, Some(run_tooltip), ctx); - let delete = make_button("Delete", 130.0, 25.0, 5, Some(delete_tooltip), ctx); + let edit = make_button("Edit", 130.0, 25.0, 3, 0, 0, Some(edit_tooltip), ctx); + let run = make_button("Run", 130.0, 25.0, 4, 0, 0, Some(run_tooltip), ctx); + let delete = make_button("Delete", 130.0, 25.0, 5, 0, 0, Some(delete_tooltip), ctx); let hot_reload = CheckBoxBuilder::new( WidgetBuilder::new() .with_margin(Thickness::uniform(1.0)) diff --git a/project-manager/src/project.rs b/project-manager/src/project.rs index 3f48be24a..5e2818f36 100644 --- a/project-manager/src/project.rs +++ b/project-manager/src/project.rs @@ -178,8 +178,8 @@ impl ProjectWizard { .with_selected(1) .build(ctx); - let create = make_button("Create", 100.0, 22.0, 0, None, ctx); - let cancel = make_button("Cancel", 100.0, 22.0, 0, None, ctx); + let create = make_button("Create", 100.0, 22.0, 0, 0, 0, None, ctx); + let cancel = make_button("Cancel", 100.0, 22.0, 0, 0, 0, None, ctx); let buttons = StackPanelBuilder::new( WidgetBuilder::new() .on_row(1) diff --git a/project-manager/src/utils.rs b/project-manager/src/utils.rs index 80496d276..62240be24 100644 --- a/project-manager/src/utils.rs +++ b/project-manager/src/utils.rs @@ -68,15 +68,20 @@ pub fn make_dropdown_list_option(ctx: &mut BuildContext, name: &str) -> Handle, ctx: &mut BuildContext, ) -> Handle { let mut widget_builder = WidgetBuilder::new() + .on_row(row) + .on_column(column) .with_width(width) .with_height(height) .with_tab_index(Some(tab_index))