A game about forced loneliness, made by TACStudios
at master 76 lines 3.2 kB view raw
1using UnityEngine.UIElements; 2using UnityEditor.ShortcutManagement; 3 4namespace UnityEditor.U2D.Animation 5{ 6 internal static class ShortcutIds 7 { 8 public const string toggleToolText = "2D/Animation/Toggle Tool Text"; 9 public const string restoreBindPose = "2D/Animation/Restore Bind Pose"; 10 public const string toggleCharacterMode = "2D/Animation/Toggle Character Mode"; 11 public const string previewPose = "2D/Animation/Preview Pose"; 12 public const string editBone = "2D/Animation/Edit Bone"; 13 public const string createBone = "2D/Animation/Create Bone"; 14 public const string splitBone = "2D/Animation/Split Bone"; 15 public const string autoGeometry = "2D/Animation/Auto Geometry"; 16 public const string editGeometry = "2D/Animation/Edit Geometry"; 17 public const string createVertex = "2D/Animation/Create Vertex"; 18 public const string createEdge = "2D/Animation/Create Edge"; 19 public const string splitEdge = "2D/Animation/Split Edge"; 20 public const string autoWeights = "2D/Animation/Auto Weights"; 21 public const string weightSlider = "2D/Animation/Weight Slider"; 22 public const string weightBrush = "2D/Animation/Weight Brush"; 23 public const string boneInfluence = "2D/Animation/Bone Influence"; 24 public const string spriteInfluence = "2D/Animation/Sprite Influence"; 25 public const string pastePanelWeights = "2D/Animation/Paste Panel Weights"; 26 public const string visibilityPanel = "2D/Animation/Visibility Panel"; 27 public const string characterPivot = "2D/Animation/Character Pivot"; 28 } 29 30 internal class ShortcutUtility 31 { 32 public System.Action OnShortcutChanged; 33 34 private string[] m_ShortcutIds; 35 36 public ShortcutUtility(params string[] shortcutIds) 37 { 38 m_ShortcutIds = shortcutIds; 39 ShortcutManager.instance.shortcutBindingChanged += OnBindingChanged; 40 ShortcutManager.instance.activeProfileChanged += OnProfileChanged; 41 } 42 43 ~ShortcutUtility() 44 { 45 ShortcutManager.instance.shortcutBindingChanged -= OnBindingChanged; 46 ShortcutManager.instance.activeProfileChanged -= OnProfileChanged; 47 } 48 49 private void OnBindingChanged(ShortcutBindingChangedEventArgs args) 50 { 51 foreach (var id in m_ShortcutIds) 52 { 53 if (args.shortcutId == id) 54 { 55 OnShortcutChanged?.Invoke(); 56 break; 57 } 58 } 59 } 60 61 private void OnProfileChanged(ActiveProfileChangedEventArgs args) 62 { 63 OnShortcutChanged?.Invoke(); 64 } 65 66 public void AddShortcutToButtonTooltip(VisualElement rootElement, string buttonName, string shortcutBindingId) 67 { 68 var button = rootElement.Q<Button>(buttonName); 69 var binding = ShortcutManager.instance.GetShortcutBinding(shortcutBindingId); 70 var bindingString = binding.ToString(); 71 72 if (!string.IsNullOrEmpty(bindingString)) 73 button.tooltip += $" ({bindingString})"; 74 } 75 } 76}