From 8f18d654ee5a1bab67e4198077c887bdbc70f936 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Sat, 10 Aug 2024 20:46:33 +0200 Subject: [PATCH] Add copy/paste for material instance parameters via context menu on `Parameters` group header --- .../CustomEditors/Dedicated/AnimatedModelEditor.cs | 2 +- Source/Editor/CustomEditors/Editors/GenericEditor.cs | 9 +++++++++ Source/Editor/Surface/SurfaceUtils.cs | 5 +++++ Source/Editor/Windows/Assets/MaterialInstanceWindow.cs | 2 +- 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/Source/Editor/CustomEditors/Dedicated/AnimatedModelEditor.cs b/Source/Editor/CustomEditors/Dedicated/AnimatedModelEditor.cs index 6f1ac91d0..eae7f9024 100644 --- a/Source/Editor/CustomEditors/Dedicated/AnimatedModelEditor.cs +++ b/Source/Editor/CustomEditors/Dedicated/AnimatedModelEditor.cs @@ -20,7 +20,7 @@ namespace FlaxEditor.CustomEditors.Dedicated // Show instanced parameters to view/edit at runtime if (Values.IsSingleObject && Editor.Instance.StateMachine.IsPlayMode) { - var group = layout.Group("Parameters"); + var group = SurfaceUtils.InitGraphParametersGroup(layout); group.Panel.Open(false); group.Panel.IndexInParent -= 2; diff --git a/Source/Editor/CustomEditors/Editors/GenericEditor.cs b/Source/Editor/CustomEditors/Editors/GenericEditor.cs index f624600b4..4eb523b74 100644 --- a/Source/Editor/CustomEditors/Editors/GenericEditor.cs +++ b/Source/Editor/CustomEditors/Editors/GenericEditor.cs @@ -533,6 +533,15 @@ namespace FlaxEditor.CustomEditors.Editors _groupsPool.Add(groups); } + internal static GroupElement OnGroup(LayoutElementsContainer layout, string name) + { + // Add new group + var group = layout.Group(name); + group.Panel.Tag = group; + group.Panel.MouseButtonRightClicked += OnGroupPanelMouseButtonRightClicked; + return group; + } + internal static LayoutElementsContainer OnGroup(LayoutElementsContainer layout, EditorDisplayAttribute display) { if (display?.Group != null) diff --git a/Source/Editor/Surface/SurfaceUtils.cs b/Source/Editor/Surface/SurfaceUtils.cs index ad77aa510..e323475a8 100644 --- a/Source/Editor/Surface/SurfaceUtils.cs +++ b/Source/Editor/Surface/SurfaceUtils.cs @@ -100,6 +100,11 @@ namespace FlaxEditor.Surface } } + internal static GroupElement InitGraphParametersGroup(LayoutElementsContainer layout) + { + return CustomEditors.Editors.GenericEditor.OnGroup(layout, "Parameters"); + } + internal static GraphParameterData[] InitGraphParameters(IEnumerable parameters, Material material) { int count = parameters.Count(); diff --git a/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs b/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs index 28a4273b3..480b39ff6 100644 --- a/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs +++ b/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs @@ -261,7 +261,7 @@ namespace FlaxEditor.Windows.Assets removeButton.Clicked += OnOverrideAll; } - var parametersGroup = layout.Group("Parameters"); + var parametersGroup = SurfaceUtils.InitGraphParametersGroup(layout); var baseMaterial = materialInstance.BaseMaterial; var material = baseMaterial; if (material)