Esempio n. 1
0
        /// <inheritdoc />
        public override bool OnMouseUp(Vector2 location, MouseButton buttons)
        {
            if (base.OnMouseUp(location, buttons))
            {
                return(true);
            }

            if (_mouseDown && buttons == MouseButton.Right)
            {
                _mouseDown = false;

                if (LinkedEditor == null && SetupContextMenu == null)
                {
                    return(false);
                }

                var menu = new ContextMenu();
                if (LinkedEditor != null)
                {
                    var revertToPrefab = menu.AddButton("Revert to Prefab", LinkedEditor.RevertToReferenceValue);
                    revertToPrefab.Enabled = LinkedEditor.CanRevertReferenceValue;
                }
                SetupContextMenu?.Invoke(this, menu);
                menu.Show(this, location);

                return(true);
            }

            return(false);
        }
Esempio n. 2
0
        /// <inheritdoc />
        public override bool OnMouseUp(Vector2 location, MouseButton button)
        {
            if (base.OnMouseUp(location, button))
            {
                return(true);
            }

            if (_mouseDown && button == MouseButton.Right)
            {
                _mouseDown = false;

                // Skip if is not extended
                var linkedEditor = LinkedEditor;
                if (linkedEditor == null && SetupContextMenu == null)
                {
                    return(false);
                }

                var menu = new ContextMenu();

                if (linkedEditor != null)
                {
                    var features = linkedEditor.Presenter.Features;
                    if ((features & (FeatureFlags.UseDefault | FeatureFlags.UsePrefab)) != 0)
                    {
                        if ((features & FeatureFlags.UsePrefab) != 0)
                        {
                            menu.AddButton("Revert to Prefab", linkedEditor.RevertToReferenceValue).Enabled = linkedEditor.CanRevertReferenceValue;
                        }
                        if ((features & FeatureFlags.UseDefault) != 0)
                        {
                            menu.AddButton("Reset to default", linkedEditor.RevertToDefaultValue).Enabled = linkedEditor.CanRevertDefaultValue;
                        }
                        menu.AddSeparator();
                    }
                    menu.AddButton("Copy", linkedEditor.Copy);
                    var paste = menu.AddButton("Paste", linkedEditor.Paste);
                    paste.Enabled = linkedEditor.CanPaste;
                }

                SetupContextMenu?.Invoke(this, menu, linkedEditor);

                menu.Show(this, location);

                return(true);
            }

            return(false);
        }