Use new radio button menu style

- Issue MatterHackers/MCCentral#2769
Model render menu options should use gutter and bool menu item type
This commit is contained in:
John Lewin 2018-02-03 13:49:11 -08:00
parent 877ea4d040
commit dc82f027cd

View file

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