- 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.Collections.Generic;
using System.Linq;
using System.Text;
using FlaxEditor.Scripting;
using FlaxEditor.Surface.Elements;
using FlaxEditor.Utilities;
@@ -62,7 +63,7 @@ namespace FlaxEditor.Surface.ContextMenu
Group = group;
_groupArchetype = groupArchetype;
_archetype = archetype;
TooltipText = $"{_archetype.Signature}\n{_archetype.Description}";
TooltipText = GetTooltip();
}
/// <summary>
@@ -323,6 +324,15 @@ namespace FlaxEditor.Surface.ContextMenu
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 />
public override bool OnMouseDown(Float2 location, MouseButton button)
{

View File

@@ -2,6 +2,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using FlaxEditor.Scripting;
using FlaxEditor.Surface.Elements;
using FlaxEditor.Surface.Undo;
@@ -124,7 +125,7 @@ namespace FlaxEditor.Surface
Archetype = nodeArch;
GroupArchetype = groupArch;
AutoFocus = false;
TooltipText = TooltipText = $"{nodeArch.Signature}\n{nodeArch.Description}";
TooltipText = GetTooltip();
CullChildren = false;
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 />
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;
// Getter/setter method of the property - we can return early here
bool isGetterOrSetter = name.StartsWith("get_") || name.StartsWith("set_");
if (member.IsMethod && isGetterOrSetter)
if (member.IsMethod && (name.StartsWith("get_") || name.StartsWith("set_")))
{
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);
@@ -470,7 +469,7 @@ namespace FlaxEditor.Surface
sb.Append(name);
// Is a method and not a property
if (member.IsMethod && !isGetterOrSetter)
if (member.IsMethod)
{
sb.Append('(');
var parameters = member.GetParameters();
@@ -504,8 +503,7 @@ namespace FlaxEditor.Surface
var declaringType = member.DeclaringType;
// Getter/setter method of the property - we can return early here
bool isGetterOrSetter = name.StartsWith("get_") || name.StartsWith("set_");
if (member.IsMethod && isGetterOrSetter)
if (member.IsMethod && (name.StartsWith("get_") || name.StartsWith("set_")))
{
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);
@@ -524,7 +522,7 @@ namespace FlaxEditor.Surface
var sb = new StringBuilder(signature);
// Tooltip
var tooltip = Editor.Instance.CodeDocs.GetTooltip(member);
var tooltip = GetVisualScriptMemberShortDescription(member);
if (!string.IsNullOrEmpty(tooltip))
sb.Append("\n").Append(tooltip);

View File

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

View File

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