/// <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); }
/// <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); }