diff --git a/PartPreviewWindow/ViewControls2D.cs b/PartPreviewWindow/ViewControls2D.cs index 688758472..d57929eaf 100644 --- a/PartPreviewWindow/ViewControls2D.cs +++ b/PartPreviewWindow/ViewControls2D.cs @@ -40,4 +40,49 @@ namespace MatterHackers.MatterControl.PartPreviewWindow translateButton.Checked = true; } } + + public class ViewControlsToggle : FlowLayoutWidget + { + public RadioButton twoDimensionButton; + public RadioButton threeDimensionButton; + + public ViewControlsToggle() + { + TextImageButtonFactory iconTextImageButtonFactory = new TextImageButtonFactory(); + iconTextImageButtonFactory.AllowThemeToAdjustImage = false; + + BackgroundColor = new RGBA_Bytes(0, 0, 0, 120); + iconTextImageButtonFactory.FixedHeight = 20; + iconTextImageButtonFactory.FixedWidth = 20; + + string translateIconPath = Path.Combine("ViewTransformControls", "2d.png"); + twoDimensionButton = iconTextImageButtonFactory.GenerateRadioButton("", translateIconPath); + twoDimensionButton.Margin = new BorderDouble(3); + AddChild(twoDimensionButton); + + string scaleIconPath = Path.Combine("ViewTransformControls", "3d.png"); + threeDimensionButton = iconTextImageButtonFactory.GenerateRadioButton("", scaleIconPath); + threeDimensionButton.Margin = new BorderDouble(3); + AddChild(threeDimensionButton); + + Margin = new BorderDouble(5,5,195,5); + HAnchor |= Agg.UI.HAnchor.ParentRight; + VAnchor = Agg.UI.VAnchor.ParentTop; + string defaultView = UserSettings.Instance.get ("LayerViewDefault"); + + if (defaultView == null) + { + UserSettings.Instance.set ("LayerViewDefault", "2D Layer"); + } + + if (defaultView == "2D Layer") { + twoDimensionButton.Checked = true; + } else if (defaultView == "3D Layer") { + threeDimensionButton.Checked = true; + } else { + twoDimensionButton.Checked = true; + } + + } + } } diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs index 930cdb7a2..2ff7d589c 100644 --- a/PartPreviewWindow/ViewGcodeBasic.cs +++ b/PartPreviewWindow/ViewGcodeBasic.cs @@ -63,6 +63,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow FlowLayoutWidget modelOptionsContainer; FlowLayoutWidget displayOptionsContainer; + ViewControlsToggle viewControlsToggle; CheckBox expandModelOptions; CheckBox expandDisplayOptions; @@ -209,9 +210,15 @@ namespace MatterHackers.MatterControl.PartPreviewWindow AddChild(viewControls2D); viewControls3D = new ViewControls3D(meshViewerWidget); AddChild(viewControls3D); - viewControls3D.Visible = false; + viewControls3D.rotateButton.ClickButton(null); + viewControls3D.Visible = false; + + viewControlsToggle = new ViewControlsToggle (); + AddChild (viewControlsToggle); + + //viewControls3D.translateButton.ClickButton(null); - viewControls3D.rotateButton.ClickButton(null); + // move things into the right place and scale { Vector3 bedCenter3D = new Vector3(bedCenter, 0); @@ -470,28 +477,17 @@ namespace MatterHackers.MatterControl.PartPreviewWindow // put in a show 3D view checkbox { - CheckBox show3D = new CheckBox(LocalizedString.Get("Show 3D"), textColor: ActiveTheme.Instance.PrimaryTextColor); - show3D.CheckedStateChanged += (sender, e) => + //CheckBox show3D = new CheckBox(LocalizedString.Get("Show 3D"), textColor: ActiveTheme.Instance.PrimaryTextColor); + viewControlsToggle.twoDimensionButton.CheckedStateChanged += (sender, e) => { - // show the tumbel widget and not the line widget - if (show3D.Checked) - { - viewControls2D.Visible = false; - gcodeViewWidget.Visible = false; - - viewControls3D.Visible = true; - meshViewerWidget.Visible = true; - } - else - { - viewControls2D.Visible = true; - gcodeViewWidget.Visible = true; - - viewControls3D.Visible = false; - meshViewerWidget.Visible = false; - } + SetLayerViewType(); }; - layerInfoContainer.AddChild(show3D); + viewControlsToggle.threeDimensionButton.CheckedStateChanged += (sender, e) => + { + SetLayerViewType(); + }; + SetLayerViewType (); + //layerInfoContainer.AddChild(show3D); } // Put in the sync to print checkbox @@ -553,6 +549,28 @@ namespace MatterHackers.MatterControl.PartPreviewWindow textImageButtonFactory.FixedWidth = oldWidth; } + void SetLayerViewType() + { + if (viewControlsToggle.threeDimensionButton.Checked) + { + UserSettings.Instance.set ("LayerViewDefault", "3D Layer"); + viewControls2D.Visible = false; + gcodeViewWidget.Visible = false; + + viewControls3D.Visible = true; + meshViewerWidget.Visible = true; + } + else + { + UserSettings.Instance.set ("LayerViewDefault", "2D Layer"); + viewControls2D.Visible = true; + gcodeViewWidget.Visible = true; + + viewControls3D.Visible = false; + meshViewerWidget.Visible = false; + } + } + void HookUpGCodeMessagesWhenDonePrinting(object sender, EventArgs e) { if(!PrinterConnectionAndCommunication.Instance.PrinterIsPaused && !PrinterConnectionAndCommunication.Instance.PrinterIsPrinting) diff --git a/StaticData/Icons/ViewTransformControls/2d.png b/StaticData/Icons/ViewTransformControls/2d.png new file mode 100644 index 000000000..4f209b806 Binary files /dev/null and b/StaticData/Icons/ViewTransformControls/2d.png differ diff --git a/StaticData/Icons/ViewTransformControls/3d.png b/StaticData/Icons/ViewTransformControls/3d.png new file mode 100644 index 000000000..08661817e Binary files /dev/null and b/StaticData/Icons/ViewTransformControls/3d.png differ