예제 #1
0
        public static string GetShortcut(this IAction action)
        {
            if (action == null)
            {
                throw new ArgumentNullException(nameof(action));
            }

            var shortcutAttribute = GetShortcutAttributeForAction(action);
            var shortCut          = shortcutAttribute == null ? string.Empty : shortcutAttribute.GetMenuShortcut();

            if (string.IsNullOrWhiteSpace(shortCut))
            {
                //Check if there is a static method with attribute
                var customShortcutMethod = action.GetType().GetMethods().FirstOrDefault(m => m.GetCustomAttribute <TimelineShortcutAttribute>(true) != null);
                if (customShortcutMethod != null)
                {
                    var shortcutId = customShortcutMethod.GetCustomAttribute <TimelineShortcutAttribute>(true).identifier;
                    var shortcut   = ShortcutIntegration.instance.directory.FindShortcutEntry(shortcutId);
                    if (shortcut != null && shortcut.combinations.Any())
                    {
                        shortCut = KeyCombination.SequenceToMenuString(shortcut.combinations);
                    }
                }
            }

            return(shortCut);
        }
예제 #2
0
        protected void AddUIElementsDebuggerToMenu(GenericMenu menu)
        {
            var itemContent = UIElementsDebugger.WindowName;
            var shortcut    = ShortcutIntegration.instance.directory.FindShortcutEntry(UIElementsDebugger.k_WindowPath);

            if (shortcut != null && shortcut.combinations.Any())
            {
                itemContent += $" {KeyCombination.SequenceToMenuString(shortcut.combinations)}";
            }

            menu.AddItem(EditorGUIUtility.TextContent(itemContent), false, DebugWindow, actualView);
        }
        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);
        }