- Fixed some tooltip regressions

- Defined signatures where necessary
This commit is contained in:
Nils Hausfeld
2024-06-16 13:37:03 +02:00
parent 62778fc1e9
commit 4abe8587f3
5 changed files with 32 additions and 9 deletions

View File

@@ -3,6 +3,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text;
using FlaxEditor.Scripting; using FlaxEditor.Scripting;
using FlaxEditor.Surface.Elements; using FlaxEditor.Surface.Elements;
using FlaxEditor.Utilities; using FlaxEditor.Utilities;
@@ -62,7 +63,7 @@ namespace FlaxEditor.Surface.ContextMenu
Group = group; Group = group;
_groupArchetype = groupArchetype; _groupArchetype = groupArchetype;
_archetype = archetype; _archetype = archetype;
TooltipText = $"{_archetype.Signature}\n{_archetype.Description}"; TooltipText = GetTooltip();
} }
/// <summary> /// <summary>
@@ -323,6 +324,15 @@ namespace FlaxEditor.Surface.ContextMenu
Group.ContextMenu.SetDescriptionPanelArchetype(_archetype); Group.ContextMenu.SetDescriptionPanelArchetype(_archetype);
} }
private string GetTooltip()
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(_archetype.Signature))
sb.Append(_archetype.Signature + "\n");
sb.Append(_archetype.Description);
return sb.ToString();
}
/// <inheritdoc /> /// <inheritdoc />
public override bool OnMouseDown(Float2 location, MouseButton button) public override bool OnMouseDown(Float2 location, MouseButton button)
{ {

View File

@@ -2,6 +2,7 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text;
using FlaxEditor.Scripting; using FlaxEditor.Scripting;
using FlaxEditor.Surface.Elements; using FlaxEditor.Surface.Elements;
using FlaxEditor.Surface.Undo; using FlaxEditor.Surface.Undo;
@@ -124,7 +125,7 @@ namespace FlaxEditor.Surface
Archetype = nodeArch; Archetype = nodeArch;
GroupArchetype = groupArch; GroupArchetype = groupArch;
AutoFocus = false; AutoFocus = false;
TooltipText = TooltipText = $"{nodeArch.Signature}\n{nodeArch.Description}"; TooltipText = GetTooltip();
CullChildren = false; CullChildren = false;
BackgroundColor = Style.Current.BackgroundNormal; BackgroundColor = Style.Current.BackgroundNormal;
@@ -851,6 +852,15 @@ namespace FlaxEditor.Surface
} }
} }
private string GetTooltip()
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(Archetype.Signature))
sb.Append(Archetype.Signature + "\n");
sb.Append(Archetype.Description);
return sb.ToString();
}
/// <inheritdoc /> /// <inheritdoc />
protected override bool ShowTooltip => base.ShowTooltip && _headerRect.Contains(ref _mousePosition) && !Surface.IsLeftMouseButtonDown && !Surface.IsRightMouseButtonDown && !Surface.IsPrimaryMenuOpened; protected override bool ShowTooltip => base.ShowTooltip && _headerRect.Contains(ref _mousePosition) && !Surface.IsLeftMouseButtonDown && !Surface.IsRightMouseButtonDown && !Surface.IsPrimaryMenuOpened;

View File

@@ -447,8 +447,7 @@ namespace FlaxEditor.Surface
var valueType = member.ValueType; var valueType = member.ValueType;
// Getter/setter method of the property - we can return early here // Getter/setter method of the property - we can return early here
bool isGetterOrSetter = name.StartsWith("get_") || name.StartsWith("set_"); if (member.IsMethod && (name.StartsWith("get_") || name.StartsWith("set_")))
if (member.IsMethod && isGetterOrSetter)
{ {
var flags = member.IsStatic ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly : BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; var flags = member.IsStatic ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly : BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly;
var property = declaringType.GetMembers(name.Substring(4), MemberTypes.Property, flags); var property = declaringType.GetMembers(name.Substring(4), MemberTypes.Property, flags);
@@ -470,7 +469,7 @@ namespace FlaxEditor.Surface
sb.Append(name); sb.Append(name);
// Is a method and not a property // Is a method and not a property
if (member.IsMethod && !isGetterOrSetter) if (member.IsMethod)
{ {
sb.Append('('); sb.Append('(');
var parameters = member.GetParameters(); var parameters = member.GetParameters();
@@ -504,8 +503,7 @@ namespace FlaxEditor.Surface
var declaringType = member.DeclaringType; var declaringType = member.DeclaringType;
// Getter/setter method of the property - we can return early here // Getter/setter method of the property - we can return early here
bool isGetterOrSetter = name.StartsWith("get_") || name.StartsWith("set_"); if (member.IsMethod && (name.StartsWith("get_") || name.StartsWith("set_")))
if (member.IsMethod && isGetterOrSetter)
{ {
var flags = member.IsStatic ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly : BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly; var flags = member.IsStatic ? BindingFlags.Public | BindingFlags.Static | BindingFlags.DeclaredOnly : BindingFlags.Public | BindingFlags.Instance | BindingFlags.DeclaredOnly;
var property = declaringType.GetMembers(name.Substring(4), MemberTypes.Property, flags); var property = declaringType.GetMembers(name.Substring(4), MemberTypes.Property, flags);
@@ -524,7 +522,7 @@ namespace FlaxEditor.Surface
var sb = new StringBuilder(signature); var sb = new StringBuilder(signature);
// Tooltip // Tooltip
var tooltip = Editor.Instance.CodeDocs.GetTooltip(member); var tooltip = GetVisualScriptMemberShortDescription(member);
if (!string.IsNullOrEmpty(tooltip)) if (!string.IsNullOrEmpty(tooltip))
sb.Append("\n").Append(tooltip); sb.Append("\n").Append(tooltip);

View File

@@ -51,6 +51,7 @@ namespace FlaxEditor.Surface
{ {
TypeID = originalNodeId, TypeID = originalNodeId,
Title = "Missing Node :(", Title = "Missing Node :(",
Signature = ":(",
Description = ":(", Description = ":(",
Flags = NodeFlags.AllGraphs, Flags = NodeFlags.AllGraphs,
Size = new Float2(200, 70), Size = new Float2(200, 70),

View File

@@ -238,7 +238,8 @@ namespace FlaxEditor.Surface
var node = (NodeArchetype)Archetypes.Function.Nodes[2].Clone(); var node = (NodeArchetype)Archetypes.Function.Nodes[2].Clone();
node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Flags &= ~NodeFlags.NoSpawnViaGUI;
node.Description = Editor.Instance.CodeDocs.GetTooltip(member); node.Signature = SurfaceUtils.GetVisualScriptMemberInfoSignature(member);
node.Description = SurfaceUtils.GetVisualScriptMemberShortDescription(member);
node.DefaultValues[0] = name; node.DefaultValues[0] = name;
node.DefaultValues[1] = parameters.Length; node.DefaultValues[1] = parameters.Length;
node.Title = "Override " + name; node.Title = "Override " + name;
@@ -280,6 +281,7 @@ namespace FlaxEditor.Surface
node.DefaultValues[0] = Activator.CreateInstance(scriptType.Type); node.DefaultValues[0] = Activator.CreateInstance(scriptType.Type);
node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Flags &= ~NodeFlags.NoSpawnViaGUI;
node.Title = scriptTypeName; node.Title = scriptTypeName;
node.Signature = scriptTypeName;
node.Description = Editor.Instance.CodeDocs.GetTooltip(scriptType); node.Description = Editor.Instance.CodeDocs.GetTooltip(scriptType);
// Create group archetype // Create group archetype
@@ -330,6 +332,7 @@ namespace FlaxEditor.Surface
node.DefaultValues[0] = scriptTypeTypeName; node.DefaultValues[0] = scriptTypeTypeName;
node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Flags &= ~NodeFlags.NoSpawnViaGUI;
node.Title = "Pack " + scriptTypeName; node.Title = "Pack " + scriptTypeName;
node.Signature = "Pack " + scriptTypeName;
node.Description = tooltip; node.Description = tooltip;
((IList<NodeArchetype>)group.Archetypes).Add(node); ((IList<NodeArchetype>)group.Archetypes).Add(node);
@@ -338,6 +341,7 @@ namespace FlaxEditor.Surface
node.DefaultValues[0] = scriptTypeTypeName; node.DefaultValues[0] = scriptTypeTypeName;
node.Flags &= ~NodeFlags.NoSpawnViaGUI; node.Flags &= ~NodeFlags.NoSpawnViaGUI;
node.Title = "Unpack " + scriptTypeName; node.Title = "Unpack " + scriptTypeName;
node.Signature = "Unpack " + scriptTypeName;
node.Description = tooltip; node.Description = tooltip;
((IList<NodeArchetype>)group.Archetypes).Add(node); ((IList<NodeArchetype>)group.Archetypes).Add(node);
} }