From dc82f027cdbd2f950ebd9555eb03e4528d671088 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Sat, 3 Feb 2018 13:49:11 -0800 Subject: [PATCH] Use new radio button menu style - Issue MatterHackers/MCCentral#2769 Model render menu options should use gutter and bool menu item type --- PartPreviewWindow/View3D/View3DWidget.cs | 67 +++++++++++++----------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs index 2062020fc..7d765f159 100644 --- a/PartPreviewWindow/View3D/View3DWidget.cs +++ b/PartPreviewWindow/View3D/View3DWidget.cs @@ -1336,11 +1336,41 @@ namespace MatterHackers.MatterControl.PartPreviewWindow popupMenu.CreateHorizontalLine(); - AddRadioButton("Shaded".Localize(), RenderTypes.Shaded, popupMenu); - AddRadioButton("Outlines".Localize(), RenderTypes.Outlines, popupMenu); - AddRadioButton("Polygons".Localize(), RenderTypes.Polygons, popupMenu); - AddRadioButton("Materials Option".Localize(), RenderTypes.Materials, popupMenu); - AddRadioButton("Overhang".Localize(), RenderTypes.Overhang, popupMenu); + void switchToRenderType(RenderTypes renderType) + { + meshViewerWidget.RenderType = renderType; + UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, renderType.ToString()); + } + + popupMenu.CreateBoolMenuItem( + "Shaded".Localize(), + () => meshViewerWidget.RenderType == RenderTypes.Shaded, + (v) => switchToRenderType(RenderTypes.Shaded), + useRadioStyle: true); + + popupMenu.CreateBoolMenuItem( + "Outlines".Localize(), + () => meshViewerWidget.RenderType == RenderTypes.Outlines, + (v) => switchToRenderType(RenderTypes.Outlines), + useRadioStyle: true); + + popupMenu.CreateBoolMenuItem( + "Polygons".Localize(), + () => meshViewerWidget.RenderType == RenderTypes.Polygons, + (v) => switchToRenderType(RenderTypes.Polygons), + useRadioStyle: true); + + popupMenu.CreateBoolMenuItem( + "Materials Option".Localize(), + () => meshViewerWidget.RenderType == RenderTypes.Materials, + (v) => switchToRenderType(RenderTypes.Materials), + useRadioStyle: true); + + popupMenu.CreateBoolMenuItem( + "Overhang".Localize(), + () => meshViewerWidget.RenderType == RenderTypes.Overhang, + (value) => switchToRenderType(RenderTypes.Overhang), + useRadioStyle: true); popupMenu.CreateHorizontalLine(); @@ -1349,33 +1379,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow return popupMenu; } - private void AddRadioButton(string label, RenderTypes renderTypes, PopupMenu popupMenu, Action action = null) - { - var radioButton = new RadioButton(label, textColor: Color.Black) - { - Checked = (meshViewerWidget.RenderType == renderTypes), - HAnchor = HAnchor.MaxFitOrStretch, - Margin = 0 - }; - radioButton.CheckedStateChanged += (s, e) => - { - if (radioButton.Checked) - { - if (action == null) - { - meshViewerWidget.RenderType = renderTypes; - UserSettings.Instance.set(UserSettingsKey.defaultRenderSetting, meshViewerWidget.RenderType.ToString()); - } - else - { - action.Invoke(); - } - } - }; - - popupMenu.CreateMenuItem(radioButton, $"{label}-Menu"); - } - protected bool autoRotating = false; protected bool allowAutoRotate = false;