From 94476783dac460e9601122c9b7fc22af12d34fd3 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Wed, 12 May 2021 16:20:44 +0200 Subject: [PATCH] Add option to Delete Sprite in Editor --- .../Windows/Assets/SpriteAtlasWindow.cs | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs index e26288814..7a2186b26 100644 --- a/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs +++ b/Source/Editor/Windows/Assets/SpriteAtlasWindow.cs @@ -7,6 +7,7 @@ using FlaxEditor.Content.Import; using FlaxEditor.CustomEditors; using FlaxEditor.CustomEditors.Editors; using FlaxEditor.GUI; +using FlaxEditor.GUI.ContextMenu; using FlaxEditor.Scripting; using FlaxEditor.Viewport.Previews; using FlaxEngine; @@ -131,10 +132,33 @@ namespace FlaxEditor.Windows.Assets for (int i = 0; i < sprites.Length; i++) { var group = layout.Group(sprites[i].Name); + group.Panel.Tag = i; + group.Panel.MouseButtonRightClicked += OnGroupPanelMouseButtonRightClicked; group.Object(new ListValueContainer(elementType, i, Values)); } } } + + private void OnGroupPanelMouseButtonRightClicked(DropPanel groupPanel, Vector2 location) + { + var menu = new ContextMenu(); + + var deleteSprite = menu.AddButton("Delete sprite"); + deleteSprite.Tag = groupPanel.Tag; + deleteSprite.ButtonClicked += OnDeleteSpriteClicked; + + menu.Show(groupPanel, location); + } + + private void OnDeleteSpriteClicked(ContextMenuButton button) + { + var window = ((PropertiesProxy)ParentEditor.Values[0])._window; + var index = (int)button.Tag; + window.Asset.RemoveSprite(index); + window.MarkAsEdited(); + window._properties.UpdateSprites(); + window._propertiesEditor.BuildLayout(); + } } ///