From ac41480e41b1ce46a0524935309ce3e4becf29e2 Mon Sep 17 00:00:00 2001 From: John Lewin Date: Thu, 19 Oct 2017 09:01:07 -0700 Subject: [PATCH] Remove ViewControlsBase --- ApplicationView/ThemeConfig.cs | 2 + MatterControl.csproj | 1 - PartPreviewWindow/PrinterTabBase.cs | 1 + PartPreviewWindow/ViewControls3D.cs | 22 ++++-- PartPreviewWindow/ViewControlsToggle.cs | 99 ------------------------- PartPreviewWindow/ViewGcodeBasic.cs | 6 +- 6 files changed, 24 insertions(+), 107 deletions(-) delete mode 100644 PartPreviewWindow/ViewControlsToggle.cs diff --git a/ApplicationView/ThemeConfig.cs b/ApplicationView/ThemeConfig.cs index c02173f9a..1d8e4dec0 100644 --- a/ApplicationView/ThemeConfig.cs +++ b/ApplicationView/ThemeConfig.cs @@ -114,6 +114,8 @@ namespace MatterHackers.MatterControl public RGBA_Bytes PrimaryTabFillColor { get; internal set; } public double ButtonHeight { get; internal set; } = 32; + public int OverlayAlpha { get; set; } = 50; + private EventHandler unregisterEvents; static ThemeConfig() diff --git a/MatterControl.csproj b/MatterControl.csproj index a85416cd3..6ab754fd1 100644 --- a/MatterControl.csproj +++ b/MatterControl.csproj @@ -269,7 +269,6 @@ - diff --git a/PartPreviewWindow/PrinterTabBase.cs b/PartPreviewWindow/PrinterTabBase.cs index 0f82e9955..f1446dda7 100644 --- a/PartPreviewWindow/PrinterTabBase.cs +++ b/PartPreviewWindow/PrinterTabBase.cs @@ -58,6 +58,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow viewControls3D = new ViewControls3D(theme, sceneContext.Scene.UndoBuffer) { + BackgroundColor = new RGBA_Bytes(0, 0, 0, theme.OverlayAlpha), PartSelectVisible = false, VAnchor = VAnchor.Top | VAnchor.Fit | VAnchor.Absolute, HAnchor = HAnchor.Left | HAnchor.Fit, diff --git a/PartPreviewWindow/ViewControls3D.cs b/PartPreviewWindow/ViewControls3D.cs index 43756a530..b41b31495 100644 --- a/PartPreviewWindow/ViewControls3D.cs +++ b/PartPreviewWindow/ViewControls3D.cs @@ -49,14 +49,27 @@ namespace MatterHackers.MatterControl.PartPreviewWindow PartSelect } + public enum PartViewMode + { + Layers2D, + Layers3D, + Model + } + + public class ViewModeChangedEventArgs : EventArgs + { + public PartViewMode ViewMode { get; set; } + } + public class TransformStateChangedEventArgs : EventArgs { public ViewControls3DButtons TransformMode { get; set; } } - public class ViewControls3D : ViewControlsBase + public class ViewControls3D : FlowLayoutWidget { public event EventHandler ResetView; + public event EventHandler ViewModeChanged; public event EventHandler TransformStateChanged; @@ -136,10 +149,6 @@ namespace MatterHackers.MatterControl.PartPreviewWindow public ViewControls3D(ThemeConfig theme, UndoBuffer undoBuffer) { - this.BackgroundColor = new RGBA_Bytes(0, 0, 0, overlayAlpha); - this.HAnchor |= HAnchor.Left; - this.VAnchor = VAnchor.Top; - string iconPath; var commonMargin = theme.ButtonSpacing; @@ -279,9 +288,12 @@ namespace MatterHackers.MatterControl.PartPreviewWindow buttonGroupB.Add(Layers2DButton); this.AddChild(Layers2DButton); + this.AddChild(new HorizontalSpacer()); + this.AddChild(this.OverflowMenu = new OverflowMenu(IconColor.White) { Name = "View3D Overflow Menu", + AlignToRightEdge = true, Margin = 3 }); diff --git a/PartPreviewWindow/ViewControlsToggle.cs b/PartPreviewWindow/ViewControlsToggle.cs deleted file mode 100644 index 18935aff3..000000000 --- a/PartPreviewWindow/ViewControlsToggle.cs +++ /dev/null @@ -1,99 +0,0 @@ -/* -Copyright (c) 2017, Lars Brubaker, John Lewin -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. -2. Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The views and conclusions contained in the software and documentation are those -of the authors and should not be interpreted as representing official policies, -either expressed or implied, of the FreeBSD Project. -*/ - -using System; -using System.IO; -using MatterHackers.Agg; -using MatterHackers.Agg.UI; - -namespace MatterHackers.MatterControl.PartPreviewWindow -{ - public class ViewControlsBase : FlowLayoutWidget - { - protected int buttonHeight = UserSettings.Instance.IsTouchScreen ? 40 : 20; - public const int overlayAlpha = 50; - } - - public enum PartViewMode - { - Layers2D, - Layers3D, - Model - } - - public class ViewModeChangedEventArgs : EventArgs - { - public PartViewMode ViewMode { get; set; } - } - - public class ViewControlsToggle : ViewControlsBase - { - public event EventHandler ViewModeChanged; - - public ViewControlsToggle(TextImageButtonFactory buttonFactory, PartViewMode initialViewMode) - { - this.BackgroundColor = new RGBA_Bytes(0, 0, 0, overlayAlpha); - - var layers2DButton = buttonFactory.GenerateRadioButton("", Path.Combine("ViewTransformControls", "2d.png")); - layers2DButton.Name = "Layers2D Button"; - layers2DButton.Margin = new BorderDouble(3); - layers2DButton.Click += SwitchModes_Click; - this.AddChild(layers2DButton); - - var layers3DButton = buttonFactory.GenerateRadioButton("", Path.Combine("ViewTransformControls", "3d.png")); - layers3DButton.Click += SwitchModes_Click; - layers3DButton.Margin = new BorderDouble(3); - - if (!UserSettings.Instance.IsTouchScreen) - { - this.AddChild(layers3DButton); - - // Change to always start in 3D view on desktop - layers3DButton.Checked = initialViewMode == PartViewMode.Layers3D; - } - else - { - layers2DButton.Checked = true; - } - - this.Margin = new BorderDouble(5, 5, 200, 5); - this.HAnchor |= HAnchor.Right; - this.VAnchor = VAnchor.Top; - } - - private void SwitchModes_Click(object sender, MouseEventArgs e) - { - var widget = sender as GuiWidget; - ViewModeChanged?.Invoke(this, new ViewModeChangedEventArgs() - { - ViewMode = widget.Name == "Layers2D Button" ? PartViewMode.Layers2D : PartViewMode.Layers3D - }); - } - } -} \ No newline at end of file diff --git a/PartPreviewWindow/ViewGcodeBasic.cs b/PartPreviewWindow/ViewGcodeBasic.cs index e38d0f378..4f801b236 100644 --- a/PartPreviewWindow/ViewGcodeBasic.cs +++ b/PartPreviewWindow/ViewGcodeBasic.cs @@ -43,12 +43,14 @@ namespace MatterHackers.MatterControl.PartPreviewWindow private TextWidget gcodeProcessingStateInfoText; private PrinterConfig printer; private ViewControls3D viewControls3D; + private ThemeConfig theme; - public ViewGcodeBasic(PrinterConfig printer, BedConfig sceneContext, ViewControls3D viewControls3D) + public ViewGcodeBasic(PrinterConfig printer, BedConfig sceneContext, ViewControls3D viewControls3D, ThemeConfig theme) { this.printer = printer; this.sceneContext = sceneContext; this.viewControls3D = viewControls3D; + this.theme = theme; CreateAndAddChildren(printer); @@ -97,7 +99,7 @@ namespace MatterHackers.MatterControl.PartPreviewWindow { Margin = new BorderDouble(0, 0, 35, 5), Padding = new BorderDouble(10), - BackgroundColor = new RGBA_Bytes(0, 0, 0, ViewControlsBase.overlayAlpha), + BackgroundColor = new RGBA_Bytes(0, 0, 0, theme.OverlayAlpha), HAnchor = HAnchor.Right | HAnchor.Absolute, VAnchor = VAnchor.Top | VAnchor.Fit, Width = 150