diff --git a/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs b/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs
index d312f64b2..46c4066f2 100644
--- a/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs
+++ b/Source/Editor/CustomEditors/Dedicated/ActorEditor.cs
@@ -115,7 +115,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
{
if (actor != null)
group.Panel.TooltipText = Surface.SurfaceUtils.GetVisualScriptTypeDescription(TypeUtils.GetObjectType(actor));
- var settingsButton = group.AddSettingsButton();
+ var settingsButton = group.AddHeaderButton("Settings.", 0.0f, FlaxEngine.GUI.Style.Current.Settings);
settingsButton.Clicked += OnSettingsButtonClicked;
break;
}
diff --git a/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs b/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs
index 954599347..ef7a137f6 100644
--- a/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs
+++ b/Source/Editor/CustomEditors/Dedicated/ScriptsEditor.cs
@@ -640,7 +640,7 @@ namespace FlaxEditor.CustomEditors.Dedicated
var group = layout.Group("Missing script");
// Add settings button to the group
- var settingsButton = group.AddSettingsButton();
+ var settingsButton = group.AddHeaderButton("Settings.", 0.0f, FlaxEngine.GUI.Style.Current.Settings);
settingsButton.Tag = index;
settingsButton.Clicked += MissingSettingsButtonOnClicked;
}
@@ -739,6 +739,8 @@ namespace FlaxEditor.CustomEditors.Dedicated
///
public override void Initialize(LayoutElementsContainer layout)
{
+ var _style = FlaxEngine.GUI.Style.Current;
+
// Area for drag&drop scripts
var dragArea = layout.CustomContainer();
dragArea.CustomControl.ScriptsEditor = this;
@@ -905,11 +907,30 @@ namespace FlaxEditor.CustomEditors.Dedicated
};
// Add settings button to the group
- var settingsButton = group.AddSettingsButton();
+ var settingsButton = group.AddHeaderButton("Settings.", 0.0f, _style.Settings);
settingsButton.Tag = script;
settingsButton.Clicked += OnSettingsButtonClicked;
- group.Panel.HeaderTextMargin = new Margin(scriptDrag.Right - 12, 15, 2, 2);
+ // Add script obsolete icon to the group
+ if (scriptType.HasAttribute(typeof(ObsoleteAttribute), false))
+ {
+ ObsoleteAttribute attribute = null;
+ foreach (var e in scriptType.GetAttributes(false))
+ {
+ if (e is not ObsoleteAttribute obsoleteAttribute)
+ continue;
+ attribute = obsoleteAttribute;
+ break;
+ }
+
+ string tooltip = "Script marked as obsolete." +
+ (string.IsNullOrEmpty(attribute.Message) ? "" : $"\n{attribute.Message}") +
+ (string.IsNullOrEmpty(attribute.DiagnosticId) ? "" : $"\n{attribute.DiagnosticId}");
+ var obsoleteButton = group.AddHeaderButton(tooltip, settingsButton.Width + FlaxEditor.Utilities.Constants.UIMargin, Editor.Instance.Icons.Info32);
+ obsoleteButton.Color = Color.Orange;
+ }
+
+ group.Panel.HeaderTextMargin = new Margin(scriptDrag.Right - 12, 35, 2, 2);
group.Object(values, editor);
// Remove drop down arrows and containment lines if no objects in the group
if (group.Children.Count == 0)
diff --git a/Source/Editor/CustomEditors/Elements/Container/GroupElement.cs b/Source/Editor/CustomEditors/Elements/Container/GroupElement.cs
index 64bc9080b..e2db8b69e 100644
--- a/Source/Editor/CustomEditors/Elements/Container/GroupElement.cs
+++ b/Source/Editor/CustomEditors/Elements/Container/GroupElement.cs
@@ -40,21 +40,21 @@ namespace FlaxEditor.CustomEditors.Elements
/// Adds utility settings button to the group header.
///
/// The created control.
- public Image AddSettingsButton()
+ public Image AddHeaderButton(string tooltipText, float xOffset, SpriteHandle sprite)
{
var style = Style.Current;
var settingsButtonSize = Panel.HeaderHeight;
return new Image
{
- TooltipText = "Settings",
+ TooltipText = tooltipText,
AutoFocus = true,
AnchorPreset = AnchorPresets.TopRight,
Parent = Panel,
- Bounds = new Rectangle(Panel.Width - settingsButtonSize, 0, settingsButtonSize, settingsButtonSize),
+ Bounds = new Rectangle(Panel.Width - settingsButtonSize - xOffset, 0, settingsButtonSize, settingsButtonSize),
IsScrollable = false,
Color = style.ForegroundGrey,
Margin = new Margin(1),
- Brush = new SpriteBrush(style.Settings),
+ Brush = new SpriteBrush(sprite),
};
}
}
diff --git a/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs b/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs
index cb39930f9..b6b67e191 100644
--- a/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs
+++ b/Source/Editor/Windows/Assets/MaterialInstanceWindow.cs
@@ -249,7 +249,7 @@ namespace FlaxEditor.Windows.Assets
return;
var parametersGroup = SurfaceUtils.InitGraphParametersGroup(layout);
- var settingButton = parametersGroup.AddSettingsButton();
+ var settingButton = parametersGroup.AddHeaderButton("Settings.", 0.0f, FlaxEngine.GUI.Style.Current.Settings);
settingButton.Clicked += (image, button) => OnSettingsButtonClicked(image, button, proxy.Window);
var baseMaterial = materialInstance.BaseMaterial;
var material = baseMaterial;
diff --git a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
index 392cc896a..073cf7614 100644
--- a/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
+++ b/Source/Editor/Windows/Assets/SkinnedModelWindow.cs
@@ -284,7 +284,7 @@ namespace FlaxEditor.Windows.Assets
var setupGroup = layout.Group(Path.GetFileNameWithoutExtension(sourceAsset.Path));
setupGroup.Panel.Tag = sourceAsset;
setupGroup.Panel.MouseButtonRightClicked += OnPanelHeaderRightClicked;
- var settingsButton = setupGroup.AddSettingsButton();
+ var settingsButton = setupGroup.AddHeaderButton("Settings.", 0.0f, FlaxEngine.GUI.Style.Current.Settings);
settingsButton.Tag = sourceAsset;
settingsButton.Clicked += OnShowSetupSettings;