From 39b2ab35a3d2d12460f870d0aba5fdc370dd573f Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 10 Aug 2018 13:14:06 -0700 Subject: [PATCH] Consolidate Apply/Delete for clarity around outcome --- PartPreviewWindow/PopupMenuButton.cs | 6 ++++ PartPreviewWindow/SelectedObjectPanel.cs | 36 +++++++++++------------- Submodules/agg-sharp | 2 +- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/PartPreviewWindow/PopupMenuButton.cs b/PartPreviewWindow/PopupMenuButton.cs index 8ec21d929..a6b56b3b1 100644 --- a/PartPreviewWindow/PopupMenuButton.cs +++ b/PartPreviewWindow/PopupMenuButton.cs @@ -28,6 +28,7 @@ either expressed or implied, of the FreeBSD Project. */ using MatterHackers.Agg; +using MatterHackers.Agg.Image; using MatterHackers.Agg.UI; using MatterHackers.Agg.VertexSource; using MatterHackers.MatterControl.CustomWidgets; @@ -45,6 +46,11 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.HoverColor = theme.MinimalShade; } + public PopupMenuButton(ImageBuffer imageBuffer, ThemeConfig theme) + : this (new IconButton(imageBuffer, theme), theme) + { + } + public PopupMenuButton(GuiWidget viewWidget, ThemeConfig theme) : base(viewWidget) { diff --git a/PartPreviewWindow/SelectedObjectPanel.cs b/PartPreviewWindow/SelectedObjectPanel.cs index ff02ba278..6175348b9 100644 --- a/PartPreviewWindow/SelectedObjectPanel.cs +++ b/PartPreviewWindow/SelectedObjectPanel.cs @@ -96,29 +96,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow var scene = sceneContext.Scene; - // put in a make permanent button - var icon = AggContext.StaticData.LoadIcon("fa-check_16.png", 16, 16, theme.InvertIcons).SetPreMultiply(); - var applyButton = new IconButton(icon, theme) - { - Margin = theme.ButtonSpacing, - ToolTipText = "Apply operation and make permanent".Localize(), - Enabled = scene.SelectedItem?.CanApply == true - }; - applyButton.Click += (s, e) => + var removeMenu = new PopupMenu(theme); + + var applyAndDeleteItem = removeMenu.CreateMenuItem("Apply & Delete".Localize(), AggContext.StaticData.LoadIcon("fa-check_16.png", 16, 16, theme.InvertIcons).SetPreMultiply()); + applyAndDeleteItem.Click += (s, e) => UiThread.RunOnIdle(() => { this.item.Apply(view3DWidget.Scene.UndoBuffer); scene.SelectedItem = null; - }; - scene.SelectionChanged += (s, e) => applyButton.Enabled = scene.SelectedItem?.CanApply == true; - toolbar.AddChild(applyButton); + }); - // put in a remove button - var removeButton = new IconButton(AggContext.StaticData.LoadIcon("close.png", 16, 16, theme.InvertIcons), theme) - { - Margin = theme.ButtonSpacing, - ToolTipText = "Remove operation from parts".Localize() - }; - removeButton.Click += (s, e) => + var deleteItem = removeMenu.CreateMenuItem("Delete".Localize()); + deleteItem.Click += (s, e) => UiThread.RunOnIdle(() => { var rootSelection = scene.SelectedItemRoot; @@ -132,6 +120,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { scene.SelectedItem = rootSelection; } + }); + + // Delete button + var removeButton = new PopupMenuButton(AggContext.StaticData.LoadIcon("close.png", 16, 16, theme.InvertIcons), theme); + + removeButton.PopupBorderColor = ApplicationController.Instance.MenuTheme.GetBorderColor(120); + removeButton.DynamicPopupContent = () => + { + applyAndDeleteItem.Enabled = scene.SelectedItem?.CanApply == true; + return removeMenu; }; toolbar.AddChild(removeButton); diff --git a/Submodules/agg-sharp b/Submodules/agg-sharp index a04aa7553..0aa034ed8 160000 --- a/Submodules/agg-sharp +++ b/Submodules/agg-sharp @@ -1 +1 @@ -Subproject commit a04aa7553129c7287291227acbb9f0f8522f44f4 +Subproject commit 0aa034ed886a837411ffc45ac7dd5eb0abf051ac