diff options
| author | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
|---|---|---|
| committer | Andrew Lee <alee14498@protonmail.com> | 2020-04-19 17:19:32 -0400 |
| commit | c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78 (patch) | |
| tree | ee4d51c7c1d633e11f46453ef1edd3c77c4ef9f7 /Library/PackageCache/com.unity.timeline@1.2.13/Editor/Attributes/ShortcutAttribute.cs | |
| download | Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.gz Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.tar.bz2 Project-Sandbox-c55fba8ab2a1c9d3df65eda4a5a1e957f4aa1f78.zip | |
Inital commit
Diffstat (limited to 'Library/PackageCache/com.unity.timeline@1.2.13/Editor/Attributes/ShortcutAttribute.cs')
| -rw-r--r-- | Library/PackageCache/com.unity.timeline@1.2.13/Editor/Attributes/ShortcutAttribute.cs | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Attributes/ShortcutAttribute.cs b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Attributes/ShortcutAttribute.cs new file mode 100644 index 0000000..756a092 --- /dev/null +++ b/Library/PackageCache/com.unity.timeline@1.2.13/Editor/Attributes/ShortcutAttribute.cs @@ -0,0 +1,71 @@ +using System; +using System.Linq; +using UnityEditor.ShortcutManagement; +using UnityEngine; + +namespace UnityEditor.Timeline +{ + [AttributeUsage(AttributeTargets.Class, Inherited = false)] + class ShortcutAttribute : Attribute + { + readonly string m_Identifier; + readonly string m_EventCommandName; + readonly string m_MenuShortcut; + + public ShortcutAttribute(string identifier) + { + m_Identifier = identifier; + m_EventCommandName = identifier; + } + + public ShortcutAttribute(string identifier, string commandName) + { + m_Identifier = identifier; + m_EventCommandName = commandName; + } + + public ShortcutAttribute(KeyCode key, ShortcutModifiers modifiers = ShortcutModifiers.None) + { + m_MenuShortcut = new KeyCombination(key, modifiers).ToMenuShortcutString(); + } + + public string GetMenuShortcut() + { + if (m_MenuShortcut != null) + return m_MenuShortcut; + + //find the mapped shortcut in the shortcut manager + var shortcut = ShortcutIntegration.instance.directory.FindShortcutEntry(m_Identifier); + if (shortcut != null && shortcut.combinations.Any()) + { + return KeyCombination.SequenceToMenuString(shortcut.combinations); + } + + return string.Empty; + } + + public bool MatchesEvent(Event evt) + { + if (evt.type != EventType.ExecuteCommand) + return false; + return evt.commandName == m_EventCommandName; + } + } + + [AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = false)] + class ShortcutPlatformOverrideAttribute : ShortcutAttribute + { + RuntimePlatform platform { get; } + + public ShortcutPlatformOverrideAttribute(RuntimePlatform platform, KeyCode key, ShortcutModifiers modifiers = ShortcutModifiers.None) + : base(key, modifiers) + { + this.platform = platform; + } + + public bool MatchesCurrentPlatform() + { + return Application.platform == platform; + } + } +} |
