1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- 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;
- }
- }
- }
|