diff --git a/MatterControl.csproj b/MatterControl.csproj
index 0b490ea44..bfc7ef6b6 100644
--- a/MatterControl.csproj
+++ b/MatterControl.csproj
@@ -236,7 +236,7 @@
-
+
diff --git a/PartPreviewWindow/BaseClasses/PartPreviewWidget.cs b/PartPreviewWindow/BaseClasses/PartPreviewWidget.cs
index 1321c61a6..56d7bccf1 100644
--- a/PartPreviewWindow/BaseClasses/PartPreviewWidget.cs
+++ b/PartPreviewWindow/BaseClasses/PartPreviewWidget.cs
@@ -42,8 +42,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
public TextImageButtonFactory ExpandMenuOptionFactory;
public TextImageButtonFactory WhiteButtonFactory;
- protected ViewControls2D viewControls2D;
-
protected GuiWidget buttonRightPanelDisabledCover;
protected FlowLayoutWidget buttonRightPanel;
diff --git a/PartPreviewWindow/View3D/View3DWidget.cs b/PartPreviewWindow/View3D/View3DWidget.cs
index 329a398cf..0955ee483 100644
--- a/PartPreviewWindow/View3D/View3DWidget.cs
+++ b/PartPreviewWindow/View3D/View3DWidget.cs
@@ -518,7 +518,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
selectedObjectPanel = new SelectedObjectPanel()
{
Margin = 5,
- BackgroundColor = new RGBA_Bytes(0, 0, 0, ViewControls2D.overlayAlpha)
+ BackgroundColor = new RGBA_Bytes(0, 0, 0, ViewControlsBase.overlayAlpha)
};
AddChild(selectedObjectPanel);
diff --git a/PartPreviewWindow/ViewControls2D.cs b/PartPreviewWindow/ViewControlsToggle.cs
similarity index 67%
rename from PartPreviewWindow/ViewControls2D.cs
rename to PartPreviewWindow/ViewControlsToggle.cs
index 7af0eb74b..f7b127662 100644
--- a/PartPreviewWindow/ViewControls2D.cs
+++ b/PartPreviewWindow/ViewControlsToggle.cs
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2014, Lars Brubaker
+Copyright (c) 2017, Lars Brubaker, John Lewin
All rights reserved.
Redistribution and use in source and binary forms, with or without
@@ -30,10 +30,7 @@ either expressed or implied, of the FreeBSD Project.
using System;
using System.IO;
using MatterHackers.Agg;
-using MatterHackers.Agg.ImageProcessing;
-using MatterHackers.Agg.PlatformAbstract;
using MatterHackers.Agg.UI;
-using MatterHackers.Localizations;
namespace MatterHackers.MatterControl.PartPreviewWindow
{
@@ -43,46 +40,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
public const int overlayAlpha = 50;
}
- public class ViewControls2D : ViewControlsBase
- {
- private Button resetViewButton;
-
- public RadioButton translateButton;
- public RadioButton scaleButton;
-
- public event EventHandler ResetView;
-
- public ViewControls2D(TextImageButtonFactory buttonFactory)
- {
- this.BackgroundColor = new RGBA_Bytes(0, 0, 0, overlayAlpha);
- string resetViewIconPath = Path.Combine("ViewTransformControls", "reset.png");
- resetViewButton = buttonFactory.Generate("", StaticData.Instance.LoadIcon(resetViewIconPath, 32, 32).InvertLightness());
- resetViewButton.ToolTipText = "Reset View".Localize();
- AddChild(resetViewButton);
- resetViewButton.Click += (sender, e) =>
- {
- UiThread.RunOnIdle(() => ResetView?.Invoke(this, null));
- };
-
- string translateIconPath = Path.Combine("ViewTransformControls", "translate.png");
- translateButton = buttonFactory.GenerateRadioButton("", StaticData.Instance.LoadIcon(translateIconPath, 32, 32));
- translateButton.ToolTipText = "Move".Localize();
- translateButton.Margin = new BorderDouble(3);
- AddChild(translateButton);
-
- string scaleIconPath = Path.Combine("ViewTransformControls", "scale.png");
- scaleButton = buttonFactory.GenerateRadioButton("", StaticData.Instance.LoadIcon(scaleIconPath, 32, 32));
- scaleButton.ToolTipText = "Zoom".Localize();
- scaleButton.Margin = new BorderDouble(3);
- AddChild(scaleButton);
-
- Margin = new BorderDouble(5);
- HAnchor |= HAnchor.ParentLeft;
- VAnchor = VAnchor.ParentTop;
- translateButton.Checked = true;
- }
- }
-
public enum PartViewMode
{
Layers2D,
diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs
index d0e67b4e6..611743542 100644
--- a/PartPreviewWindow/ViewGcodeBasic.cs
+++ b/PartPreviewWindow/ViewGcodeBasic.cs
@@ -305,17 +305,16 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
meshViewerWidget.Visible = (activeViewMode == PartViewMode.Layers3D);
meshViewerWidget.TrackballTumbleWidget.DrawGlContent += new EventHandler(TrackballTumbleWidget_DrawGlContent);
- viewControls2D = new ViewControls2D(ApplicationController.Instance.Theme.ViewControlsButtonFactory);
- AddChild(viewControls2D);
-
- viewControls2D.ResetView += (sender, e) =>
- {
- gcodeViewWidget.CenterPartInView();
- };
-
viewControls3D.ResetView += (sender, e) =>
{
- meshViewerWidget.ResetView();
+ if (gcodeDisplayWidget.Visible)
+ {
+ gcodeViewWidget.CenterPartInView();
+ }
+ else
+ {
+ meshViewerWidget.ResetView();
+ }
};
viewControls3D.ActiveButton = ViewControls3DButtons.Rotate;
@@ -325,13 +324,23 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
AddChild(viewControlsToggle);
viewControlsToggle.Visible = false;
- viewControls2D.translateButton.Click += (sender, e) =>
+ viewControls3D.TransformStateChanged += (s, e) =>
{
- gcodeViewWidget.TransformState = ViewGcodeWidget.ETransformState.Move;
- };
- viewControls2D.scaleButton.Click += (sender, e) =>
- {
- gcodeViewWidget.TransformState = ViewGcodeWidget.ETransformState.Scale;
+ switch (e.TransformMode)
+ {
+ case ViewControls3DButtons.Translate:
+ gcodeViewWidget.TransformState = ViewGcodeWidget.ETransformState.Move;
+ meshViewerWidget.TrackballTumbleWidget.TransformState = TrackBallController.MouseDownType.Translation;
+ break;
+ case ViewControls3DButtons.Scale:
+ gcodeViewWidget.TransformState = ViewGcodeWidget.ETransformState.Scale;
+ meshViewerWidget.TrackballTumbleWidget.TransformState = TrackBallController.MouseDownType.Scale;
+ break;
+ case ViewControls3DButtons.Rotate:
+ meshViewerWidget.TrackballTumbleWidget.TransformState = TrackBallController.MouseDownType.Rotation;
+ break;
+
+ }
};
expandModelOptions.CheckedStateChanged += expandModelOptions_CheckedStateChanged;
@@ -834,12 +843,10 @@ namespace MatterHackers.MatterControl.PartPreviewWindow
if (inLayers3DMode)
{
UserSettings.Instance.set("LayerViewDefault", "3D Layer");
- viewControls2D.Visible = false;
}
else
{
UserSettings.Instance.set("LayerViewDefault", "2D Layer");
- viewControls2D.Visible = true;
// HACK: Getting the Layer2D view to show content only works if CenterPartInView is called after the control is visible and after some cycles have passed
UiThread.RunOnIdle(gcodeViewWidget.CenterPartInView);