From 99bc5e9eff07dbe54ae55b8a48fa127dac43696f Mon Sep 17 00:00:00 2001 From: Robin Date: Fri, 8 Jun 2018 14:55:14 +0200 Subject: [PATCH] An in between step for fixing the field values. --- .../Drawing/ArrowContainer.cs | 61 ++++---- .../Drawing/BitmapContainer.cs | 24 ++-- .../Drawing/CropContainer.cs | 2 +- .../Drawing/DrawableContainer.cs | 10 +- .../Drawing/EllipseContainer.cs | 20 +-- .../Drawing/Fields/FieldAggregator.cs | 9 +- .../Drawing/Fields/FieldType.cs | 66 ++------- .../Drawing/Fields/FieldTypes.cs | 66 +++++++++ .../Drawing/FilterContainer.cs | 14 +- .../Drawing/Filters/BlurFilter.cs | 6 +- .../Drawing/Filters/BrightnessFilter.cs | 4 +- .../Drawing/Filters/HighlightFilter.cs | 4 +- .../Drawing/Filters/MagnifierFilter.cs | 4 +- .../Drawing/Filters/PixelizationFilter.cs | 4 +- .../Drawing/FreehandContainer.cs | 12 +- .../Drawing/HighlightContainer.cs | 6 +- .../Drawing/LineContainer.cs | 14 +- .../Drawing/ObfuscateContainer.cs | 6 +- .../Drawing/RectangleContainer.cs | 20 +-- .../Drawing/SpeechbubbleContainer.cs | 38 ++--- .../Drawing/StepLabelContainer.cs | 12 +- .../Drawing/Surface.cs | 16 +-- .../Drawing/TextContainer.cs | 56 ++++---- .../EditorConfigurationExtensions.cs | 133 +++++++++++++----- .../Forms/ImageEditorForm.cs | 84 +++++------ .../Greenshot.Addon.LegacyEditor.csproj | 7 + .../Interfaces/Drawing/IFieldType.cs | 6 +- 27 files changed, 407 insertions(+), 297 deletions(-) create mode 100644 src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldTypes.cs diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/ArrowContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/ArrowContainer.cs index 05cd8c3fa..90904118a 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/ArrowContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/ArrowContainer.cs @@ -59,25 +59,26 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { get { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - if (lineThickness > 0) - { - using (var pen = new Pen(Color.White)) - { - pen.Width = lineThickness; - SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldType.ARROWHEADS), pen); - using (var path = new GraphicsPath()) - { - path.AddLine(Left, Top, Left + Width, Top + Height); - using (var matrix = new Matrix()) - { - NativeRectFloat drawingBounds = path.GetBounds(matrix, pen); - return drawingBounds.Inflate(2, 2).Round(); - } - } - } - } - return NativeRect.Empty; + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + if (lineThickness <= 0) + { + return NativeRect.Empty; + } + + using (var pen = new Pen(Color.White)) + { + pen.Width = lineThickness; + SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldTypes.ARROWHEADS), pen); + using (var path = new GraphicsPath()) + { + path.AddLine(Left, Top, Left + Width, Top + Height); + using (var matrix = new Matrix()) + { + NativeRectFloat drawingBounds = path.GetBounds(matrix, pen); + return drawingBounds.Inflate(2, 2).Round(); + } + } + } } } @@ -86,17 +87,17 @@ namespace Greenshot.Addon.LegacyEditor.Drawing /// protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); - AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent); - AddField(GetType(), FieldType.SHADOW, true); - AddField(GetType(), FieldType.ARROWHEADS, ArrowHeadCombination.END_POINT); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 2); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent); + AddField(GetType(), FieldTypes.SHADOW, true); + AddField(GetType(), FieldTypes.ARROWHEADS, ArrowHeadCombination.END_POINT); } public override void Draw(Graphics graphics, RenderMode rm) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); if (lineThickness > 0) { @@ -104,8 +105,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.None; - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - var heads = (ArrowHeadCombination) GetFieldValue(FieldType.ARROWHEADS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var heads = (ArrowHeadCombination) GetFieldValue(FieldTypes.ARROWHEADS); if (lineThickness > 0) { if (shadow) @@ -155,13 +156,13 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public override bool ClickableAt(int x, int y) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS) + 10; + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 10; if (lineThickness > 0) { using (var pen = new Pen(Color.White)) { pen.Width = lineThickness; - SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldType.ARROWHEADS), pen); + SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldTypes.ARROWHEADS), pen); using (var path = new GraphicsPath()) { path.AddLine(Left, Top, Left + Width, Top + Height); diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/BitmapContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/BitmapContainer.cs index 732104389..12d62724b 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/BitmapContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/BitmapContainer.cs @@ -84,7 +84,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing DisposeImage(); DisposeShadow(); _bitmap = value.CloneBitmap(); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); CheckShadow(shadow); if (!shadow) { @@ -157,23 +157,25 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { - AddField(GetType(), FieldType.SHADOW, false); + AddField(GetType(), FieldTypes.SHADOW, false); } protected void BitmapContainer_OnFieldChanged(object sender, FieldChangedEventArgs e) { - if (sender.Equals(this)) - { - if (FieldType.SHADOW.Equals(e.Field.FieldType)) - { - ChangeShadowField(); - } - } + if (!sender.Equals(this)) + { + return; + } + + if (FieldTypes.SHADOW.Equals(e.Field.FieldType)) + { + ChangeShadowField(); + } } public void ChangeShadowField() { - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); if (shadow) { CheckShadow(true); @@ -246,7 +248,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { if (_bitmap != null) { - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.InterpolationMode = InterpolationMode.HighQualityBicubic; graphics.CompositingQuality = CompositingQuality.HighQuality; diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/CropContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/CropContainer.cs index 7b03a1e1f..0ff4449c2 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/CropContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/CropContainer.cs @@ -73,7 +73,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { - AddField(GetType(), FieldType.FLAGS, FieldFlag.CONFIRMABLE); + AddField(GetType(), FieldTypes.FLAGS, FieldFlag.CONFIRMABLE); } public override void Invalidate() diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs index e6b4c6755..3be6d060b 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/DrawableContainer.cs @@ -292,14 +292,14 @@ namespace Greenshot.Addon.LegacyEditor.Drawing } // Take a base safetymargin var lineThickness = 5; - if (HasField(FieldType.LINE_THICKNESS)) + if (HasField(FieldTypes.LINE_THICKNESS)) { - lineThickness += GetFieldValueAsInt(FieldType.LINE_THICKNESS); + lineThickness += GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); } var offset = lineThickness / 2; var shadow = 0; - if (accountForShadowChange || HasField(FieldType.SHADOW) && GetFieldValueAsBool(FieldType.SHADOW)) + if (accountForShadowChange || HasField(FieldTypes.SHADOW) && GetFieldValueAsBool(FieldTypes.SHADOW)) { accountForShadowChange = false; shadow += 10; @@ -322,7 +322,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); if (horizontalAlignment == HorizontalAlignment.Left) { Left = lineThickness / 2; @@ -644,7 +644,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public void HandleFieldChanged(object sender, FieldChangedEventArgs e) { Log.Debug().WriteLine("Field {0} changed", e.Field.FieldType); - if (Equals(e.Field.FieldType, FieldType.SHADOW)) + if (Equals(e.Field.FieldType, FieldTypes.SHADOW)) { accountForShadowChange = true; } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/EllipseContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/EllipseContainer.cs index 53981c94c..e3c2d3671 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/EllipseContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/EllipseContainer.cs @@ -48,10 +48,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); - AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent); - AddField(GetType(), FieldType.SHADOW, true); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 2); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent); + AddField(GetType(), FieldTypes.SHADOW, true); } public override void Draw(Graphics graphics, RenderMode renderMode) @@ -61,10 +61,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.None; - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); DrawEllipse(rect, graphics, renderMode, lineThickness, lineColor, fillColor, shadow); } @@ -140,8 +140,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public override bool ClickableAt(int x, int y) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS) + 10; - var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 10; + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); return EllipseClickableAt(rect, lineThickness, fillColor, x, y); } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs index ce252ddaa..194caee41 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldAggregator.cs @@ -56,7 +56,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields public FieldAggregator(ISurface parent) { - foreach (var fieldType in FieldType.Values) + foreach (var fieldType in FieldTypes.Values) { var field = new Field(fieldType, GetType()); AddField(field); @@ -199,7 +199,12 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields return returnFields ?? new List(); } - public void OwnPropertyChanged(object sender, PropertyChangedEventArgs ea) + /// + /// This is called when a property changes + /// + /// object + /// PropertyChangedEventArgs + public void OwnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs) { var field = (IField) sender; if (_internalUpdateRunning || field.Value == null) diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldType.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldType.cs index b43cb4f38..126f51fb2 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldType.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldType.cs @@ -35,61 +35,21 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields /// (The additional value is why this is not an enum) /// [Serializable] - public class FieldType : IFieldType + public class FieldType : IFieldType { - public static readonly IFieldType ARROWHEADS = new FieldType("ARROWHEADS"); - public static readonly IFieldType BLUR_RADIUS = new FieldType("BLUR_RADIUS"); - public static readonly IFieldType BRIGHTNESS = new FieldType("BRIGHTNESS"); - public static readonly IFieldType FILL_COLOR = new FieldType("FILL_COLOR"); - public static readonly IFieldType FONT_BOLD = new FieldType("FONT_BOLD"); - public static readonly IFieldType FONT_FAMILY = new FieldType("FONT_FAMILY"); - public static readonly IFieldType FONT_ITALIC = new FieldType("FONT_ITALIC"); - public static readonly IFieldType FONT_SIZE = new FieldType("FONT_SIZE"); - public static readonly IFieldType TEXT_HORIZONTAL_ALIGNMENT = new FieldType("TEXT_HORIZONTAL_ALIGNMENT"); - public static readonly IFieldType TEXT_VERTICAL_ALIGNMENT = new FieldType("TEXT_VERTICAL_ALIGNMENT"); - public static readonly IFieldType HIGHLIGHT_COLOR = new FieldType("HIGHLIGHT_COLOR"); - public static readonly IFieldType LINE_COLOR = new FieldType("LINE_COLOR"); - public static readonly IFieldType LINE_THICKNESS = new FieldType("LINE_THICKNESS"); - public static readonly IFieldType MAGNIFICATION_FACTOR = new FieldType("MAGNIFICATION_FACTOR"); - public static readonly IFieldType PIXEL_SIZE = new FieldType("PIXEL_SIZE"); - public static readonly IFieldType PREVIEW_QUALITY = new FieldType("PREVIEW_QUALITY"); - public static readonly IFieldType SHADOW = new FieldType("SHADOW"); - public static readonly IFieldType PREPARED_FILTER_OBFUSCATE = new FieldType("PREPARED_FILTER_OBFUSCATE"); - public static readonly IFieldType PREPARED_FILTER_HIGHLIGHT = new FieldType("PREPARED_FILTER_HIGHLIGHT"); - public static readonly IFieldType FLAGS = new FieldType("FLAGS"); - - public static IFieldType[] Values = + internal FieldType(string name) { - ARROWHEADS, - BLUR_RADIUS, - BRIGHTNESS, - FILL_COLOR, - FONT_BOLD, - FONT_FAMILY, - FONT_ITALIC, - FONT_SIZE, - TEXT_HORIZONTAL_ALIGNMENT, - TEXT_VERTICAL_ALIGNMENT, - HIGHLIGHT_COLOR, - LINE_COLOR, - LINE_THICKNESS, - MAGNIFICATION_FACTOR, - PIXEL_SIZE, - PREVIEW_QUALITY, - SHADOW, - PREPARED_FILTER_OBFUSCATE, - PREPARED_FILTER_HIGHLIGHT, - FLAGS - }; - - private FieldType(string name) - { - Name = name; + Name = name; } - public string Name { get; set; } + public string Name { get; } - public override string ToString() + /// + /// This returns the type which the value has + /// + public Type ValueType { get; }= typeof(T); + + public override string ToString() { return Name; } @@ -109,7 +69,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields public override bool Equals(object obj) { - var other = obj as FieldType; + var other = obj as FieldType; if (other == null) { return false; @@ -117,12 +77,12 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields return Equals(Name, other.Name); } - public static bool operator ==(FieldType a, FieldType b) + public static bool operator ==(FieldType a, FieldType b) { return Equals(a, b); } - public static bool operator !=(FieldType a, FieldType b) + public static bool operator !=(FieldType a, FieldType b) { return !Equals(a, b); } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldTypes.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldTypes.cs new file mode 100644 index 000000000..b1147407c --- /dev/null +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Fields/FieldTypes.cs @@ -0,0 +1,66 @@ +#region Greenshot GNU General Public License + +// Greenshot - a free and open source screenshot tool +// Copyright (C) 2007-2018 Thomas Braun, Jens Klingen, Robin Krom +// +// For more information see: http://getgreenshot.org/ +// The Greenshot project is hosted on GitHub https://github.com/greenshot/greenshot +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 1 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +#endregion + +#region Usings + +using System; +using System.Drawing; +using Greenshot.Addons.Interfaces.Drawing; + +#endregion + +namespace Greenshot.Addon.LegacyEditor.Drawing.Fields +{ + /// + /// Defines all FieldTypes + their default value. + /// (The additional value is why this is not an enum) + /// + public static class FieldTypes + { + public static readonly IFieldType ARROWHEADS = new FieldType("ARROWHEADS"); + public static readonly IFieldType BLUR_RADIUS = new FieldType("BLUR_RADIUS"); + public static readonly IFieldType BRIGHTNESS = new FieldType("BRIGHTNESS"); + public static readonly IFieldType FILL_COLOR = new FieldType("FILL_COLOR"); + public static readonly IFieldType FONT_BOLD = new FieldType("FONT_BOLD"); + public static readonly IFieldType FONT_FAMILY = new FieldType("FONT_FAMILY"); + public static readonly IFieldType FONT_ITALIC = new FieldType("FONT_ITALIC"); + public static readonly IFieldType FONT_SIZE = new FieldType("FONT_SIZE"); + public static readonly IFieldType TEXT_HORIZONTAL_ALIGNMENT = new FieldType("TEXT_HORIZONTAL_ALIGNMENT"); + public static readonly IFieldType TEXT_VERTICAL_ALIGNMENT = new FieldType("TEXT_VERTICAL_ALIGNMENT"); + public static readonly IFieldType HIGHLIGHT_COLOR = new FieldType("HIGHLIGHT_COLOR"); + public static readonly IFieldType LINE_COLOR = new FieldType("LINE_COLOR"); + public static readonly IFieldType LINE_THICKNESS = new FieldType("LINE_THICKNESS"); + public static readonly IFieldType MAGNIFICATION_FACTOR = new FieldType("MAGNIFICATION_FACTOR"); + public static readonly IFieldType PIXEL_SIZE = new FieldType("PIXEL_SIZE"); + public static readonly IFieldType PREVIEW_QUALITY = new FieldType("PREVIEW_QUALITY"); + public static readonly IFieldType SHADOW = new FieldType("SHADOW"); + public static readonly IFieldType PREPARED_FILTER_OBFUSCATE = new FieldType("PREPARED_FILTER_OBFUSCATE"); + public static readonly IFieldType PREPARED_FILTER_HIGHLIGHT = new FieldType("PREPARED_FILTER_HIGHLIGHT"); + public static readonly IFieldType FLAGS = new FieldType("FLAGS"); + + public static IFieldType[] Values = + { + ARROWHEADS, BLUR_RADIUS, BRIGHTNESS, FILL_COLOR, FONT_BOLD, FONT_FAMILY, FONT_ITALIC, FONT_SIZE, TEXT_HORIZONTAL_ALIGNMENT, TEXT_VERTICAL_ALIGNMENT, HIGHLIGHT_COLOR, LINE_COLOR, LINE_THICKNESS, MAGNIFICATION_FACTOR, PIXEL_SIZE, PREVIEW_QUALITY, SHADOW, PREPARED_FILTER_OBFUSCATE, PREPARED_FILTER_HIGHLIGHT, FLAGS + }; + } +} \ No newline at end of file diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/FilterContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/FilterContainer.cs index 707cd7fe7..cefdc51a0 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/FilterContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/FilterContainer.cs @@ -65,7 +65,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public PreparedFilter Filter { - get { return (PreparedFilter) GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT); } + get { return (PreparedFilter) GetFieldValue(FieldTypes.PREPARED_FILTER_HIGHLIGHT); } } protected override void OnDeserialized(StreamingContext streamingContext) @@ -81,16 +81,16 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 0); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); - AddField(GetType(), FieldType.SHADOW, false); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 0); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.SHADOW, false); } public override void Draw(Graphics graphics, RenderMode rm) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor); if (lineVisible) { diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BlurFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BlurFilter.cs index 1df787974..966716f33 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BlurFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BlurFilter.cs @@ -42,8 +42,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters public BlurFilter(DrawableContainer parent) : base(parent) { - AddField(GetType(), FieldType.BLUR_RADIUS, 3); - AddField(GetType(), FieldType.PREVIEW_QUALITY, 1.0d); + AddField(GetType(), FieldTypes.BLUR_RADIUS, 3); + AddField(GetType(), FieldTypes.PREVIEW_QUALITY, 1.0d); } public double PreviewQuality @@ -58,7 +58,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters public override void Apply(Graphics graphics, Bitmap applyBitmap, NativeRect rect, RenderMode renderMode) { - var blurRadius = GetFieldValueAsInt(FieldType.BLUR_RADIUS); + var blurRadius = GetFieldValueAsInt(FieldTypes.BLUR_RADIUS); var applyRect = BitmapHelper.CreateIntersectRectangle(applyBitmap.Size, rect, Invert); if (applyRect.Width == 0 || applyRect.Height == 0) { diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BrightnessFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BrightnessFilter.cs index 59ab7cba6..9c82ef2f7 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BrightnessFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/BrightnessFilter.cs @@ -40,7 +40,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters { public BrightnessFilter(DrawableContainer parent) : base(parent) { - AddField(GetType(), FieldType.BRIGHTNESS, 0.9d); + AddField(GetType(), FieldTypes.BRIGHTNESS, 0.9d); } /// @@ -66,7 +66,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters graphics.SetClip(applyRect); graphics.ExcludeClip(rect); } - var brightness = GetFieldValueAsFloat(FieldType.BRIGHTNESS); + var brightness = GetFieldValueAsFloat(FieldTypes.BRIGHTNESS); using (var ia = AdjustEffect.CreateAdjustAttributes(brightness, 1f, 1f)) { graphics.DrawImage(applyBitmap, applyRect, applyRect.X, applyRect.Y, applyRect.Width, applyRect.Height, GraphicsUnit.Pixel, ia); diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/HighlightFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/HighlightFilter.cs index e9c29a3a7..bc545895b 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/HighlightFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/HighlightFilter.cs @@ -41,7 +41,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters { public HighlightFilter(DrawableContainer parent) : base(parent) { - AddField(GetType(), FieldType.FILL_COLOR, Color.Yellow); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.Yellow); } /// @@ -68,7 +68,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters } using (var fastBitmap = FastBitmapFactory.CreateCloneOf(applyBitmap, area: applyRect)) { - var highlightColor = GetFieldValueAsColor(FieldType.FILL_COLOR); + var highlightColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); Parallel.For(fastBitmap.Top, fastBitmap.Bottom, y => { unsafe diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/MagnifierFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/MagnifierFilter.cs index 0cb921149..8453a8512 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/MagnifierFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/MagnifierFilter.cs @@ -40,7 +40,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters { public MagnifierFilter(DrawableContainer parent) : base(parent) { - AddField(GetType(), FieldType.MAGNIFICATION_FACTOR, 2); + AddField(GetType(), FieldTypes.MAGNIFICATION_FACTOR, 2); } public override void Apply(Graphics graphics, Bitmap applyBitmap, NativeRect rect, RenderMode renderMode) @@ -52,7 +52,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters // nothing to do return; } - var magnificationFactor = GetFieldValueAsInt(FieldType.MAGNIFICATION_FACTOR); + var magnificationFactor = GetFieldValueAsInt(FieldTypes.MAGNIFICATION_FACTOR); var state = graphics.Save(); if (Invert) { diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/PixelizationFilter.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/PixelizationFilter.cs index c252d1920..d230c7184 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/PixelizationFilter.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Filters/PixelizationFilter.cs @@ -45,12 +45,12 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters { public PixelizationFilter(DrawableContainer parent) : base(parent) { - AddField(GetType(), FieldType.PIXEL_SIZE, 5); + AddField(GetType(), FieldTypes.PIXEL_SIZE, 5); } public override void Apply(Graphics graphics, Bitmap applyBitmap, NativeRect rect, RenderMode renderMode) { - var pixelSize = GetFieldValueAsInt(FieldType.PIXEL_SIZE); + var pixelSize = GetFieldValueAsInt(FieldTypes.PIXEL_SIZE); BitmapHelper.CreateIntersectRectangle(applyBitmap.Size, rect, Invert); if (pixelSize <= 1 || rect.Width == 0 || rect.Height == 0) { diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs index 07320270b..5e8e71bee 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/FreehandContainer.cs @@ -58,8 +58,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { } protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 3); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 3); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); } public override void Transform(Matrix matrix) @@ -183,8 +183,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.HighQuality; - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); using (var pen = new Pen(lineColor)) { pen.Width = lineThickness; if (!(pen.Width > 0)) @@ -238,7 +238,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { public override NativeRect DrawingBounds { get { if (!myBounds.IsEmpty) { - int lineThickness = Math.Max(10, GetFieldValueAsInt(FieldType.LINE_THICKNESS)); + int lineThickness = Math.Max(10, GetFieldValueAsInt(FieldTypes.LINE_THICKNESS)); int safetymargin = 10; return new NativeRect(myBounds.Left + Left - (safetymargin+lineThickness), myBounds.Top + Top - (safetymargin+lineThickness), myBounds.Width + 2*(lineThickness+safetymargin), myBounds.Height + 2*(lineThickness+safetymargin)); } @@ -274,7 +274,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { public override bool ClickableAt(int x, int y) { bool returnValue = base.ClickableAt(x, y); if (returnValue) { - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); using (var pen = new Pen(Color.White)) { pen.Width = lineThickness + 10; lock (_freehandPathLock) diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/HighlightContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/HighlightContainer.cs index 76d9ef7a4..8a5ce651a 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/HighlightContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/HighlightContainer.cs @@ -50,7 +50,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { base.InitializeFields(); - AddField(GetType(), FieldType.PREPARED_FILTER_HIGHLIGHT, PreparedFilter.TEXT_HIGHTLIGHT); + AddField(GetType(), FieldTypes.PREPARED_FILTER_HIGHLIGHT, PreparedFilter.TEXT_HIGHTLIGHT); } protected override void OnDeserialized(StreamingContext context) @@ -70,7 +70,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - if (Equals(e.Field.FieldType, FieldType.PREPARED_FILTER_HIGHLIGHT)) + if (Equals(e.Field.FieldType, FieldTypes.PREPARED_FILTER_HIGHLIGHT)) { ConfigurePreparedFilters(); } @@ -78,7 +78,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing private void ConfigurePreparedFilters() { - var preset = (PreparedFilter) GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT); + var preset = (PreparedFilter) GetFieldValue(FieldTypes.PREPARED_FILTER_HIGHLIGHT); while (Filters.Count > 0) { Remove(Filters[0]); diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/LineContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/LineContainer.cs index 737349526..a2599496a 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/LineContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/LineContainer.cs @@ -51,9 +51,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); - AddField(GetType(), FieldType.SHADOW, true); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 2); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.SHADOW, true); } protected override void OnDeserialized(StreamingContext context) @@ -74,9 +74,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing graphics.CompositingQuality = CompositingQuality.HighQuality; graphics.PixelOffsetMode = PixelOffsetMode.None; - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); if (lineThickness > 0) { @@ -112,7 +112,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public override bool ClickableAt(int x, int y) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS) + 5; + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 5; if (lineThickness > 0) { using (var pen = new Pen(Color.White)) diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/ObfuscateContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/ObfuscateContainer.cs index 40564d448..48c5b19e8 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/ObfuscateContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/ObfuscateContainer.cs @@ -47,7 +47,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { base.InitializeFields(); - AddField(GetType(), FieldType.PREPARED_FILTER_OBFUSCATE, PreparedFilter.PIXELIZE); + AddField(GetType(), FieldTypes.PREPARED_FILTER_OBFUSCATE, PreparedFilter.PIXELIZE); } protected override void OnDeserialized(StreamingContext context) @@ -66,7 +66,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { if (sender.Equals(this)) { - if (Equals(e.Field.FieldType, FieldType.PREPARED_FILTER_OBFUSCATE)) + if (Equals(e.Field.FieldType, FieldTypes.PREPARED_FILTER_OBFUSCATE)) { ConfigurePreparedFilters(); } @@ -75,7 +75,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing private void ConfigurePreparedFilters() { - var preset = (PreparedFilter) GetFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE); + var preset = (PreparedFilter) GetFieldValue(FieldTypes.PREPARED_FILTER_OBFUSCATE); while (Filters.Count > 0) { Remove(Filters[0]); diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs index 80a58a1ce..009fa0e1a 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/RectangleContainer.cs @@ -55,17 +55,17 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { } protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); - AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent); - AddField(GetType(), FieldType.SHADOW, true); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 2); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent); + AddField(GetType(), FieldTypes.SHADOW, true); } public override void Draw(Graphics graphics, RenderMode rm) { - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR, Color.Red); - Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR, Color.Transparent); - bool shadow = GetFieldValueAsBool(FieldType.SHADOW); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR, Color.Red); + Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR, Color.Transparent); + bool shadow = GetFieldValueAsBool(FieldTypes.SHADOW); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); DrawRectangle(rect, graphics, rm, lineThickness, lineColor, fillColor, shadow); @@ -126,8 +126,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { } public override bool ClickableAt(int x, int y) { var rect = new NativeRect(Left, Top, Width, Height).Normalize(); - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS) + 10; - Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 10; + Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); return RectangleClickableAt(rect, lineThickness, fillColor, x, y); } diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs index aac05fca3..15fed8338 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/SpeechbubbleContainer.cs @@ -60,9 +60,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { if (Status != EditStatus.UNDRAWN) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); using (var pen = new Pen(lineColor, lineThickness)) { var inflateValue = lineThickness + 2 + (shadow ? 6 : 0); @@ -84,16 +84,16 @@ namespace Greenshot.Addon.LegacyEditor.Drawing /// protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.LINE_COLOR, Color.Blue); - AddField(GetType(), FieldType.SHADOW, false); - AddField(GetType(), FieldType.FONT_ITALIC, false); - AddField(GetType(), FieldType.FONT_BOLD, true); - AddField(GetType(), FieldType.FILL_COLOR, Color.White); - AddField(GetType(), FieldType.FONT_FAMILY, FontFamily.GenericSansSerif.Name); - AddField(GetType(), FieldType.FONT_SIZE, 20f); - AddField(GetType(), FieldType.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center); - AddField(GetType(), FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 2); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Blue); + AddField(GetType(), FieldTypes.SHADOW, false); + AddField(GetType(), FieldTypes.FONT_ITALIC, false); + AddField(GetType(), FieldTypes.FONT_BOLD, true); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.White); + AddField(GetType(), FieldTypes.FONT_FAMILY, FontFamily.GenericSansSerif.Name); + AddField(GetType(), FieldTypes.FONT_SIZE, 20f); + AddField(GetType(), FieldTypes.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center); + AddField(GetType(), FieldTypes.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center); } /// @@ -221,10 +221,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing graphics.PixelOffsetMode = PixelOffsetMode.None; graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); - var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); - var shadow = GetFieldValueAsBool(FieldType.SHADOW); - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); + var shadow = GetFieldValueAsBool(FieldTypes.SHADOW); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); @@ -334,8 +334,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing var clickedPoint = new NativePoint(x, y); if (Status != EditStatus.UNDRAWN) { - var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); + var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); using (var pen = new Pen(lineColor, lineThickness)) { using (var bubblePath = CreateBubble(lineThickness)) diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/StepLabelContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/StepLabelContainer.cs index 2e14d943b..b2ef862f9 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/StepLabelContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/StepLabelContainer.cs @@ -125,9 +125,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing /// protected override void InitializeFields() { - AddField(GetType(), FieldType.FILL_COLOR, Color.DarkRed); - AddField(GetType(), FieldType.LINE_COLOR, Color.White); - AddField(GetType(), FieldType.FLAGS, FieldFlag.COUNTER); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.DarkRed); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.White); + AddField(GetType(), FieldTypes.FLAGS, FieldFlag.COUNTER); } /// @@ -193,8 +193,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit; var text = ((Surface) Parent).CountStepLabels(this).ToString(); var rect = new NativeRect(Left, Top, Width, Height).Normalize(); - var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); if (_drawAsRectangle) { RectangleContainer.DrawRectangle(rect, graphics, rm, 0, Color.Transparent, fillColor, false); @@ -215,7 +215,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public override bool ClickableAt(int x, int y) { var rect = new NativeRect(Left, Top, Width, Height).Normalize(); - var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); + var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); if (_drawAsRectangle) { return RectangleContainer.RectangleClickableAt(rect, 0, fillColor, x, y); diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs index 690931f1e..50d7ed974 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/Surface.cs @@ -1941,14 +1941,14 @@ namespace Greenshot.Addon.LegacyEditor.Drawing bool italic, bool bold, bool shadow, int borderSize, Color color, Color fillColor) { var textContainer = new TextContainer(this) {Text = text}; - textContainer.SetFieldValue(FieldType.FONT_FAMILY, family.Name); - textContainer.SetFieldValue(FieldType.FONT_BOLD, bold); - textContainer.SetFieldValue(FieldType.FONT_ITALIC, italic); - textContainer.SetFieldValue(FieldType.FONT_SIZE, size); - textContainer.SetFieldValue(FieldType.FILL_COLOR, fillColor); - textContainer.SetFieldValue(FieldType.LINE_COLOR, color); - textContainer.SetFieldValue(FieldType.LINE_THICKNESS, borderSize); - textContainer.SetFieldValue(FieldType.SHADOW, shadow); + textContainer.SetFieldValue(FieldTypes.FONT_FAMILY, family.Name); + textContainer.SetFieldValue(FieldTypes.FONT_BOLD, bold); + textContainer.SetFieldValue(FieldTypes.FONT_ITALIC, italic); + textContainer.SetFieldValue(FieldTypes.FONT_SIZE, size); + textContainer.SetFieldValue(FieldTypes.FILL_COLOR, fillColor); + textContainer.SetFieldValue(FieldTypes.LINE_COLOR, color); + textContainer.SetFieldValue(FieldTypes.LINE_THICKNESS, borderSize); + textContainer.SetFieldValue(FieldTypes.SHADOW, shadow); // Make sure the Text fits textContainer.FitToText(); // Align to Surface diff --git a/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs b/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs index dd8828c26..8b8bad73a 100644 --- a/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs +++ b/src/Greenshot.Addon.LegacyEditor/Drawing/TextContainer.cs @@ -95,16 +95,16 @@ namespace Greenshot.Addon.LegacyEditor.Drawing protected override void InitializeFields() { - AddField(GetType(), FieldType.LINE_THICKNESS, 2); - AddField(GetType(), FieldType.LINE_COLOR, Color.Red); - AddField(GetType(), FieldType.SHADOW, true); - AddField(GetType(), FieldType.FONT_ITALIC, false); - AddField(GetType(), FieldType.FONT_BOLD, false); - AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent); - AddField(GetType(), FieldType.FONT_FAMILY, FontFamily.GenericSansSerif.Name); - AddField(GetType(), FieldType.FONT_SIZE, 11f); - AddField(GetType(), FieldType.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center); - AddField(GetType(), FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center); + AddField(GetType(), FieldTypes.LINE_THICKNESS, 2); + AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red); + AddField(GetType(), FieldTypes.SHADOW, true); + AddField(GetType(), FieldTypes.FONT_ITALIC, false); + AddField(GetType(), FieldTypes.FONT_BOLD, false); + AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent); + AddField(GetType(), FieldTypes.FONT_FAMILY, FontFamily.GenericSansSerif.Name); + AddField(GetType(), FieldTypes.FONT_SIZE, 11f); + AddField(GetType(), FieldTypes.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center); + AddField(GetType(), FieldTypes.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center); } /// @@ -169,7 +169,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing public void FitToText() { Size textSize = TextRenderer.MeasureText(text, _font); - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); Width = textSize.Width + lineThickness; Height = textSize.Height + lineThickness; } @@ -288,7 +288,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - Color lc = GetFieldValueAsColor(FieldType.LINE_COLOR); + Color lc = GetFieldValueAsColor(FieldTypes.LINE_COLOR); if (lc.R > 203 && lc.G > 203 && lc.B > 203) { _textBox.BackColor = Color.FromArgb(51, 51, 51); @@ -323,9 +323,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing int pixelsAfter = rect.Width * rect.Height; float factor = pixelsAfter / (float)pixelsBefore; - float fontSize = GetFieldValueAsFloat(FieldType.FONT_SIZE); + float fontSize = GetFieldValueAsFloat(FieldTypes.FONT_SIZE); fontSize *= factor; - SetFieldValue(FieldType.FONT_SIZE, fontSize); + SetFieldValue(FieldTypes.FONT_SIZE, fontSize); UpdateFormat(); } @@ -382,10 +382,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - string fontFamily = GetFieldValueAsString(FieldType.FONT_FAMILY); - bool fontBold = GetFieldValueAsBool(FieldType.FONT_BOLD); - bool fontItalic = GetFieldValueAsBool(FieldType.FONT_ITALIC); - float fontSize = GetFieldValueAsFloat(FieldType.FONT_SIZE); + string fontFamily = GetFieldValueAsString(FieldTypes.FONT_FAMILY); + bool fontBold = GetFieldValueAsBool(FieldTypes.FONT_BOLD); + bool fontItalic = GetFieldValueAsBool(FieldTypes.FONT_ITALIC); + float fontSize = GetFieldValueAsFloat(FieldTypes.FONT_SIZE); try { var newFont = CreateFont(fontFamily, fontBold, fontItalic, fontSize); @@ -399,7 +399,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing try { fontFamily = FontFamily.GenericSansSerif.Name; - SetFieldValue(FieldType.FONT_FAMILY, fontFamily); + SetFieldValue(FieldTypes.FONT_FAMILY, fontFamily); var newFont = CreateFont(fontFamily, fontBold, fontItalic, fontSize); _font?.Dispose(); _font = newFont; @@ -421,8 +421,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing private void UpdateAlignment() { - _stringFormat.Alignment = (StringAlignment)GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); - _stringFormat.LineAlignment = (StringAlignment)GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); + _stringFormat.Alignment = (StringAlignment)GetFieldValue(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT); + _stringFormat.LineAlignment = (StringAlignment)GetFieldValue(FieldTypes.TEXT_VERTICAL_ALIGNMENT); } /// @@ -435,7 +435,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); int lineWidth = (int)Math.Floor(lineThickness / 2d); int correction = (lineThickness + 1) % 2; @@ -467,7 +467,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing { return; } - var alignment = (StringAlignment)GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); + var alignment = (StringAlignment)GetFieldValue(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT); switch (alignment) { case StringAlignment.Near: @@ -481,7 +481,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing break; } - var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); + var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); _textBox.ForeColor = lineColor; } @@ -546,10 +546,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing } // we only draw the shadow if there is no background - bool shadow = GetFieldValueAsBool(FieldType.SHADOW); - Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR); - int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS); - Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR); + bool shadow = GetFieldValueAsBool(FieldTypes.SHADOW); + Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR); + int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS); + Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR); bool drawShadow = shadow && (fillColor == Color.Transparent || fillColor == Color.Empty); DrawText(graphics, rect, lineThickness, lineColor, drawShadow, _stringFormat, text, _font); diff --git a/src/Greenshot.Addon.LegacyEditor/EditorConfigurationExtensions.cs b/src/Greenshot.Addon.LegacyEditor/EditorConfigurationExtensions.cs index 4165b28ec..33ca1246d 100644 --- a/src/Greenshot.Addon.LegacyEditor/EditorConfigurationExtensions.cs +++ b/src/Greenshot.Addon.LegacyEditor/EditorConfigurationExtensions.cs @@ -23,50 +23,97 @@ using System; using System.Collections.Generic; +using System.Drawing; using Dapplo.Windows.Common.Structs; using Dapplo.Windows.User32.Enums; using Dapplo.Windows.User32.Structs; +using Greenshot.Addon.LegacyEditor.Drawing; using Greenshot.Addon.LegacyEditor.Drawing.Fields; using Greenshot.Addons.Interfaces.Drawing; namespace Greenshot.Addon.LegacyEditor { + /// + /// Extension methods for the IEditorConfiguration + /// public static class EditorConfigurationExtensions { - /// + /// + /// This is a factory method for IField which considers the defaults from the configuration + /// + /// /// Type of the class for which to create the field /// FieldType of the field to construct /// /// a new Field of the given fieldType, with the scope of it's value being restricted to the Type scope - public static IField CreateField(this IEditorConfiguration configuration, Type requestingType, IFieldType fieldType, object preferredDefaultValue) + public static IField CreateField(this IEditorConfiguration editorConfiguration, Type requestingType, IFieldType fieldType, object preferredDefaultValue) { var requestingTypeName = requestingType.Name; var requestedField = requestingTypeName + "." + fieldType.Name; var fieldValue = preferredDefaultValue; // Check if the configuration exists - if (configuration.LastUsedFieldValues == null) + if (editorConfiguration.LastUsedFieldValues == null) { - configuration.LastUsedFieldValues = new Dictionary(); + editorConfiguration.LastUsedFieldValues = new Dictionary(); } // Check if settings for the requesting type exist, if not create! - if (configuration.LastUsedFieldValues.ContainsKey(requestedField)) + if (editorConfiguration.LastUsedFieldValues.ContainsKey(requestedField)) { // Check if a value is set (not null)! - if (configuration.LastUsedFieldValues[requestedField] != null) + if (editorConfiguration.LastUsedFieldValues[requestedField] != null) { - fieldValue = configuration.LastUsedFieldValues[requestedField]; + var preferredValue = editorConfiguration.LastUsedFieldValues[requestedField]; + if (preferredValue is string preferredStringValue) + { + switch (fieldType.ValueType) + { + case var intType when fieldType.ValueType == typeof(int): + fieldValue = Convert.ToInt32(preferredValue); + break; + case var boolType when fieldType.ValueType == typeof(bool): + fieldValue = Convert.ToBoolean(preferredValue); + break; + case var colorType when fieldType.ValueType == typeof(Color): + var color = Color.FromName(preferredStringValue); + fieldValue = color; + if (Color.Empty == color) + { + fieldValue = Color.FromArgb(Convert.ToInt32(preferredValue)); + } + break; + case var allignType when fieldType.ValueType == typeof(StringAlignment): + fieldValue = Enum.Parse(typeof(StringAlignment), preferredStringValue, true); + break; + case var fieldFlagType when fieldType.ValueType == typeof(FieldFlag): + fieldValue = Enum.Parse(typeof(FieldFlag), preferredStringValue, true); + break; + case var preparedFilterType when fieldType.ValueType == typeof(FilterContainer.PreparedFilter): + fieldValue = Enum.Parse(typeof(FilterContainer.PreparedFilter), preferredStringValue, true); + break; + case var arrowHeadCombinationType when fieldType.ValueType == typeof(ArrowContainer.ArrowHeadCombination): + fieldValue = Enum.Parse(typeof(ArrowContainer.ArrowHeadCombination), preferredStringValue, true); + break; + default: + fieldValue = preferredStringValue; + break; + } + } + else + { + fieldValue = preferredValue; + } } else { // Overwrite null value - configuration.LastUsedFieldValues[requestedField] = fieldValue; + editorConfiguration.LastUsedFieldValues[requestedField] = fieldValue; } } else { - configuration.LastUsedFieldValues.Add(requestedField, fieldValue); + editorConfiguration.LastUsedFieldValues.Add(requestedField, fieldValue); } return new Field(fieldType, requestingType) { @@ -74,53 +121,71 @@ namespace Greenshot.Addon.LegacyEditor }; } - - public static void UpdateLastFieldValue(this IEditorConfiguration configuration, IField field) + /// + /// Update the last field value in the configuration + /// + /// IEditorConfiguration + /// IField + public static void UpdateLastFieldValue(this IEditorConfiguration editorConfiguration, IField field) { var requestedField = field.Scope + "." + field.FieldType.Name; // Check if the configuration exists - if (configuration.LastUsedFieldValues == null) + if (editorConfiguration.LastUsedFieldValues == null) { - configuration.LastUsedFieldValues = new Dictionary(); + editorConfiguration.LastUsedFieldValues = new Dictionary(); } // check if settings for the requesting type exist, if not create! - if (configuration.LastUsedFieldValues.ContainsKey(requestedField)) + if (field.Value is Color color) { - configuration.LastUsedFieldValues[requestedField] = field.Value; + editorConfiguration.LastUsedFieldValues[requestedField] = color.ToArgb().ToString(); } else { - configuration.LastUsedFieldValues.Add(requestedField, field.Value); + editorConfiguration.LastUsedFieldValues[requestedField] = field.Value.ToString(); } } - public static void ResetEditorPlacement(this IEditorConfiguration configuration) + /// + /// Reset the WindowPlacement for the editor + /// + /// IEditorConfiguration + public static void ResetEditorPlacement(this IEditorConfiguration editorConfiguration) { - configuration.WindowNormalPosition = new NativeRect(100, 100, 400, 400); - configuration.WindowMaxPosition = new NativePoint(-1, -1); - configuration.WindowMinPosition = new NativePoint(-1, -1); - configuration.WindowPlacementFlags = 0; - configuration.ShowWindowCommand = ShowWindowCommands.Normal; + editorConfiguration.WindowNormalPosition = new NativeRect(100, 100, 400, 400); + editorConfiguration.WindowMaxPosition = new NativePoint(-1, -1); + editorConfiguration.WindowMinPosition = new NativePoint(-1, -1); + editorConfiguration.WindowPlacementFlags = 0; + editorConfiguration.ShowWindowCommand = ShowWindowCommands.Normal; } - public static WindowPlacement GetEditorPlacement(this IEditorConfiguration configuration) + /// + /// Retrieve the WindowPlacement from the configuration + /// + /// IEditorConfiguration + /// WindowPlacement + public static WindowPlacement GetEditorPlacement(this IEditorConfiguration editorConfiguration) { var placement = WindowPlacement.Create(); - placement.NormalPosition = configuration.WindowNormalPosition; - placement.MaxPosition = configuration.WindowMaxPosition; - placement.MinPosition = configuration.WindowMinPosition; - placement.ShowCmd = configuration.ShowWindowCommand; - placement.Flags = configuration.WindowPlacementFlags; + placement.NormalPosition = editorConfiguration.WindowNormalPosition; + placement.MaxPosition = editorConfiguration.WindowMaxPosition; + placement.MinPosition = editorConfiguration.WindowMinPosition; + placement.ShowCmd = editorConfiguration.ShowWindowCommand; + placement.Flags = editorConfiguration.WindowPlacementFlags; return placement; } - public static void SetEditorPlacement(this IEditorConfiguration configuration, WindowPlacement placement) + /// + /// Store the WindowPlacement for the editor + /// + /// IEditorConfiguration + /// WindowPlacement + public static void SetEditorPlacement(this IEditorConfiguration editorConfiguration, WindowPlacement placement) { - configuration.WindowNormalPosition = placement.NormalPosition; - configuration.WindowMaxPosition = placement.MaxPosition; - configuration.WindowMinPosition = placement.MinPosition; - configuration.ShowWindowCommand = placement.ShowCmd; - configuration.WindowPlacementFlags = placement.Flags; + editorConfiguration.WindowNormalPosition = placement.NormalPosition; + editorConfiguration.WindowMaxPosition = placement.MaxPosition; + editorConfiguration.WindowMinPosition = placement.MinPosition; + editorConfiguration.ShowWindowCommand = placement.ShowCmd; + editorConfiguration.WindowPlacementFlags = placement.Flags; } } } diff --git a/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs b/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs index 0ddb161db..8b6bdf804 100644 --- a/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs +++ b/src/Greenshot.Addon.LegacyEditor/Forms/ImageEditorForm.cs @@ -677,23 +677,23 @@ namespace Greenshot.Addon.LegacyEditor.Forms { _disposables = new CompositeDisposable { - new BidirectionalBinding(btnFillColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.FILL_COLOR), "Value", NotNullValidator.GetInstance()), - new BidirectionalBinding(btnLineColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.LINE_COLOR), "Value", NotNullValidator.GetInstance()), - new BidirectionalBinding(lineThicknessUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.LINE_THICKNESS), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()), - new BidirectionalBinding(blurRadiusUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.BLUR_RADIUS), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()), - new BidirectionalBinding(magnificationFactorUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.MAGNIFICATION_FACTOR), "Value",DecimalIntConverter.GetInstance(), NotNullValidator.GetInstance()), - new BidirectionalBinding(pixelSizeUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.PIXEL_SIZE), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()), - new BidirectionalBinding(brightnessUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.BRIGHTNESS), "Value", DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()), - new BidirectionalBinding(fontFamilyComboBox, "Text", _surface.FieldAggregator.GetField(FieldType.FONT_FAMILY), "Value", NotNullValidator.GetInstance()), - new BidirectionalBinding(fontSizeUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.FONT_SIZE), "Value", DecimalFloatConverter.GetInstance(),NotNullValidator.GetInstance()), - new BidirectionalBinding(fontBoldButton, "Checked", _surface.FieldAggregator.GetField(FieldType.FONT_BOLD), "Value", NotNullValidator.GetInstance()), - new BidirectionalBinding(fontItalicButton, "Checked", _surface.FieldAggregator.GetField(FieldType.FONT_ITALIC), "Value", NotNullValidator.GetInstance()), - new BidirectionalBinding(textHorizontalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.TEXT_HORIZONTAL_ALIGNMENT), "Value",NotNullValidator.GetInstance()), - new BidirectionalBinding(textVerticalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.TEXT_VERTICAL_ALIGNMENT), "Value",NotNullValidator.GetInstance()), - new BidirectionalBinding(shadowButton, "Checked", _surface.FieldAggregator.GetField(FieldType.SHADOW), "Value", NotNullValidator.GetInstance()), - new BidirectionalBinding(previewQualityUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.PREVIEW_QUALITY), "Value",DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()), - new BidirectionalBinding(obfuscateModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.PREPARED_FILTER_OBFUSCATE), "Value"), - new BidirectionalBinding(highlightModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.PREPARED_FILTER_HIGHLIGHT), "Value"), + new BidirectionalBinding(btnFillColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldTypes.FILL_COLOR), "Value", NotNullValidator.GetInstance()), + new BidirectionalBinding(btnLineColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldTypes.LINE_COLOR), "Value", NotNullValidator.GetInstance()), + new BidirectionalBinding(lineThicknessUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.LINE_THICKNESS), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()), + new BidirectionalBinding(blurRadiusUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.BLUR_RADIUS), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()), + new BidirectionalBinding(magnificationFactorUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.MAGNIFICATION_FACTOR), "Value",DecimalIntConverter.GetInstance(), NotNullValidator.GetInstance()), + new BidirectionalBinding(pixelSizeUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.PIXEL_SIZE), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()), + new BidirectionalBinding(brightnessUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.BRIGHTNESS), "Value", DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()), + new BidirectionalBinding(fontFamilyComboBox, "Text", _surface.FieldAggregator.GetField(FieldTypes.FONT_FAMILY), "Value", NotNullValidator.GetInstance()), + new BidirectionalBinding(fontSizeUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.FONT_SIZE), "Value", DecimalFloatConverter.GetInstance(),NotNullValidator.GetInstance()), + new BidirectionalBinding(fontBoldButton, "Checked", _surface.FieldAggregator.GetField(FieldTypes.FONT_BOLD), "Value", NotNullValidator.GetInstance()), + new BidirectionalBinding(fontItalicButton, "Checked", _surface.FieldAggregator.GetField(FieldTypes.FONT_ITALIC), "Value", NotNullValidator.GetInstance()), + new BidirectionalBinding(textHorizontalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT), "Value",NotNullValidator.GetInstance()), + new BidirectionalBinding(textVerticalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.TEXT_VERTICAL_ALIGNMENT), "Value",NotNullValidator.GetInstance()), + new BidirectionalBinding(shadowButton, "Checked", _surface.FieldAggregator.GetField(FieldTypes.SHADOW), "Value", NotNullValidator.GetInstance()), + new BidirectionalBinding(previewQualityUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.PREVIEW_QUALITY), "Value",DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()), + new BidirectionalBinding(obfuscateModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.PREPARED_FILTER_OBFUSCATE), "Value"), + new BidirectionalBinding(highlightModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.PREPARED_FILTER_HIGHLIGHT), "Value"), new BidirectionalBinding(counterUpDown, "Value", _surface, "CounterStart", DecimalIntConverter.GetInstance(), NotNullValidator.GetInstance()) }; } @@ -707,29 +707,29 @@ namespace Greenshot.Addon.LegacyEditor.Forms if (_surface.HasSelectedElements || _surface.DrawingMode != DrawingModes.None) { var props = _surface.FieldAggregator; - btnFillColor.Visible = props.HasFieldValue(FieldType.FILL_COLOR); - btnLineColor.Visible = props.HasFieldValue(FieldType.LINE_COLOR); - lineThicknessLabel.Visible = lineThicknessUpDown.Visible = props.HasFieldValue(FieldType.LINE_THICKNESS); - blurRadiusLabel.Visible = blurRadiusUpDown.Visible = props.HasFieldValue(FieldType.BLUR_RADIUS); - previewQualityLabel.Visible = previewQualityUpDown.Visible = props.HasFieldValue(FieldType.PREVIEW_QUALITY); - magnificationFactorLabel.Visible = magnificationFactorUpDown.Visible = props.HasFieldValue(FieldType.MAGNIFICATION_FACTOR); - pixelSizeLabel.Visible = pixelSizeUpDown.Visible = props.HasFieldValue(FieldType.PIXEL_SIZE); - brightnessLabel.Visible = brightnessUpDown.Visible = props.HasFieldValue(FieldType.BRIGHTNESS); - arrowHeadsLabel.Visible = arrowHeadsDropDownButton.Visible = props.HasFieldValue(FieldType.ARROWHEADS); - fontFamilyComboBox.Visible = props.HasFieldValue(FieldType.FONT_FAMILY); - fontSizeLabel.Visible = fontSizeUpDown.Visible = props.HasFieldValue(FieldType.FONT_SIZE); - fontBoldButton.Visible = props.HasFieldValue(FieldType.FONT_BOLD); - fontItalicButton.Visible = props.HasFieldValue(FieldType.FONT_ITALIC); - textHorizontalAlignmentButton.Visible = props.HasFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT); - textVerticalAlignmentButton.Visible = props.HasFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT); - shadowButton.Visible = props.HasFieldValue(FieldType.SHADOW); - counterLabel.Visible = counterUpDown.Visible = props.HasFieldValue(FieldType.FLAGS) - && ((FieldFlag) props.GetFieldValue(FieldType.FLAGS) & FieldFlag.COUNTER) == FieldFlag.COUNTER; - btnConfirm.Visible = btnCancel.Visible = props.HasFieldValue(FieldType.FLAGS) - && ((FieldFlag) props.GetFieldValue(FieldType.FLAGS) & FieldFlag.CONFIRMABLE) == FieldFlag.CONFIRMABLE; + btnFillColor.Visible = props.HasFieldValue(FieldTypes.FILL_COLOR); + btnLineColor.Visible = props.HasFieldValue(FieldTypes.LINE_COLOR); + lineThicknessLabel.Visible = lineThicknessUpDown.Visible = props.HasFieldValue(FieldTypes.LINE_THICKNESS); + blurRadiusLabel.Visible = blurRadiusUpDown.Visible = props.HasFieldValue(FieldTypes.BLUR_RADIUS); + previewQualityLabel.Visible = previewQualityUpDown.Visible = props.HasFieldValue(FieldTypes.PREVIEW_QUALITY); + magnificationFactorLabel.Visible = magnificationFactorUpDown.Visible = props.HasFieldValue(FieldTypes.MAGNIFICATION_FACTOR); + pixelSizeLabel.Visible = pixelSizeUpDown.Visible = props.HasFieldValue(FieldTypes.PIXEL_SIZE); + brightnessLabel.Visible = brightnessUpDown.Visible = props.HasFieldValue(FieldTypes.BRIGHTNESS); + arrowHeadsLabel.Visible = arrowHeadsDropDownButton.Visible = props.HasFieldValue(FieldTypes.ARROWHEADS); + fontFamilyComboBox.Visible = props.HasFieldValue(FieldTypes.FONT_FAMILY); + fontSizeLabel.Visible = fontSizeUpDown.Visible = props.HasFieldValue(FieldTypes.FONT_SIZE); + fontBoldButton.Visible = props.HasFieldValue(FieldTypes.FONT_BOLD); + fontItalicButton.Visible = props.HasFieldValue(FieldTypes.FONT_ITALIC); + textHorizontalAlignmentButton.Visible = props.HasFieldValue(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT); + textVerticalAlignmentButton.Visible = props.HasFieldValue(FieldTypes.TEXT_VERTICAL_ALIGNMENT); + shadowButton.Visible = props.HasFieldValue(FieldTypes.SHADOW); + counterLabel.Visible = counterUpDown.Visible = props.HasFieldValue(FieldTypes.FLAGS) + && ((FieldFlag) props.GetFieldValue(FieldTypes.FLAGS) & FieldFlag.COUNTER) == FieldFlag.COUNTER; + btnConfirm.Visible = btnCancel.Visible = props.HasFieldValue(FieldTypes.FLAGS) + && ((FieldFlag) props.GetFieldValue(FieldTypes.FLAGS) & FieldFlag.CONFIRMABLE) == FieldFlag.CONFIRMABLE; - obfuscateModeButton.Visible = props.HasFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE); - highlightModeButton.Visible = props.HasFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT); + obfuscateModeButton.Visible = props.HasFieldValue(FieldTypes.PREPARED_FILTER_OBFUSCATE); + highlightModeButton.Visible = props.HasFieldValue(FieldTypes.PREPARED_FILTER_HIGHLIGHT); } else { @@ -766,7 +766,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms var props = _surface.FieldAggregator; // if a confirmable element is selected, we must disable most of the controls // since we demand confirmation or cancel for confirmable element - if (props.HasFieldValue(FieldType.FLAGS) && ((FieldFlag) props.GetFieldValue(FieldType.FLAGS) & FieldFlag.CONFIRMABLE) == FieldFlag.CONFIRMABLE) + if (props.HasFieldValue(FieldTypes.FLAGS) && ((FieldFlag) props.GetFieldValue(FieldTypes.FLAGS) & FieldFlag.CONFIRMABLE) == FieldFlag.CONFIRMABLE) { // disable most controls if (!_controlsDisabledDueToConfirmable) @@ -814,7 +814,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms private void ArrowHeadsToolStripMenuItemClick(object sender, EventArgs e) { - _surface.FieldAggregator.GetField(FieldType.ARROWHEADS).Value = (ArrowContainer.ArrowHeadCombination) ((ToolStripMenuItem) sender).Tag; + _surface.FieldAggregator.GetField(FieldTypes.ARROWHEADS).Value = (ArrowContainer.ArrowHeadCombination) ((ToolStripMenuItem) sender).Tag; } private void EditToolStripMenuItemClick(object sender, EventArgs e) @@ -880,7 +880,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms { // in addition to selection, deselection of elements, we need to // refresh toolbar if prepared filter mode is changed - if (Equals(e.Field.FieldType, FieldType.PREPARED_FILTER_HIGHLIGHT)) + if (Equals(e.Field.FieldType, FieldTypes.PREPARED_FILTER_HIGHLIGHT)) { RefreshFieldControls(); } diff --git a/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj b/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj index 8756cf000..48fcc2706 100644 --- a/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj +++ b/src/Greenshot.Addon.LegacyEditor/Greenshot.Addon.LegacyEditor.csproj @@ -15,6 +15,12 @@ true + + latest + + + latest + ..\packages\Autofac.4.8.1\lib\net45\Autofac.dll @@ -205,6 +211,7 @@ + diff --git a/src/Greenshot.Addons/Interfaces/Drawing/IFieldType.cs b/src/Greenshot.Addons/Interfaces/Drawing/IFieldType.cs index 946cd0b38..bc8be2308 100644 --- a/src/Greenshot.Addons/Interfaces/Drawing/IFieldType.cs +++ b/src/Greenshot.Addons/Interfaces/Drawing/IFieldType.cs @@ -21,10 +21,14 @@ #endregion +using System; + namespace Greenshot.Addons.Interfaces.Drawing { public interface IFieldType { - string Name { get; set; } + string Name { get; } + + Type ValueType { get; } } } \ No newline at end of file