コード例 #1
0
        internal override void AddMenuItems(IGenericMenu menu)
        {
            // We must update the choices and the values since we don't know if they changed...
            UpdateLayersInfo();

            // Create the menu the usual way...
            base.AddMenuItems(menu);
        }
コード例 #2
0
        // This method is used when the menu is built to fill up all the choices.
        internal void AddMenuItems(IGenericMenu menu)
        {
            if (menu == null)
            {
                throw new ArgumentNullException(nameof(menu));
            }

            foreach (var item in m_Choices)
            {
                bool isSelected = item == value;
                menu.AddItem(GetListItemToDisplay(item), isSelected,
                             () => ChangeValueFromMenu(item));
            }
        }
コード例 #3
0
        internal override void AddMenuItems(IGenericMenu menu)
        {
            if (menu == null)
            {
                throw new ArgumentNullException(nameof(menu));
            }

            foreach (T item in m_Choices)
            {
                bool isSelected = EqualityComparer <T> .Default.Equals(item, value);

                menu.AddItem(GetListItemToDisplay(item), isSelected,
                             () => ChangeValueFromMenu(item));
            }
        }
コード例 #4
0
 internal override void AddMenuItems(IGenericMenu menu)
 {
     menu.AddItem("Select all", false, () => SelectAllTypes(true));
     menu.AddItem("Select all mouse events (basic)", false, () => SelectAllTypes(true, EventTypeSelection.Mouse));
     menu.AddItem("Select all drag events", false, () => SelectAllTypes(true, EventTypeSelection.Drag));
     menu.AddItem("Select all keyboard events", false, () => SelectAllTypes(true, EventTypeSelection.Keyboard));
     menu.AddItem("Select all command events", false, () => SelectAllTypes(true, EventTypeSelection.Command));
     menu.AddSeparator(String.Empty);
     menu.AddItem("Unselect all", false, () => SelectAllTypes(false));
     menu.AddSeparator(String.Empty);
     foreach (var item in m_Choices)
     {
         menu.AddItem(item.s, m_State[item.v], () => ChangeValueFromMenu(item));
     }
 }
コード例 #5
0
        internal override void AddMenuItems(IGenericMenu menu)
        {
            if (menu == null)
            {
                throw new ArgumentNullException(nameof(menu));
            }

            choices = InitializeTags();
            foreach (var menuItem in choices)
            {
                var isSelected = (menuItem == value);
                menu.AddItem(menuItem, isSelected, () => ChangeValueFromMenu(menuItem));
            }
            menu.AddSeparator(String.Empty);
            menu.AddItem(L10n.Tr("Add Tag..."), false, OpenTagInspector);
        }
コード例 #6
0
        internal override void AddMenuItems(IGenericMenu menu)
        {
            if (menu == null)
            {
                throw new ArgumentNullException(nameof(menu));
            }

            choices = InitializeLayers();
            string[] layerList = InternalEditorUtility.GetLayersWithId();
            for (var i = 0; i < layerList.Length; i++)
            {
                var item          = layerList[i];
                var menuItemIndex = m_Choices[i];
                var isSelected    = (menuItemIndex == value);
                menu.AddItem(item, isSelected, () => ChangeValueFromMenu(menuItemIndex));
            }
            menu.AddSeparator(String.Empty);
            menu.AddItem(L10n.Tr("Add Layer..."), false, OpenLayerInspector);
        }
コード例 #7
0
        internal override void AddMenuItems(IGenericMenu menu)
        {
            if (menu == null)
            {
                throw new ArgumentNullException(nameof(menu));
            }

            int valueMask = ValueToMask(value);

            foreach (var item in m_Choices)
            {
                var maskOfItem = GetMaskValueOfItem(item);
                var isSelected = false;
                switch (maskOfItem)
                {
                case 0:
                    if (valueMask == 0)
                    {
                        isSelected = true;
                    }
                    break;

                case ~0:
                    if (valueMask == ~0)
                    {
                        isSelected = true;
                    }
                    break;

                default:
                    if ((maskOfItem & valueMask) == maskOfItem)
                    {
                        isSelected = true;
                    }
                    break;
                }

                menu.AddItem(GetListItemToDisplay(MaskToValue(maskOfItem)), isSelected, () => ChangeValueFromMenu(item));
            }
        }
コード例 #8
0
 // This method is used when the menu is built to fill up all the choices.
 internal abstract void AddMenuItems(IGenericMenu menu);
コード例 #9
0
        internal void Build(IGenericMenu editMenu, GitDiffWindow window)
        {
            StatusListEntry[] entries       = window.GetStatusList().Where(window.IsSelected).ToArray();
            FileStatus        selectedFlags = entries.Select(e => e.State).CombineFlags();

            GUIContent addContent = new GUIContent("Stage", GitGUI.Textures.CollabPush);

            if (GitManager.CanStage(selectedFlags))
            {
                editMenu.AddItem(addContent, false, () => { AddSelectedCallback(window); });
            }
            else
            {
                editMenu.AddDisabledItem(addContent);
            }
            GUIContent removeContent = new GUIContent("Unstage", GitGUI.Textures.CollabPull);

            if (GitManager.CanUnstage(selectedFlags))
            {
                editMenu.AddItem(removeContent, false, () => { RemoveSelectedCallback(window); });
            }
            else
            {
                editMenu.AddDisabledItem(removeContent);
            }

            editMenu.AddSeparator("");
            Texture2D diffIcon = GitGUI.Textures.ZoomTool;

            if (entries.Length >= 1)
            {
                string localPath = entries[0].LocalPath;
                if (selectedFlags.IsFlagSet(FileStatus.Conflicted))
                {
                    if (conflictsHandler.CanResolveConflictsWithTool(localPath))
                    {
                        editMenu.AddItem(new GUIContent("Resolve Conflicts", "Resolve merge conflicts"), false, ResolveConflictsCallback, localPath);
                    }
                    else
                    {
                        editMenu.AddDisabledItem(new GUIContent("Resolve Conflicts"));
                    }
                    editMenu.AddItem(new GUIContent("Resolve (Using Ours)"), false, ResolveConflictsOursCallback, localPath);
                    editMenu.AddItem(new GUIContent("Resolve (Using Theirs)"), false, ResolveConflictsTheirsCallback, localPath);
                }
                else if (!selectedFlags.IsFlagSet(FileStatus.Ignored))
                {
                    if (entries[0].MetaChange == (MetaChangeEnum.Object | MetaChangeEnum.Meta))
                    {
                        editMenu.AddItem(new GUIContent("Difference/Asset", diffIcon), false, () => { SeeDifferenceObject(entries[0]); });
                        editMenu.AddItem(new GUIContent("Difference/Meta", diffIcon), false, () => { SeeDifferenceMeta(entries[0]); });
                    }
                    else
                    {
                        editMenu.AddItem(new GUIContent("Difference", diffIcon), false, () => { SeeDifferenceAuto(entries[0]); });
                    }

                    if (entries[0].MetaChange == (MetaChangeEnum.Object | MetaChangeEnum.Meta))
                    {
                        editMenu.AddItem(new GUIContent("Difference with previous version/Asset", diffIcon), false, () => { SeeDifferencePrevObject(entries[0]); });
                        editMenu.AddItem(new GUIContent("Difference with previous version/Meta", diffIcon), false, () => { SeeDifferencePrevMeta(entries[0]); });
                    }
                    else
                    {
                        editMenu.AddItem(new GUIContent("Difference with previous version", diffIcon), false, () => { SeeDifferencePrevAuto(entries[0]); });
                    }
                }
                else
                {
                    editMenu.AddDisabledItem(new GUIContent("Difference", diffIcon));
                    editMenu.AddDisabledItem(new GUIContent("Difference with previous version", diffIcon));
                }
                editMenu.AddSeparator("");
            }

            if (selectedFlags.IsFlagSet(FileStatus.Ignored))
            {
                editMenu.AddDisabledItem(new GUIContent("Revert", GitGUI.Textures.AnimationWindow));
            }
            else if (entries.Length >= 1)
            {
                if (entries[0].MetaChange == (MetaChangeEnum.Object | MetaChangeEnum.Meta))
                {
                    editMenu.AddItem(new GUIContent("Revert/Asset", GitGUI.Textures.AnimationWindow), false, () => RevertSelectedObjects(window));
                    editMenu.AddItem(new GUIContent("Revert/Meta", GitGUI.Textures.AnimationWindow), false, () => RevertSelectedMeta(window));
                }
                else
                {
                    editMenu.AddItem(new GUIContent("Revert", GitGUI.Textures.AnimationWindow), false, () => RevertSelectedCallback(window));
                }
            }

            if (entries.Length >= 1)
            {
                editMenu.AddSeparator("");
                if (entries[0].MetaChange == (MetaChangeEnum.Object | MetaChangeEnum.Meta))
                {
                    if (gitManager.CanBlame(entries[0].State))
                    {
                        editMenu.AddItem(new GUIContent("Blame/Object", GitGUI.Textures.GameView), false, () => { BlameObject(entries[0]); });
                        editMenu.AddItem(new GUIContent("Blame/Meta", GitGUI.Textures.GameView), false, () => { BlameMeta(entries[0]); });
                    }
                    else
                    {
                        editMenu.AddDisabledItem(new GUIContent("Blame", GitGUI.Textures.GameView));
                    }
                }
                else if (entries.Length > 0)
                {
                    if (gitManager.CanBlame(entries[0].State))
                    {
                        editMenu.AddItem(new GUIContent("Blame", GitGUI.Textures.GameView), false, () => { BlameAuto(entries[0]); });
                    }
                    else
                    {
                        editMenu.AddDisabledItem(new GUIContent("Blame", GitGUI.Textures.GameView));
                    }
                }
            }
            editMenu.AddSeparator("");
            if (entries.Length >= 1)
            {
                editMenu.AddItem(new GUIContent("Show In Explorer", GitGUI.Textures.FolderIcon), false, () => { EditorUtility.RevealInFinder(gitManager.ToProjectPath(entries[0].LocalPath)); });
            }
            editMenu.AddItem(new GUIContent("Open", GitGUI.Textures.OrbitTool), false, () =>
            {
                AssetDatabase.OpenAsset(entries.Select(e => AssetDatabase.LoadAssetAtPath <Object>(gitManager.ToProjectPath(e.LocalPath))).Where(a => a != null).ToArray());
            });
            editMenu.AddItem(new GUIContent("Delete", gitOverlay.icons.trashIconSmall.image), false, () =>
            {
                foreach (var entry in entries)
                {
                    window.DeleteAsset(entry.LocalPath);
                }
            });
            editMenu.AddItem(new GUIContent("Reload", GitGUI.Textures.RotateTool), false, window.ReloadCallback);
        }