diff --git a/editor/src/plugins/inspector/editors/dyntype.rs b/editor/src/plugins/inspector/editors/dyntype.rs index 62c344ec1..9111bbcf8 100644 --- a/editor/src/plugins/inspector/editors/dyntype.rs +++ b/editor/src/plugins/inspector/editors/dyntype.rs @@ -282,6 +282,7 @@ impl PropertyEditorDefinition for DynTypePropertyEditorDefinition { ctx.name_column_width, ctx.hide_name_column, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/editor/src/plugins/inspector/editors/script.rs b/editor/src/plugins/inspector/editors/script.rs index 7e42b74e6..f8545f8e8 100644 --- a/editor/src/plugins/inspector/editors/script.rs +++ b/editor/src/plugins/inspector/editors/script.rs @@ -381,6 +381,7 @@ impl PropertyEditorDefinition for ScriptPropertyEditorDefinition { ctx.name_column_width, ctx.hide_name_column, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-core/src/reflect/field.rs b/fyrox-core/src/reflect/field.rs index c8c5eb140..88140a7ea 100644 --- a/fyrox-core/src/reflect/field.rs +++ b/fyrox-core/src/reflect/field.rs @@ -59,11 +59,11 @@ pub struct FieldMetadata<'s> { } impl<'s> FieldMetadata<'s> { - pub fn description(&self) -> String { + pub fn description(&self, type_name: &str) -> String { if self.doc.is_empty() { - self.display_name.to_string() + format!("{} ({type_name})", self.display_name) } else { - format!("{}\n\n{}", self.display_name, self.doc) + format!("{} ({type_name})\n\n{}", self.display_name, self.doc) } } } diff --git a/fyrox-ui/src/inspector/editors/array.rs b/fyrox-ui/src/inspector/editors/array.rs index 3b107902e..4a5c4f0c4 100644 --- a/fyrox-ui/src/inspector/editors/array.rs +++ b/fyrox-ui/src/inspector/editors/array.rs @@ -332,16 +332,8 @@ where ) -> Result { let value = ctx.property_info.cast_value::<[T; N]>()?; - let editor; - let container = make_expander_container( - ctx.layer_index, - ctx.property_info.display_name, - ctx.property_info.doc, - Handle::::NONE, - { - editor = ArrayEditorBuilder::new( - WidgetBuilder::new().with_margin(Thickness::uniform(1.0)), - ) + let editor = + ArrayEditorBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_collection(value.iter()) .with_environment(ctx.environment.clone()) .with_layer_index(ctx.layer_index + 1) @@ -356,11 +348,17 @@ where ctx.base_path.clone(), ctx.has_parent_object, )?; - editor - }, + + let container = make_expander_container( + ctx.layer_index, + ctx.property_info.display_name, + ctx.property_info.doc, + Handle::::NONE, + editor, ctx.name_column_width, false, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-ui/src/inspector/editors/collection.rs b/fyrox-ui/src/inspector/editors/collection.rs index d999831fd..ef4e5c2ac 100644 --- a/fyrox-ui/src/inspector/editors/collection.rs +++ b/fyrox-ui/src/inspector/editors/collection.rs @@ -468,16 +468,8 @@ where .with_image(resources::ADD.clone()) .build_button(ctx.build_context); - let editor; - let container = make_expander_container( - ctx.layer_index, - ctx.property_info.display_name, - ctx.property_info.doc, - add, - { - editor = CollectionEditorBuilder::new( - WidgetBuilder::new().with_margin(Thickness::uniform(1.0)), - ) + let editor = + CollectionEditorBuilder::new(WidgetBuilder::new().with_margin(Thickness::uniform(1.0))) .with_add(add) .with_collection(value.iter()) .with_environment(ctx.environment.clone()) @@ -493,11 +485,17 @@ where ctx.base_path.clone(), ctx.has_parent_object, )?; - editor - }, + + let container = make_expander_container( + ctx.layer_index, + ctx.property_info.display_name, + ctx.property_info.doc, + add, + editor, ctx.name_column_width, ctx.hide_name_column, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-ui/src/inspector/editors/enumeration.rs b/fyrox-ui/src/inspector/editors/enumeration.rs index 9867d5644..ce2479de6 100644 --- a/fyrox-ui/src/inspector/editors/enumeration.rs +++ b/fyrox-ui/src/inspector/editors/enumeration.rs @@ -386,33 +386,32 @@ where .build(ctx.build_context) .to_base(); - let editor; + let editor = EnumPropertyEditorBuilder::new(WidgetBuilder::new()) + .with_variant_selector(variant_selector) + .with_layer_index(ctx.layer_index + 1) + .with_definition_container(ctx.definition_container.clone()) + .with_environment(ctx.environment.clone()) + .with_generate_property_string_values(ctx.generate_property_string_values) + .with_filter(ctx.filter) + .build( + ctx.build_context, + self, + value, + ctx.name_column_width, + ctx.base_path.clone(), + ctx.has_parent_object, + ); + let container = make_expander_container( ctx.layer_index, ctx.property_info.display_name, ctx.property_info.doc, variant_selector, - { - editor = EnumPropertyEditorBuilder::new(WidgetBuilder::new()) - .with_variant_selector(variant_selector) - .with_layer_index(ctx.layer_index + 1) - .with_definition_container(ctx.definition_container.clone()) - .with_environment(ctx.environment.clone()) - .with_generate_property_string_values(ctx.generate_property_string_values) - .with_filter(ctx.filter) - .build( - ctx.build_context, - self, - value, - ctx.name_column_width, - ctx.base_path.clone(), - ctx.has_parent_object, - ); - editor - }, + editor, ctx.name_column_width, ctx.hide_name_column, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-ui/src/inspector/editors/inherit.rs b/fyrox-ui/src/inspector/editors/inherit.rs index e52fa16d0..46b0c924f 100644 --- a/fyrox-ui/src/inspector/editors/inherit.rs +++ b/fyrox-ui/src/inspector/editors/inherit.rs @@ -252,6 +252,7 @@ where ctx.name_column_width, ctx.hide_name_column, Some(Brush::solid(160, 160, 200)), + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-ui/src/inspector/editors/inspectable.rs b/fyrox-ui/src/inspector/editors/inspectable.rs index 4726effee..5b99edd23 100644 --- a/fyrox-ui/src/inspector/editors/inspectable.rs +++ b/fyrox-ui/src/inspector/editors/inspectable.rs @@ -117,6 +117,7 @@ where ctx.name_column_width, ctx.hide_name_column, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-ui/src/inspector/editors/refcell.rs b/fyrox-ui/src/inspector/editors/refcell.rs index cb82b85de..7aa0d928b 100644 --- a/fyrox-ui/src/inspector/editors/refcell.rs +++ b/fyrox-ui/src/inspector/editors/refcell.rs @@ -111,6 +111,7 @@ where ctx.name_column_width, ctx.hide_name_column, None, + value.type_info_ref().type_name, ctx.build_context, ); diff --git a/fyrox-ui/src/inspector/mod.rs b/fyrox-ui/src/inspector/mod.rs index 16f4376ee..309945df4 100644 --- a/fyrox-ui/src/inspector/mod.rs +++ b/fyrox-ui/src/inspector/mod.rs @@ -1062,6 +1062,7 @@ fn make_expander_check_box( property_description: &str, hide_name: bool, text_brush: Option, + type_name: &str, ctx: &mut BuildContext, ) -> Handle { let handle = CheckBoxBuilder::new( @@ -1082,9 +1083,9 @@ fn make_expander_check_box( Handle::NONE } else { let description = if property_description.is_empty() { - property_name.to_string() + format!("{property_name} ({type_name})") } else { - format!("{property_name}\n\n{property_description}") + format!("{property_name} ({type_name})\n\n{property_description}") }; TextBuilder::new( WidgetBuilder::new() @@ -1128,6 +1129,7 @@ pub fn make_expander_container( width: f32, hide_name_column: bool, text_brush: Option, + type_name: &str, ctx: &mut BuildContext, ) -> Handle { ExpanderBuilder::new(WidgetBuilder::new()) @@ -1137,6 +1139,7 @@ pub fn make_expander_container( description, hide_name_column, text_brush, + type_name, ctx, )) .with_expander_column(if hide_name_column { @@ -1180,7 +1183,7 @@ fn make_tooltip(ctx: &mut BuildContext, text: &str) -> Option { } } -pub fn make_simple_property_container( +fn make_simple_property_container( title: Handle, editor: Handle>, description: &str, @@ -1315,7 +1318,7 @@ impl InspectorContext { continue; } - let description = info.description(); + let description = info.description(info.value.type_info_ref().type_name); if let Some(definition) = definition_container .definitions()