From 4726bfad860db52e44544ca0f02eae8107393c43 Mon Sep 17 00:00:00 2001 From: Kevin Pope Date: Tue, 1 Jul 2014 19:29:13 -0700 Subject: [PATCH] Changed 2D/3D layer view toggle UI, setting also now saves state. --- PartPreviewWindow/ViewControls2D.cs | 45 +++++++++++++ PartPreviewWindow/ViewGcodeBasic.cs | 62 +++++++++++------- StaticData/Icons/ViewTransformControls/2d.png | Bin 0 -> 675 bytes StaticData/Icons/ViewTransformControls/3d.png | Bin 0 -> 677 bytes 4 files changed, 85 insertions(+), 22 deletions(-) create mode 100644 StaticData/Icons/ViewTransformControls/2d.png create mode 100644 StaticData/Icons/ViewTransformControls/3d.png 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 0000000000000000000000000000000000000000..4f209b806a56393c175f4d189b1f59a06695c5eb GIT binary patch literal 675 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_IvD1Ol(&9(wTM)3`_=|E{-7)hu==M%@7F` zX}y2@rl(n#%2Exkje?v`vrL*==SFZ`TQoH=#3NBW#A9*O)TMjFHVP?qFWA)7WG}6B zC}DA-@(!JwI-MsB&i z+`}YwK!1UjlKHEzzZ}Zn{QC9Fz<~XM=pR?%3Pq*Ifg-Il?f322u|vFKdFw0($qF`| zm2Y#`hP}Su!TxSVt=x=@&n-Xf?Y@w+`>x%DPKFN-ljF8Ut*w>*=C*hvd&T3u-<68? zYX4h!OK*90sny)W4z92Fp1;!BYv230!sM;+MD3_IAJtg&a>Mky776@VW+;B?pVO@e zd-t>TeE<5j*6a70t%rZzI%9Qd;zYscd-pH@`TT$M49`h(SZ^_$+qrR#tiiDv7Jcqp zi%;8HPjFis_L}`2yW@u|62YJD`L`tgC{%x9J@;HwS%Sve=0|0n=XP#X;E;>V?yq{k zpXu?@q>Y;{ziUmjSnzo1&74cdiCI~vx=w^XFrUzIV(q)d(}i-+3tBw)d%;ncmZYOJ zc~(IAxw&r&v#NvyCeDs}?cM0E7+`44a8c_*Z%rgCIdzOS96lD_E;Rsb}UDA#!jb&1<{;$wqEnAdjGuF zF#gK@{2t4+wYDp^#;sqsZl1J^Ow75WCuz0(4D!3CT@-v!{N3o%4AodSaqX#I6W0Hb fu`GHM^@nkmf?xUSfVZ3s3=9mOu6{1-oD!M<&MPwc literal 0 HcmV?d00001 diff --git a/StaticData/Icons/ViewTransformControls/3d.png b/StaticData/Icons/ViewTransformControls/3d.png new file mode 100644 index 0000000000000000000000000000000000000000..08661817e5edf8609f33ff30ea8852eb95c3e850 GIT binary patch literal 677 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}Y)RhkE)4%caKYZ?lNlHo zI14-?iy0WWg+Z8+Vb&Z81_lQ95>H=O_IvD1Oze_Z(lvP*7?_MaT^vIq4!@ncKRY;3 z0mlcCWY_bM&U;g_XAsp8UlwF~wqKi9n%%Oo#?wjUx$wFVL~nj&0QS<);AGapDdM0}9_2i)x;PdOfKCezxLXyO}a`#EC+Lr{M*^lVfgGC zhpIoLsC2&aG@)ZNR3EtRjhip!_-?9iSt(0nYv4zl^Tmz6*~Nbk)COvZm;{IlavuKR z6vMP_1?y_3${%{BdYOwaTFmlW9z4@0?O5sE+flD81uNrq#LU$c^LtiW_AQ1Kla)06;Hl#|K|CXmtW>+E|u#(5iD4#t#mu;_3ocF|8BY@FP%~p zYrb|$kdo8pn@=2U1J++(-cY{nmi1%}fwqTxLO*=}FjsiGgWmMptkb3jd1cpD3VrH( z9J6Wu{Nq9!ykB%1rWMYQcb0~e<%Qua);bq?<=J1>*Y@P`{8sUp fpm1>EA^W<6-nBc0*3~mGFfe$!`njxgN@xNA?BXZS literal 0 HcmV?d00001