Add helper tooltips for Scene Animation actions UI

This commit is contained in:
Wojtek Figat
2021-08-10 13:54:22 +02:00
parent 99b0cf71a8
commit e288104472
8 changed files with 38 additions and 32 deletions

View File

@@ -96,14 +96,7 @@ namespace FlaxEditor.CustomEditors.Editors
// Update tooltip
if (_value is SceneObject sceneObject)
{
var str = sceneObject is Actor actor ? actor.Name : type.Name;
var o = sceneObject.Parent;
while (o)
{
str = o.Name + " -> " + str;
o = o.Parent;
}
TooltipText = str;
TooltipText = Utilities.Utils.GetTooltip(sceneObject);
}
else
{

View File

@@ -76,14 +76,7 @@ namespace FlaxEditor.CustomEditors.Editors
if (_value)
{
_valueName = _value.Name;
TooltipText = _value.TypeName;
var attributes = _value.GetAttributes(false);
var tooltipAttribute = (TooltipAttribute)attributes.FirstOrDefault(x => x is TooltipAttribute);
if (tooltipAttribute != null)
{
TooltipText += "\n" + tooltipAttribute.Text;
}
TooltipText = Surface.SurfaceUtils.GetVisualScriptTypeDescription(_value);
}
else
{

View File

@@ -103,7 +103,7 @@ namespace FlaxEditor.GUI.Timeline.Tracks
{
if (selection.Count == 1 && selection[0] is ActorNode actorNode && actorNode.Actor && IsActorValid(actorNode.Actor))
{
menu.AddButton("Select " + actorNode.Actor, OnClickedSelectActor);
menu.AddButton("Select " + actorNode.Actor, OnClickedSelectActor).TooltipText = Utilities.Utils.GetTooltip(actorNode.Actor);
}
else
{

View File

@@ -7,6 +7,7 @@ using System.Reflection;
using System.Text;
using FlaxEditor.CustomEditors;
using FlaxEditor.GUI.ContextMenu;
using FlaxEditor.Scripting;
using FlaxEngine;
using FlaxEngine.GUI;
@@ -197,8 +198,8 @@ namespace FlaxEditor.GUI.Timeline.Tracks
AddMemberTag tag;
tag.Member = m;
tag.Archetype = EventTrack.GetArchetype();
menu.AddButton(sb.ToString(), OnAddMemberTrack).Tag = tag;
var tooltip = Surface.SurfaceUtils.GetVisualScriptMemberInfoDescription(new ScriptMemberInfo(m));
menu.AddButton(sb.ToString(), OnAddMemberTrack).LinkTooltip(tooltip).Tag = tag;
count++;
}
@@ -295,7 +296,8 @@ namespace FlaxEditor.GUI.Timeline.Tracks
AddMemberTag tag;
tag.Member = m;
tag.Archetype = archetype;
menu.AddButton(name + " " + m.Name, OnAddMemberTrack).Tag = tag;
var tooltip = Surface.SurfaceUtils.GetVisualScriptMemberInfoDescription(new ScriptMemberInfo(m));
menu.AddButton(name + " " + m.Name, OnAddMemberTrack).LinkTooltip(tooltip).Tag = tag;
count++;
}

View File

@@ -122,10 +122,7 @@ namespace FlaxEditor.Surface.Archetypes
{
GetBox(0).CurrentType = type;
Title = (_isUnpacking ? "Unpack " : "Pack ") + type.Name;
var attributes = type.GetAttributes(false);
var tooltipAttribute = (TooltipAttribute)attributes.FirstOrDefault(x => x is TooltipAttribute);
if (tooltipAttribute != null)
TooltipText += "\n" + tooltipAttribute.Text;
TooltipText = SurfaceUtils.GetVisualScriptTypeDescription(type);
}
else
{

View File

@@ -427,6 +427,22 @@ namespace FlaxEditor.Surface
return !TypeUtils.IsDelegate(managedType);
}
internal static string GetVisualScriptTypeDescription(ScriptType type)
{
var sb = new StringBuilder();
if (type.IsStatic)
sb.Append("static ");
else if (type.IsAbstract)
sb.Append("abstract ");
sb.Append(type.TypeName);
var attributes = type.GetAttributes(false);
var tooltipAttribute = (TooltipAttribute)attributes.FirstOrDefault(x => x is TooltipAttribute);
if (tooltipAttribute != null)
sb.Append("\n").Append(tooltipAttribute.Text);
return sb.ToString();
}
internal static string GetVisualScriptMemberInfoDescription(ScriptMemberInfo member)
{
var name = member.Name;

View File

@@ -76,6 +76,18 @@ namespace FlaxEditor.Utilities
return string.Format("{0:0.##} {1}", bytes, MemorySizePostfixes[order]);
}
internal static string GetTooltip(SceneObject obj)
{
var str = obj is Actor actor ? actor.Name : TypeUtils.GetObjectType(obj).Name;
var o = obj.Parent;
while (o)
{
str = o.Name + " -> " + str;
o = o.Parent;
}
return str;
}
/// <summary>
/// The colors for the keyframes used by the curve editor.
/// </summary>

View File

@@ -204,14 +204,7 @@ namespace FlaxEditor.Windows
continue;
var item = _groupSearch.AddChild(CreateActorItem(CustomEditors.CustomEditorsUtil.GetPropertyNameUI(text), actorType));
item.TooltipText = actorType.TypeName;
var attributes = actorType.GetAttributes(false);
var tooltipAttribute = (TooltipAttribute)attributes.FirstOrDefault(x => x is TooltipAttribute);
if (tooltipAttribute != null)
{
item.TooltipText += '\n';
item.TooltipText += tooltipAttribute.Text;
}
item.TooltipText = Surface.SurfaceUtils.GetVisualScriptTypeDescription(actorType);
var highlights = new List<Rectangle>(ranges.Length);
var style = Style.Current;