using UnityEditor; using UnityEngine.UIElements; namespace Unity.PlasticSCM.Editor.UI.UIElements { internal static class CursorExtensions { internal static void SetMouseCursor(this VisualElement visualElement, MouseCursor mouseCursor) { var cursor = new Cursor(); var prop = typeof(Cursor).GetProperty("defaultCursorId", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic); if (prop != null) { object boxed = cursor; prop.SetValue(boxed, (int)mouseCursor); cursor = (Cursor)boxed; } visualElement.style.cursor = new StyleCursor(cursor); } internal static void SetTextCursor(this TextField textField) { var textInput = textField.Q("unity-text-input"); if (textInput == null) return; textInput.SetMouseCursor(MouseCursor.Text); var textElement = textInput.Q(); if (textElement == null) return; textElement.SetMouseCursor(MouseCursor.Text); } } }