Consolidate Apply/Delete for clarity around outcome

This commit is contained in:
John Lewin 2018-08-10 13:14:06 -07:00
parent 09e7ed9e4c
commit 39b2ab35a3
3 changed files with 24 additions and 20 deletions

View file

@ -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)
{

View file

@ -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);

@ -1 +1 @@
Subproject commit a04aa7553129c7287291227acbb9f0f8522f44f4
Subproject commit 0aa034ed886a837411ffc45ac7dd5eb0abf051ac