private void AddAddOptionsToMenu(GenericMenu menu, bool isContextMenu)
        {
            var hasSelection  = m_TreeView.HasSelection();
            var canAddBinding = false;
            var action        = m_TreeView.GetSelectedAction();

            if (action != null && hasSelection)
            {
                canAddBinding = true;
            }
            var canAddAction = false;
            var actionMap    = m_TreeView.GetSelectedActionMap();

            if (actionMap != null && hasSelection)
            {
                canAddAction = true;
            }
            if (canAddBinding)
            {
                menu.AddItem(isContextMenu ? m_AddBindingContextGUI : m_AddBindingGUI, false, OnAddBinding);
            }
            else if (!isContextMenu)
            {
                menu.AddDisabledItem(m_AddBindingGUI);
            }
            if (canAddAction)
            {
                menu.AddItem(isContextMenu ? m_AddActionContextGUI : m_AddActionGUI, false, OnAddAction);
            }
            else if (!isContextMenu)
            {
                menu.AddDisabledItem(m_AddActionGUI, false);
            }
            menu.AddItem(isContextMenu ?  m_AddActionMapContextGUI : m_AddActionMapGUI, false, OnAddActionMap);

            var compositeString = isContextMenu ? EditorGUIUtility.TrTextContent("Add composite") : EditorGUIUtility.TrTextContent("Composite");

            if (canAddBinding)
            {
                foreach (var composite in InputBindingComposite.s_Composites.names)
                {
                    menu.AddItem(new GUIContent(compositeString.text + "/" + composite), false, OnAddCompositeBinding, composite);
                }
            }
            else if (!isContextMenu)
            {
                menu.AddDisabledItem(new GUIContent(compositeString), false);
            }
        }
Example #2
0
        void AddAddOptionsToMenu(GenericMenu menu, bool includeAddPrefix)
        {
            var hasSelection  = m_TreeView.HasSelection();
            var canAddBinding = false;
            var row           = m_TreeView.GetSelectedAction();

            if (row != null && hasSelection)
            {
                canAddBinding = true;
            }

            var canAddAction = false;
            var action       = m_TreeView.GetSelectedActionMap();

            if (action != null && hasSelection)
            {
                canAddAction = true;
            }

            var actionString = includeAddPrefix ? "Add action" : "Action";

            if (canAddAction)
            {
                menu.AddItem(new GUIContent(actionString), false, OnAddAction);
            }
            else
            {
                menu.AddDisabledItem(new GUIContent(actionString), false);
            }

            var actionMapString = includeAddPrefix ? "Add action map" : "Action map";

            menu.AddItem(new GUIContent(actionMapString), false, OnAddActionMap);
            menu.AddSeparator("");
            var bindingString   = includeAddPrefix ? "Add binding" : "Binding";
            var compositeString = includeAddPrefix ? "Add composite binding" : "Composite binding";

            if (canAddBinding)
            {
                menu.AddItem(new GUIContent(bindingString), false, OnAddBinding);
                menu.AddItem(new GUIContent(compositeString + "/2 dimensions"), false, OnAddCompositeBinding, 2);
                menu.AddItem(new GUIContent(compositeString + "/4 dimensions"), false, OnAddCompositeBinding, 4);
            }
            else
            {
                menu.AddDisabledItem(new GUIContent(bindingString), false);
                menu.AddDisabledItem(new GUIContent(compositeString), false);
            }
        }