From 7c4ff5569b16e251256193df95faa07fbe0d458b Mon Sep 17 00:00:00 2001 From: John Lewin Date: Fri, 26 May 2017 00:23:20 -0700 Subject: [PATCH] Fix more menu issues - Restore ViewControls3D Overflow menu selection - Revise DropList styling - Revert to prior mechanism for DynamicPopupContent - Create redirector in PrinterTabPage for dynamic overflow menu --- PartPreviewWindow/OverflowDropdown.cs | 14 ++------------ PartPreviewWindow/PartPreviewContent.cs | 9 +++++++++ PartPreviewWindow/View3D/PrinterActionsBar.cs | 4 ++-- PartPreviewWindow/View3D/View3DWidget.cs | 4 ++-- PartPreviewWindow/ViewControls3D.cs | 10 +++++----- SlicerConfiguration/SettingsControlSelectors.cs | 2 +- 6 files changed, 21 insertions(+), 22 deletions(-) diff --git a/PartPreviewWindow/OverflowDropdown.cs b/PartPreviewWindow/OverflowDropdown.cs index c5db56e06..e18d041ae 100644 --- a/PartPreviewWindow/OverflowDropdown.cs +++ b/PartPreviewWindow/OverflowDropdown.cs @@ -36,7 +36,6 @@ using MatterHackers.Agg.PlatformAbstract; using MatterHackers.Agg.Image; using MatterHackers.Agg.ImageProcessing; using System; -using System.Collections.Generic; namespace MatterHackers.MatterControl.PartPreviewWindow { @@ -67,7 +66,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public GuiWidget PopupContent { get; set; } - public List> DynamicPopupContent { get; set; } = new List>(); + public Func DynamicPopupContent { get; set; } public bool AlignToRightEdge { get; set; } @@ -94,18 +93,9 @@ namespace MatterHackers.MatterControl.PartPreviewWindow this.PopupContent?.ClearRemovedFlag(); - // Invoke registered funcs until content is found if (this.DynamicPopupContent != null) { - foreach(var action in this.DynamicPopupContent) - { - var content = action(); - if(content != null) - { - this.PopupContent = content; - break; - } - } + this.PopupContent = this.DynamicPopupContent(); } if (this.PopupContent == null) diff --git a/PartPreviewWindow/PartPreviewContent.cs b/PartPreviewWindow/PartPreviewContent.cs index 320e6eb1d..92cc1035d 100644 --- a/PartPreviewWindow/PartPreviewContent.cs +++ b/PartPreviewWindow/PartPreviewContent.cs @@ -132,6 +132,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { modelViewer.meshViewerWidget.ResetView(); }; + viewControls3D.OverflowButton.DynamicPopupContent = () => + { + if (modelViewer.Visible) + { + return modelViewer.ShowOverflowMenu(); + } + + return null; + }; // The 3D model view modelViewer = new View3DWidget(printItem, diff --git a/PartPreviewWindow/View3D/PrinterActionsBar.cs b/PartPreviewWindow/View3D/PrinterActionsBar.cs index 84d548994..c334dcefe 100644 --- a/PartPreviewWindow/View3D/PrinterActionsBar.cs +++ b/PartPreviewWindow/View3D/PrinterActionsBar.cs @@ -85,12 +85,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { AlignToRightEdge = true, }; - overflowDropdown.DynamicPopupContent.Add(GeneratePopupContent); + overflowDropdown.DynamicPopupContent = GeneratePopupContent; // Deregister on close this.Closed += (s, e) => { - overflowDropdown.DynamicPopupContent.Add(GeneratePopupContent); + overflowDropdown.DynamicPopupContent = GeneratePopupContent; }; this.AddChild(overflowDropdown); diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs index c13f57653..ff0176dc9 100644 --- a/PartPreviewWindow/View3D/View3DWidget.cs +++ b/PartPreviewWindow/View3D/View3DWidget.cs @@ -64,7 +64,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private IObject3D item; private View3DWidget view3DWidget; - public string Name { get { return "General"; } } + public string Name => "General"; public bool Unlocked => true; @@ -2396,7 +2396,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow // ViewControls3D {{ - private GuiWidget ShowOverflowMenu() + internal GuiWidget ShowOverflowMenu() { var popupContainer = new FlowLayoutWidget(FlowDirection.TopToBottom); diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index 6ac21ca29..ec63392f5 100644 --- a/PartPreviewWindow/ViewControls3D.cs +++ b/PartPreviewWindow/ViewControls3D.cs @@ -69,7 +69,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private EventHandler unregisterEvents; - private OverflowDropdown overflowButton; + internal OverflowDropdown OverflowButton; public event EventHandler ResetView; @@ -176,10 +176,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow }; AddChild(layersButton); - overflowButton = new OverflowDropdown(allowLightnessInvert: false); - overflowButton.ToolTipText = "More...".Localize(); - overflowButton.Margin = 3; - AddChild(overflowButton); + OverflowButton = new OverflowDropdown(allowLightnessInvert: false); + OverflowButton.ToolTipText = "More...".Localize(); + OverflowButton.Margin = 3; + AddChild(OverflowButton); HAnchor |= Agg.UI.HAnchor.ParentLeft; VAnchor = Agg.UI.VAnchor.ParentTop; diff --git a/SlicerConfiguration/SettingsControlSelectors.cs b/SlicerConfiguration/SettingsControlSelectors.cs index 9b0f71f1d..097e41867 100644 --- a/SlicerConfiguration/SettingsControlSelectors.cs +++ b/SlicerConfiguration/SettingsControlSelectors.cs @@ -284,7 +284,7 @@ namespace MatterHackers.MatterControl.SlicerConfiguration var dropDownList = new DropDownList(defaultMenuItemText, maxHeight: 300, useLeftIcons: true) { HAnchor = HAnchor.ParentLeftRight, - MenuItemsPadding = new BorderDouble(10, 4, 10, 6), + MenuItemsPadding = new BorderDouble(10, 7, 7, 7), }; dropDownList.Name = layerType.ToString();