diff --git a/Scripts/Editor/NodeEditorGUI.cs b/Scripts/Editor/NodeEditorGUI.cs index a14bf7d..a88e1b0 100755 --- a/Scripts/Editor/NodeEditorGUI.cs +++ b/Scripts/Editor/NodeEditorGUI.cs @@ -556,7 +556,9 @@ namespace XNodeEditor { } private void DrawTooltip() { - if (hoveredPort != null && NodeEditorPreferences.GetSettings().portTooltips && graphEditor != null) { + if (!NodeEditorPreferences.GetSettings().portTooltips && graphEditor != null) + return; + if (hoveredPort != null) { string tooltip = graphEditor.GetPortTooltip(hoveredPort); if (string.IsNullOrEmpty(tooltip)) return; GUIContent content = new GUIContent(tooltip); @@ -566,6 +568,16 @@ namespace XNodeEditor { EditorGUI.LabelField(rect, content, NodeEditorResources.styles.tooltip); Repaint(); } + else if (hoveredNode != null && IsHoveringNode && IsHoveringTitle(hoveredNode)) { + string tooltip = graphEditor.GetNodeTooltip(hoveredNode); + if (string.IsNullOrEmpty(tooltip)) return; + GUIContent content = new GUIContent(tooltip); + Vector2 size = NodeEditorResources.styles.tooltip.CalcSize(content); + size.x += 8; + Rect rect = new Rect(Event.current.mousePosition - (size), size); + EditorGUI.LabelField(rect, content, NodeEditorResources.styles.tooltip); + Repaint(); + } } } } diff --git a/Scripts/Editor/NodeGraphEditor.cs b/Scripts/Editor/NodeGraphEditor.cs index 01de70e..d2bf45c 100644 --- a/Scripts/Editor/NodeGraphEditor.cs +++ b/Scripts/Editor/NodeGraphEditor.cs @@ -158,6 +158,10 @@ namespace XNodeEditor { return tooltip; } + public virtual string GetNodeTooltip(XNode.Node node) { + return null; + } + /// Deal with objects dropped into the graph through DragAndDrop public virtual void OnDropObjects(UnityEngine.Object[] objects) { if (GetType() != typeof(NodeGraphEditor)) Debug.Log("No OnDropObjects override defined for " + GetType());