public static void Custom(Rect r, Action <Rect> gui, float width, float height) { if (Event.current.rawType == EventType.Repaint) { EditorGUIUtility.AddCursorRect(r, MouseCursor.Zoom); } else if (Event.current.rawType == EventType.MouseMove) { if (r.Contains(Event.current.mousePosition) == true) { if (TooltipHelper.hashCode != gui.GetHashCode()) { Rect tooltipR = r; tooltipR.x += TooltipHelper.XOffset; tooltipR.y += TooltipHelper.YOffset; tooltipR.width = width; tooltipR.height = height; TooltipHelper.Set(r, tooltipR, gui); if (EditorWindow.mouseOverWindow != null) { EditorWindow.mouseOverWindow.Repaint(); } } } else if (TooltipHelper.hashCode != 0 && TooltipHelper.hashCode == gui.GetHashCode()) { TooltipHelper.hashCode = 0; if (EditorWindow.mouseOverWindow != null) { EditorWindow.mouseOverWindow.Repaint(); } } } }
private static void InternalLabel(Rect r, string tooltip, DrawType drawType, MessageType messageType) { if (Event.current.rawType == EventType.Repaint) { EditorGUIUtility.AddCursorRect(r, MouseCursor.Link); Color shapeColor; if (messageType == MessageType.Warning) { shapeColor = Color.yellow; } else if (messageType == MessageType.Error) { shapeColor = Color.red; } else { shapeColor = Color.cyan; } TooltipHelper.DrawWitness(r, shapeColor); } else if (Event.current.rawType == EventType.MouseMove) { if (r.Contains(Event.current.mousePosition) == true) { if (TooltipHelper.hashCode != tooltip.GetHashCode()) { Rect tooltipR = r; tooltipR.x += TooltipHelper.XOffset; tooltipR.y += TooltipHelper.YOffset; TooltipHelper.messageType = messageType; TooltipHelper.Set(r, tooltipR, tooltip, drawType); if (EditorWindow.mouseOverWindow != null) { EditorWindow.mouseOverWindow.Repaint(); } } } else if (TooltipHelper.hashCode != 0 && TooltipHelper.hashCode == tooltip.GetHashCode()) { TooltipHelper.hashCode = 0; if (EditorWindow.mouseOverWindow != null) { EditorWindow.mouseOverWindow.Repaint(); } } } }