mirror of
https://github.com/greenshot/greenshot
synced 2025-08-22 22:34:27 -07:00
An in between step for fixing the field values.
This commit is contained in:
parent
b65badf359
commit
99bc5e9eff
27 changed files with 407 additions and 297 deletions
|
@ -59,25 +59,26 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
if (lineThickness > 0)
|
if (lineThickness <= 0)
|
||||||
{
|
{
|
||||||
using (var pen = new Pen(Color.White))
|
return NativeRect.Empty;
|
||||||
{
|
}
|
||||||
pen.Width = lineThickness;
|
|
||||||
SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldType.ARROWHEADS), pen);
|
using (var pen = new Pen(Color.White))
|
||||||
using (var path = new GraphicsPath())
|
{
|
||||||
{
|
pen.Width = lineThickness;
|
||||||
path.AddLine(Left, Top, Left + Width, Top + Height);
|
SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldTypes.ARROWHEADS), pen);
|
||||||
using (var matrix = new Matrix())
|
using (var path = new GraphicsPath())
|
||||||
{
|
{
|
||||||
NativeRectFloat drawingBounds = path.GetBounds(matrix, pen);
|
path.AddLine(Left, Top, Left + Width, Top + Height);
|
||||||
return drawingBounds.Inflate(2, 2).Round();
|
using (var matrix = new Matrix())
|
||||||
}
|
{
|
||||||
}
|
NativeRectFloat drawingBounds = path.GetBounds(matrix, pen);
|
||||||
}
|
return drawingBounds.Inflate(2, 2).Round();
|
||||||
}
|
}
|
||||||
return NativeRect.Empty;
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -86,17 +87,17 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 2);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 2);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent);
|
||||||
AddField(GetType(), FieldType.SHADOW, true);
|
AddField(GetType(), FieldTypes.SHADOW, true);
|
||||||
AddField(GetType(), FieldType.ARROWHEADS, ArrowHeadCombination.END_POINT);
|
AddField(GetType(), FieldTypes.ARROWHEADS, ArrowHeadCombination.END_POINT);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(Graphics graphics, RenderMode rm)
|
public override void Draw(Graphics graphics, RenderMode rm)
|
||||||
{
|
{
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
|
|
||||||
if (lineThickness > 0)
|
if (lineThickness > 0)
|
||||||
{
|
{
|
||||||
|
@ -104,8 +105,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
var heads = (ArrowHeadCombination) GetFieldValue(FieldType.ARROWHEADS);
|
var heads = (ArrowHeadCombination) GetFieldValue(FieldTypes.ARROWHEADS);
|
||||||
if (lineThickness > 0)
|
if (lineThickness > 0)
|
||||||
{
|
{
|
||||||
if (shadow)
|
if (shadow)
|
||||||
|
@ -155,13 +156,13 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
public override bool ClickableAt(int x, int y)
|
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)
|
if (lineThickness > 0)
|
||||||
{
|
{
|
||||||
using (var pen = new Pen(Color.White))
|
using (var pen = new Pen(Color.White))
|
||||||
{
|
{
|
||||||
pen.Width = lineThickness;
|
pen.Width = lineThickness;
|
||||||
SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldType.ARROWHEADS), pen);
|
SetArrowHeads((ArrowHeadCombination) GetFieldValue(FieldTypes.ARROWHEADS), pen);
|
||||||
using (var path = new GraphicsPath())
|
using (var path = new GraphicsPath())
|
||||||
{
|
{
|
||||||
path.AddLine(Left, Top, Left + Width, Top + Height);
|
path.AddLine(Left, Top, Left + Width, Top + Height);
|
||||||
|
|
|
@ -84,7 +84,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
DisposeImage();
|
DisposeImage();
|
||||||
DisposeShadow();
|
DisposeShadow();
|
||||||
_bitmap = value.CloneBitmap();
|
_bitmap = value.CloneBitmap();
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
CheckShadow(shadow);
|
CheckShadow(shadow);
|
||||||
if (!shadow)
|
if (!shadow)
|
||||||
{
|
{
|
||||||
|
@ -157,23 +157,25 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.SHADOW, false);
|
AddField(GetType(), FieldTypes.SHADOW, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void BitmapContainer_OnFieldChanged(object sender, FieldChangedEventArgs e)
|
protected void BitmapContainer_OnFieldChanged(object sender, FieldChangedEventArgs e)
|
||||||
{
|
{
|
||||||
if (sender.Equals(this))
|
if (!sender.Equals(this))
|
||||||
{
|
{
|
||||||
if (FieldType.SHADOW.Equals(e.Field.FieldType))
|
return;
|
||||||
{
|
}
|
||||||
ChangeShadowField();
|
|
||||||
}
|
if (FieldTypes.SHADOW.Equals(e.Field.FieldType))
|
||||||
}
|
{
|
||||||
|
ChangeShadowField();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void ChangeShadowField()
|
public void ChangeShadowField()
|
||||||
{
|
{
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
if (shadow)
|
if (shadow)
|
||||||
{
|
{
|
||||||
CheckShadow(true);
|
CheckShadow(true);
|
||||||
|
@ -246,7 +248,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
if (_bitmap != null)
|
if (_bitmap != null)
|
||||||
{
|
{
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
graphics.SmoothingMode = SmoothingMode.HighQuality;
|
||||||
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
|
||||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
|
|
|
@ -73,7 +73,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.FLAGS, FieldFlag.CONFIRMABLE);
|
AddField(GetType(), FieldTypes.FLAGS, FieldFlag.CONFIRMABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Invalidate()
|
public override void Invalidate()
|
||||||
|
|
|
@ -292,14 +292,14 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
}
|
}
|
||||||
// Take a base safetymargin
|
// Take a base safetymargin
|
||||||
var lineThickness = 5;
|
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 offset = lineThickness / 2;
|
||||||
|
|
||||||
var shadow = 0;
|
var shadow = 0;
|
||||||
if (accountForShadowChange || HasField(FieldType.SHADOW) && GetFieldValueAsBool(FieldType.SHADOW))
|
if (accountForShadowChange || HasField(FieldTypes.SHADOW) && GetFieldValueAsBool(FieldTypes.SHADOW))
|
||||||
{
|
{
|
||||||
accountForShadowChange = false;
|
accountForShadowChange = false;
|
||||||
shadow += 10;
|
shadow += 10;
|
||||||
|
@ -322,7 +322,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
if (horizontalAlignment == HorizontalAlignment.Left)
|
if (horizontalAlignment == HorizontalAlignment.Left)
|
||||||
{
|
{
|
||||||
Left = lineThickness / 2;
|
Left = lineThickness / 2;
|
||||||
|
@ -644,7 +644,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
public void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
public void HandleFieldChanged(object sender, FieldChangedEventArgs e)
|
||||||
{
|
{
|
||||||
Log.Debug().WriteLine("Field {0} changed", e.Field.FieldType);
|
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;
|
accountForShadowChange = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,10 +48,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 2);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 2);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent);
|
||||||
AddField(GetType(), FieldType.SHADOW, true);
|
AddField(GetType(), FieldTypes.SHADOW, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(Graphics graphics, RenderMode renderMode)
|
public override void Draw(Graphics graphics, RenderMode renderMode)
|
||||||
|
@ -61,10 +61,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
||||||
|
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
DrawEllipse(rect, graphics, renderMode, lineThickness, lineColor, fillColor, shadow);
|
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)
|
public override bool ClickableAt(int x, int y)
|
||||||
{
|
{
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS) + 10;
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 10;
|
||||||
var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
return EllipseClickableAt(rect, lineThickness, fillColor, x, y);
|
return EllipseClickableAt(rect, lineThickness, fillColor, x, y);
|
||||||
}
|
}
|
||||||
|
|
|
@ -56,7 +56,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields
|
||||||
|
|
||||||
public FieldAggregator(ISurface parent)
|
public FieldAggregator(ISurface parent)
|
||||||
{
|
{
|
||||||
foreach (var fieldType in FieldType.Values)
|
foreach (var fieldType in FieldTypes.Values)
|
||||||
{
|
{
|
||||||
var field = new Field(fieldType, GetType());
|
var field = new Field(fieldType, GetType());
|
||||||
AddField(field);
|
AddField(field);
|
||||||
|
@ -199,7 +199,12 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields
|
||||||
return returnFields ?? new List<IField>();
|
return returnFields ?? new List<IField>();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OwnPropertyChanged(object sender, PropertyChangedEventArgs ea)
|
/// <summary>
|
||||||
|
/// This is called when a property changes
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender">object</param>
|
||||||
|
/// <param name="propertyChangedEventArgs">PropertyChangedEventArgs</param>
|
||||||
|
public void OwnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
|
||||||
{
|
{
|
||||||
var field = (IField) sender;
|
var field = (IField) sender;
|
||||||
if (_internalUpdateRunning || field.Value == null)
|
if (_internalUpdateRunning || field.Value == null)
|
||||||
|
|
|
@ -35,61 +35,21 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields
|
||||||
/// (The additional value is why this is not an enum)
|
/// (The additional value is why this is not an enum)
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Serializable]
|
[Serializable]
|
||||||
public class FieldType : IFieldType
|
public class FieldType<T> : IFieldType
|
||||||
{
|
{
|
||||||
public static readonly IFieldType ARROWHEADS = new FieldType("ARROWHEADS");
|
internal FieldType(string name)
|
||||||
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,
|
Name = name;
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Name { get; set; }
|
public string Name { get; }
|
||||||
|
|
||||||
public override string ToString()
|
/// <summary>
|
||||||
|
/// This returns the type which the value has
|
||||||
|
/// </summary>
|
||||||
|
public Type ValueType { get; }= typeof(T);
|
||||||
|
|
||||||
|
public override string ToString()
|
||||||
{
|
{
|
||||||
return Name;
|
return Name;
|
||||||
}
|
}
|
||||||
|
@ -109,7 +69,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields
|
||||||
|
|
||||||
public override bool Equals(object obj)
|
public override bool Equals(object obj)
|
||||||
{
|
{
|
||||||
var other = obj as FieldType;
|
var other = obj as FieldType<T>;
|
||||||
if (other == null)
|
if (other == null)
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
|
@ -117,12 +77,12 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Fields
|
||||||
return Equals(Name, other.Name);
|
return Equals(Name, other.Name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator ==(FieldType a, FieldType b)
|
public static bool operator ==(FieldType<T> a, FieldType<T> b)
|
||||||
{
|
{
|
||||||
return Equals(a, b);
|
return Equals(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static bool operator !=(FieldType a, FieldType b)
|
public static bool operator !=(FieldType<T> a, FieldType<T> b)
|
||||||
{
|
{
|
||||||
return !Equals(a, b);
|
return !Equals(a, b);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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 <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Usings
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Drawing;
|
||||||
|
using Greenshot.Addons.Interfaces.Drawing;
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
namespace Greenshot.Addon.LegacyEditor.Drawing.Fields
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Defines all FieldTypes + their default value.
|
||||||
|
/// (The additional value is why this is not an enum)
|
||||||
|
/// </summary>
|
||||||
|
public static class FieldTypes
|
||||||
|
{
|
||||||
|
public static readonly IFieldType ARROWHEADS = new FieldType<ArrowContainer.ArrowHeadCombination>("ARROWHEADS");
|
||||||
|
public static readonly IFieldType BLUR_RADIUS = new FieldType<int>("BLUR_RADIUS");
|
||||||
|
public static readonly IFieldType BRIGHTNESS = new FieldType<int>("BRIGHTNESS");
|
||||||
|
public static readonly IFieldType FILL_COLOR = new FieldType<Color>("FILL_COLOR");
|
||||||
|
public static readonly IFieldType FONT_BOLD = new FieldType<bool>("FONT_BOLD");
|
||||||
|
public static readonly IFieldType FONT_FAMILY = new FieldType<string>("FONT_FAMILY");
|
||||||
|
public static readonly IFieldType FONT_ITALIC = new FieldType<bool>("FONT_ITALIC");
|
||||||
|
public static readonly IFieldType FONT_SIZE = new FieldType<int>("FONT_SIZE");
|
||||||
|
public static readonly IFieldType TEXT_HORIZONTAL_ALIGNMENT = new FieldType<StringAlignment>("TEXT_HORIZONTAL_ALIGNMENT");
|
||||||
|
public static readonly IFieldType TEXT_VERTICAL_ALIGNMENT = new FieldType<StringAlignment>("TEXT_VERTICAL_ALIGNMENT");
|
||||||
|
public static readonly IFieldType HIGHLIGHT_COLOR = new FieldType<Color>("HIGHLIGHT_COLOR");
|
||||||
|
public static readonly IFieldType LINE_COLOR = new FieldType<Color>("LINE_COLOR");
|
||||||
|
public static readonly IFieldType LINE_THICKNESS = new FieldType<int>("LINE_THICKNESS");
|
||||||
|
public static readonly IFieldType MAGNIFICATION_FACTOR = new FieldType<int>("MAGNIFICATION_FACTOR");
|
||||||
|
public static readonly IFieldType PIXEL_SIZE = new FieldType<int>("PIXEL_SIZE");
|
||||||
|
public static readonly IFieldType PREVIEW_QUALITY = new FieldType<int>("PREVIEW_QUALITY");
|
||||||
|
public static readonly IFieldType SHADOW = new FieldType<bool>("SHADOW");
|
||||||
|
public static readonly IFieldType PREPARED_FILTER_OBFUSCATE = new FieldType<FilterContainer.PreparedFilter>("PREPARED_FILTER_OBFUSCATE");
|
||||||
|
public static readonly IFieldType PREPARED_FILTER_HIGHLIGHT = new FieldType<FilterContainer.PreparedFilter>("PREPARED_FILTER_HIGHLIGHT");
|
||||||
|
public static readonly IFieldType FLAGS = new FieldType<FieldFlag>("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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -65,7 +65,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
public PreparedFilter Filter
|
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)
|
protected override void OnDeserialized(StreamingContext streamingContext)
|
||||||
|
@ -81,16 +81,16 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 0);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 0);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
AddField(GetType(), FieldType.SHADOW, false);
|
AddField(GetType(), FieldTypes.SHADOW, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(Graphics graphics, RenderMode rm)
|
public override void Draw(Graphics graphics, RenderMode rm)
|
||||||
{
|
{
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor);
|
var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor);
|
||||||
if (lineVisible)
|
if (lineVisible)
|
||||||
{
|
{
|
||||||
|
|
|
@ -42,8 +42,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
|
|
||||||
public BlurFilter(DrawableContainer parent) : base(parent)
|
public BlurFilter(DrawableContainer parent) : base(parent)
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.BLUR_RADIUS, 3);
|
AddField(GetType(), FieldTypes.BLUR_RADIUS, 3);
|
||||||
AddField(GetType(), FieldType.PREVIEW_QUALITY, 1.0d);
|
AddField(GetType(), FieldTypes.PREVIEW_QUALITY, 1.0d);
|
||||||
}
|
}
|
||||||
|
|
||||||
public double PreviewQuality
|
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)
|
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);
|
var applyRect = BitmapHelper.CreateIntersectRectangle(applyBitmap.Size, rect, Invert);
|
||||||
if (applyRect.Width == 0 || applyRect.Height == 0)
|
if (applyRect.Width == 0 || applyRect.Height == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,7 +40,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
{
|
{
|
||||||
public BrightnessFilter(DrawableContainer parent) : base(parent)
|
public BrightnessFilter(DrawableContainer parent) : base(parent)
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.BRIGHTNESS, 0.9d);
|
AddField(GetType(), FieldTypes.BRIGHTNESS, 0.9d);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -66,7 +66,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
graphics.SetClip(applyRect);
|
graphics.SetClip(applyRect);
|
||||||
graphics.ExcludeClip(rect);
|
graphics.ExcludeClip(rect);
|
||||||
}
|
}
|
||||||
var brightness = GetFieldValueAsFloat(FieldType.BRIGHTNESS);
|
var brightness = GetFieldValueAsFloat(FieldTypes.BRIGHTNESS);
|
||||||
using (var ia = AdjustEffect.CreateAdjustAttributes(brightness, 1f, 1f))
|
using (var ia = AdjustEffect.CreateAdjustAttributes(brightness, 1f, 1f))
|
||||||
{
|
{
|
||||||
graphics.DrawImage(applyBitmap, applyRect, applyRect.X, applyRect.Y, applyRect.Width, applyRect.Height, GraphicsUnit.Pixel, ia);
|
graphics.DrawImage(applyBitmap, applyRect, applyRect.X, applyRect.Y, applyRect.Width, applyRect.Height, GraphicsUnit.Pixel, ia);
|
||||||
|
|
|
@ -41,7 +41,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
{
|
{
|
||||||
public HighlightFilter(DrawableContainer parent) : base(parent)
|
public HighlightFilter(DrawableContainer parent) : base(parent)
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.Yellow);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.Yellow);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -68,7 +68,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
}
|
}
|
||||||
using (var fastBitmap = FastBitmapFactory.CreateCloneOf(applyBitmap, area: applyRect))
|
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 =>
|
Parallel.For(fastBitmap.Top, fastBitmap.Bottom, y =>
|
||||||
{
|
{
|
||||||
unsafe
|
unsafe
|
||||||
|
|
|
@ -40,7 +40,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
{
|
{
|
||||||
public MagnifierFilter(DrawableContainer parent) : base(parent)
|
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)
|
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
|
// nothing to do
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var magnificationFactor = GetFieldValueAsInt(FieldType.MAGNIFICATION_FACTOR);
|
var magnificationFactor = GetFieldValueAsInt(FieldTypes.MAGNIFICATION_FACTOR);
|
||||||
var state = graphics.Save();
|
var state = graphics.Save();
|
||||||
if (Invert)
|
if (Invert)
|
||||||
{
|
{
|
||||||
|
|
|
@ -45,12 +45,12 @@ namespace Greenshot.Addon.LegacyEditor.Drawing.Filters
|
||||||
{
|
{
|
||||||
public PixelizationFilter(DrawableContainer parent) : base(parent)
|
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)
|
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);
|
BitmapHelper.CreateIntersectRectangle(applyBitmap.Size, rect, Invert);
|
||||||
if (pixelSize <= 1 || rect.Width == 0 || rect.Height == 0)
|
if (pixelSize <= 1 || rect.Width == 0 || rect.Height == 0)
|
||||||
{
|
{
|
||||||
|
|
|
@ -58,8 +58,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void InitializeFields() {
|
protected override void InitializeFields() {
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 3);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 3);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Transform(Matrix matrix)
|
public override void Transform(Matrix matrix)
|
||||||
|
@ -183,8 +183,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing {
|
||||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
graphics.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
||||||
|
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
using (var pen = new Pen(lineColor)) {
|
using (var pen = new Pen(lineColor)) {
|
||||||
pen.Width = lineThickness;
|
pen.Width = lineThickness;
|
||||||
if (!(pen.Width > 0))
|
if (!(pen.Width > 0))
|
||||||
|
@ -238,7 +238,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing {
|
||||||
public override NativeRect DrawingBounds {
|
public override NativeRect DrawingBounds {
|
||||||
get {
|
get {
|
||||||
if (!myBounds.IsEmpty) {
|
if (!myBounds.IsEmpty) {
|
||||||
int lineThickness = Math.Max(10, GetFieldValueAsInt(FieldType.LINE_THICKNESS));
|
int lineThickness = Math.Max(10, GetFieldValueAsInt(FieldTypes.LINE_THICKNESS));
|
||||||
int safetymargin = 10;
|
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));
|
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) {
|
public override bool ClickableAt(int x, int y) {
|
||||||
bool returnValue = base.ClickableAt(x, y);
|
bool returnValue = base.ClickableAt(x, y);
|
||||||
if (returnValue) {
|
if (returnValue) {
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
using (var pen = new Pen(Color.White)) {
|
using (var pen = new Pen(Color.White)) {
|
||||||
pen.Width = lineThickness + 10;
|
pen.Width = lineThickness + 10;
|
||||||
lock (_freehandPathLock)
|
lock (_freehandPathLock)
|
||||||
|
|
|
@ -50,7 +50,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
base.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)
|
protected override void OnDeserialized(StreamingContext context)
|
||||||
|
@ -70,7 +70,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (Equals(e.Field.FieldType, FieldType.PREPARED_FILTER_HIGHLIGHT))
|
if (Equals(e.Field.FieldType, FieldTypes.PREPARED_FILTER_HIGHLIGHT))
|
||||||
{
|
{
|
||||||
ConfigurePreparedFilters();
|
ConfigurePreparedFilters();
|
||||||
}
|
}
|
||||||
|
@ -78,7 +78,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
private void ConfigurePreparedFilters()
|
private void ConfigurePreparedFilters()
|
||||||
{
|
{
|
||||||
var preset = (PreparedFilter) GetFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT);
|
var preset = (PreparedFilter) GetFieldValue(FieldTypes.PREPARED_FILTER_HIGHLIGHT);
|
||||||
while (Filters.Count > 0)
|
while (Filters.Count > 0)
|
||||||
{
|
{
|
||||||
Remove(Filters[0]);
|
Remove(Filters[0]);
|
||||||
|
|
|
@ -51,9 +51,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 2);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 2);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
AddField(GetType(), FieldType.SHADOW, true);
|
AddField(GetType(), FieldTypes.SHADOW, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void OnDeserialized(StreamingContext context)
|
protected override void OnDeserialized(StreamingContext context)
|
||||||
|
@ -74,9 +74,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
graphics.CompositingQuality = CompositingQuality.HighQuality;
|
||||||
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
||||||
|
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
|
|
||||||
if (lineThickness > 0)
|
if (lineThickness > 0)
|
||||||
{
|
{
|
||||||
|
@ -112,7 +112,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
public override bool ClickableAt(int x, int y)
|
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)
|
if (lineThickness > 0)
|
||||||
{
|
{
|
||||||
using (var pen = new Pen(Color.White))
|
using (var pen = new Pen(Color.White))
|
||||||
|
|
|
@ -47,7 +47,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
base.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)
|
protected override void OnDeserialized(StreamingContext context)
|
||||||
|
@ -66,7 +66,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
if (sender.Equals(this))
|
if (sender.Equals(this))
|
||||||
{
|
{
|
||||||
if (Equals(e.Field.FieldType, FieldType.PREPARED_FILTER_OBFUSCATE))
|
if (Equals(e.Field.FieldType, FieldTypes.PREPARED_FILTER_OBFUSCATE))
|
||||||
{
|
{
|
||||||
ConfigurePreparedFilters();
|
ConfigurePreparedFilters();
|
||||||
}
|
}
|
||||||
|
@ -75,7 +75,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
private void ConfigurePreparedFilters()
|
private void ConfigurePreparedFilters()
|
||||||
{
|
{
|
||||||
var preset = (PreparedFilter) GetFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE);
|
var preset = (PreparedFilter) GetFieldValue(FieldTypes.PREPARED_FILTER_OBFUSCATE);
|
||||||
while (Filters.Count > 0)
|
while (Filters.Count > 0)
|
||||||
{
|
{
|
||||||
Remove(Filters[0]);
|
Remove(Filters[0]);
|
||||||
|
|
|
@ -55,17 +55,17 @@ namespace Greenshot.Addon.LegacyEditor.Drawing {
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void InitializeFields() {
|
protected override void InitializeFields() {
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 2);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 2);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent);
|
||||||
AddField(GetType(), FieldType.SHADOW, true);
|
AddField(GetType(), FieldTypes.SHADOW, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(Graphics graphics, RenderMode rm) {
|
public override void Draw(Graphics graphics, RenderMode rm) {
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR, Color.Red);
|
Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR, Color.Red);
|
||||||
Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR, Color.Transparent);
|
Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR, Color.Transparent);
|
||||||
bool shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
bool shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
|
|
||||||
DrawRectangle(rect, graphics, rm, lineThickness, lineColor, fillColor, shadow);
|
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) {
|
public override bool ClickableAt(int x, int y) {
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS) + 10;
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS) + 10;
|
||||||
Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
|
|
||||||
return RectangleClickableAt(rect, lineThickness, fillColor, x, y);
|
return RectangleClickableAt(rect, lineThickness, fillColor, x, y);
|
||||||
}
|
}
|
||||||
|
|
|
@ -60,9 +60,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
if (Status != EditStatus.UNDRAWN)
|
if (Status != EditStatus.UNDRAWN)
|
||||||
{
|
{
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
using (var pen = new Pen(lineColor, lineThickness))
|
using (var pen = new Pen(lineColor, lineThickness))
|
||||||
{
|
{
|
||||||
var inflateValue = lineThickness + 2 + (shadow ? 6 : 0);
|
var inflateValue = lineThickness + 2 + (shadow ? 6 : 0);
|
||||||
|
@ -84,16 +84,16 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 2);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 2);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Blue);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Blue);
|
||||||
AddField(GetType(), FieldType.SHADOW, false);
|
AddField(GetType(), FieldTypes.SHADOW, false);
|
||||||
AddField(GetType(), FieldType.FONT_ITALIC, false);
|
AddField(GetType(), FieldTypes.FONT_ITALIC, false);
|
||||||
AddField(GetType(), FieldType.FONT_BOLD, true);
|
AddField(GetType(), FieldTypes.FONT_BOLD, true);
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.White);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.White);
|
||||||
AddField(GetType(), FieldType.FONT_FAMILY, FontFamily.GenericSansSerif.Name);
|
AddField(GetType(), FieldTypes.FONT_FAMILY, FontFamily.GenericSansSerif.Name);
|
||||||
AddField(GetType(), FieldType.FONT_SIZE, 20f);
|
AddField(GetType(), FieldTypes.FONT_SIZE, 20f);
|
||||||
AddField(GetType(), FieldType.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center);
|
AddField(GetType(), FieldTypes.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center);
|
||||||
AddField(GetType(), FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center);
|
AddField(GetType(), FieldTypes.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -221,10 +221,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
graphics.PixelOffsetMode = PixelOffsetMode.None;
|
||||||
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
|
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
|
||||||
|
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
var shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
var shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
|
|
||||||
var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor);
|
var lineVisible = lineThickness > 0 && Colors.IsVisible(lineColor);
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
|
@ -334,8 +334,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
var clickedPoint = new NativePoint(x, y);
|
var clickedPoint = new NativePoint(x, y);
|
||||||
if (Status != EditStatus.UNDRAWN)
|
if (Status != EditStatus.UNDRAWN)
|
||||||
{
|
{
|
||||||
var lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
var lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
using (var pen = new Pen(lineColor, lineThickness))
|
using (var pen = new Pen(lineColor, lineThickness))
|
||||||
{
|
{
|
||||||
using (var bubblePath = CreateBubble(lineThickness))
|
using (var bubblePath = CreateBubble(lineThickness))
|
||||||
|
|
|
@ -125,9 +125,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.DarkRed);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.DarkRed);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.White);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.White);
|
||||||
AddField(GetType(), FieldType.FLAGS, FieldFlag.COUNTER);
|
AddField(GetType(), FieldTypes.FLAGS, FieldFlag.COUNTER);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -193,8 +193,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
|
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
|
||||||
var text = ((Surface) Parent).CountStepLabels(this).ToString();
|
var text = ((Surface) Parent).CountStepLabels(this).ToString();
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
if (_drawAsRectangle)
|
if (_drawAsRectangle)
|
||||||
{
|
{
|
||||||
RectangleContainer.DrawRectangle(rect, graphics, rm, 0, Color.Transparent, fillColor, false);
|
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)
|
public override bool ClickableAt(int x, int y)
|
||||||
{
|
{
|
||||||
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
var rect = new NativeRect(Left, Top, Width, Height).Normalize();
|
||||||
var fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
var fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
if (_drawAsRectangle)
|
if (_drawAsRectangle)
|
||||||
{
|
{
|
||||||
return RectangleContainer.RectangleClickableAt(rect, 0, fillColor, x, y);
|
return RectangleContainer.RectangleClickableAt(rect, 0, fillColor, x, y);
|
||||||
|
|
|
@ -1941,14 +1941,14 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
bool italic, bool bold, bool shadow, int borderSize, Color color, Color fillColor)
|
bool italic, bool bold, bool shadow, int borderSize, Color color, Color fillColor)
|
||||||
{
|
{
|
||||||
var textContainer = new TextContainer(this) {Text = text};
|
var textContainer = new TextContainer(this) {Text = text};
|
||||||
textContainer.SetFieldValue(FieldType.FONT_FAMILY, family.Name);
|
textContainer.SetFieldValue(FieldTypes.FONT_FAMILY, family.Name);
|
||||||
textContainer.SetFieldValue(FieldType.FONT_BOLD, bold);
|
textContainer.SetFieldValue(FieldTypes.FONT_BOLD, bold);
|
||||||
textContainer.SetFieldValue(FieldType.FONT_ITALIC, italic);
|
textContainer.SetFieldValue(FieldTypes.FONT_ITALIC, italic);
|
||||||
textContainer.SetFieldValue(FieldType.FONT_SIZE, size);
|
textContainer.SetFieldValue(FieldTypes.FONT_SIZE, size);
|
||||||
textContainer.SetFieldValue(FieldType.FILL_COLOR, fillColor);
|
textContainer.SetFieldValue(FieldTypes.FILL_COLOR, fillColor);
|
||||||
textContainer.SetFieldValue(FieldType.LINE_COLOR, color);
|
textContainer.SetFieldValue(FieldTypes.LINE_COLOR, color);
|
||||||
textContainer.SetFieldValue(FieldType.LINE_THICKNESS, borderSize);
|
textContainer.SetFieldValue(FieldTypes.LINE_THICKNESS, borderSize);
|
||||||
textContainer.SetFieldValue(FieldType.SHADOW, shadow);
|
textContainer.SetFieldValue(FieldTypes.SHADOW, shadow);
|
||||||
// Make sure the Text fits
|
// Make sure the Text fits
|
||||||
textContainer.FitToText();
|
textContainer.FitToText();
|
||||||
// Align to Surface
|
// Align to Surface
|
||||||
|
|
|
@ -95,16 +95,16 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
protected override void InitializeFields()
|
protected override void InitializeFields()
|
||||||
{
|
{
|
||||||
AddField(GetType(), FieldType.LINE_THICKNESS, 2);
|
AddField(GetType(), FieldTypes.LINE_THICKNESS, 2);
|
||||||
AddField(GetType(), FieldType.LINE_COLOR, Color.Red);
|
AddField(GetType(), FieldTypes.LINE_COLOR, Color.Red);
|
||||||
AddField(GetType(), FieldType.SHADOW, true);
|
AddField(GetType(), FieldTypes.SHADOW, true);
|
||||||
AddField(GetType(), FieldType.FONT_ITALIC, false);
|
AddField(GetType(), FieldTypes.FONT_ITALIC, false);
|
||||||
AddField(GetType(), FieldType.FONT_BOLD, false);
|
AddField(GetType(), FieldTypes.FONT_BOLD, false);
|
||||||
AddField(GetType(), FieldType.FILL_COLOR, Color.Transparent);
|
AddField(GetType(), FieldTypes.FILL_COLOR, Color.Transparent);
|
||||||
AddField(GetType(), FieldType.FONT_FAMILY, FontFamily.GenericSansSerif.Name);
|
AddField(GetType(), FieldTypes.FONT_FAMILY, FontFamily.GenericSansSerif.Name);
|
||||||
AddField(GetType(), FieldType.FONT_SIZE, 11f);
|
AddField(GetType(), FieldTypes.FONT_SIZE, 11f);
|
||||||
AddField(GetType(), FieldType.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center);
|
AddField(GetType(), FieldTypes.TEXT_HORIZONTAL_ALIGNMENT, StringAlignment.Center);
|
||||||
AddField(GetType(), FieldType.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center);
|
AddField(GetType(), FieldTypes.TEXT_VERTICAL_ALIGNMENT, StringAlignment.Center);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -169,7 +169,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
public void FitToText()
|
public void FitToText()
|
||||||
{
|
{
|
||||||
Size textSize = TextRenderer.MeasureText(text, _font);
|
Size textSize = TextRenderer.MeasureText(text, _font);
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
Width = textSize.Width + lineThickness;
|
Width = textSize.Width + lineThickness;
|
||||||
Height = textSize.Height + lineThickness;
|
Height = textSize.Height + lineThickness;
|
||||||
}
|
}
|
||||||
|
@ -288,7 +288,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Color lc = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
Color lc = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
if (lc.R > 203 && lc.G > 203 && lc.B > 203)
|
if (lc.R > 203 && lc.G > 203 && lc.B > 203)
|
||||||
{
|
{
|
||||||
_textBox.BackColor = Color.FromArgb(51, 51, 51);
|
_textBox.BackColor = Color.FromArgb(51, 51, 51);
|
||||||
|
@ -323,9 +323,9 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
int pixelsAfter = rect.Width * rect.Height;
|
int pixelsAfter = rect.Width * rect.Height;
|
||||||
float factor = pixelsAfter / (float)pixelsBefore;
|
float factor = pixelsAfter / (float)pixelsBefore;
|
||||||
|
|
||||||
float fontSize = GetFieldValueAsFloat(FieldType.FONT_SIZE);
|
float fontSize = GetFieldValueAsFloat(FieldTypes.FONT_SIZE);
|
||||||
fontSize *= factor;
|
fontSize *= factor;
|
||||||
SetFieldValue(FieldType.FONT_SIZE, fontSize);
|
SetFieldValue(FieldTypes.FONT_SIZE, fontSize);
|
||||||
UpdateFormat();
|
UpdateFormat();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -382,10 +382,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
string fontFamily = GetFieldValueAsString(FieldType.FONT_FAMILY);
|
string fontFamily = GetFieldValueAsString(FieldTypes.FONT_FAMILY);
|
||||||
bool fontBold = GetFieldValueAsBool(FieldType.FONT_BOLD);
|
bool fontBold = GetFieldValueAsBool(FieldTypes.FONT_BOLD);
|
||||||
bool fontItalic = GetFieldValueAsBool(FieldType.FONT_ITALIC);
|
bool fontItalic = GetFieldValueAsBool(FieldTypes.FONT_ITALIC);
|
||||||
float fontSize = GetFieldValueAsFloat(FieldType.FONT_SIZE);
|
float fontSize = GetFieldValueAsFloat(FieldTypes.FONT_SIZE);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var newFont = CreateFont(fontFamily, fontBold, fontItalic, fontSize);
|
var newFont = CreateFont(fontFamily, fontBold, fontItalic, fontSize);
|
||||||
|
@ -399,7 +399,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
fontFamily = FontFamily.GenericSansSerif.Name;
|
fontFamily = FontFamily.GenericSansSerif.Name;
|
||||||
SetFieldValue(FieldType.FONT_FAMILY, fontFamily);
|
SetFieldValue(FieldTypes.FONT_FAMILY, fontFamily);
|
||||||
var newFont = CreateFont(fontFamily, fontBold, fontItalic, fontSize);
|
var newFont = CreateFont(fontFamily, fontBold, fontItalic, fontSize);
|
||||||
_font?.Dispose();
|
_font?.Dispose();
|
||||||
_font = newFont;
|
_font = newFont;
|
||||||
|
@ -421,8 +421,8 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
|
|
||||||
private void UpdateAlignment()
|
private void UpdateAlignment()
|
||||||
{
|
{
|
||||||
_stringFormat.Alignment = (StringAlignment)GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT);
|
_stringFormat.Alignment = (StringAlignment)GetFieldValue(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT);
|
||||||
_stringFormat.LineAlignment = (StringAlignment)GetFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT);
|
_stringFormat.LineAlignment = (StringAlignment)GetFieldValue(FieldTypes.TEXT_VERTICAL_ALIGNMENT);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
@ -435,7 +435,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
|
|
||||||
int lineWidth = (int)Math.Floor(lineThickness / 2d);
|
int lineWidth = (int)Math.Floor(lineThickness / 2d);
|
||||||
int correction = (lineThickness + 1) % 2;
|
int correction = (lineThickness + 1) % 2;
|
||||||
|
@ -467,7 +467,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var alignment = (StringAlignment)GetFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT);
|
var alignment = (StringAlignment)GetFieldValue(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT);
|
||||||
switch (alignment)
|
switch (alignment)
|
||||||
{
|
{
|
||||||
case StringAlignment.Near:
|
case StringAlignment.Near:
|
||||||
|
@ -481,7 +481,7 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
var lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
var lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
_textBox.ForeColor = lineColor;
|
_textBox.ForeColor = lineColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -546,10 +546,10 @@ namespace Greenshot.Addon.LegacyEditor.Drawing
|
||||||
}
|
}
|
||||||
|
|
||||||
// we only draw the shadow if there is no background
|
// we only draw the shadow if there is no background
|
||||||
bool shadow = GetFieldValueAsBool(FieldType.SHADOW);
|
bool shadow = GetFieldValueAsBool(FieldTypes.SHADOW);
|
||||||
Color fillColor = GetFieldValueAsColor(FieldType.FILL_COLOR);
|
Color fillColor = GetFieldValueAsColor(FieldTypes.FILL_COLOR);
|
||||||
int lineThickness = GetFieldValueAsInt(FieldType.LINE_THICKNESS);
|
int lineThickness = GetFieldValueAsInt(FieldTypes.LINE_THICKNESS);
|
||||||
Color lineColor = GetFieldValueAsColor(FieldType.LINE_COLOR);
|
Color lineColor = GetFieldValueAsColor(FieldTypes.LINE_COLOR);
|
||||||
bool drawShadow = shadow && (fillColor == Color.Transparent || fillColor == Color.Empty);
|
bool drawShadow = shadow && (fillColor == Color.Transparent || fillColor == Color.Empty);
|
||||||
|
|
||||||
DrawText(graphics, rect, lineThickness, lineColor, drawShadow, _stringFormat, text, _font);
|
DrawText(graphics, rect, lineThickness, lineColor, drawShadow, _stringFormat, text, _font);
|
||||||
|
|
|
@ -23,50 +23,97 @@
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
using Dapplo.Windows.Common.Structs;
|
using Dapplo.Windows.Common.Structs;
|
||||||
using Dapplo.Windows.User32.Enums;
|
using Dapplo.Windows.User32.Enums;
|
||||||
using Dapplo.Windows.User32.Structs;
|
using Dapplo.Windows.User32.Structs;
|
||||||
|
using Greenshot.Addon.LegacyEditor.Drawing;
|
||||||
using Greenshot.Addon.LegacyEditor.Drawing.Fields;
|
using Greenshot.Addon.LegacyEditor.Drawing.Fields;
|
||||||
using Greenshot.Addons.Interfaces.Drawing;
|
using Greenshot.Addons.Interfaces.Drawing;
|
||||||
|
|
||||||
namespace Greenshot.Addon.LegacyEditor
|
namespace Greenshot.Addon.LegacyEditor
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Extension methods for the IEditorConfiguration
|
||||||
|
/// </summary>
|
||||||
public static class EditorConfigurationExtensions
|
public static class EditorConfigurationExtensions
|
||||||
{
|
{
|
||||||
/// <param name="configuration"></param>
|
/// <summary>
|
||||||
|
/// This is a factory method for IField which considers the defaults from the configuration
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="editorConfiguration"></param>
|
||||||
/// <param name="requestingType">Type of the class for which to create the field</param>
|
/// <param name="requestingType">Type of the class for which to create the field</param>
|
||||||
/// <param name="fieldType">FieldType of the field to construct</param>
|
/// <param name="fieldType">FieldType of the field to construct</param>
|
||||||
/// <param name="preferredDefaultValue"></param>
|
/// <param name="preferredDefaultValue"></param>
|
||||||
/// <returns>a new Field of the given fieldType, with the scope of it's value being restricted to the Type scope</returns>
|
/// <returns>a new Field of the given fieldType, with the scope of it's value being restricted to the Type scope</returns>
|
||||||
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 requestingTypeName = requestingType.Name;
|
||||||
var requestedField = requestingTypeName + "." + fieldType.Name;
|
var requestedField = requestingTypeName + "." + fieldType.Name;
|
||||||
var fieldValue = preferredDefaultValue;
|
var fieldValue = preferredDefaultValue;
|
||||||
|
|
||||||
// Check if the configuration exists
|
// Check if the configuration exists
|
||||||
if (configuration.LastUsedFieldValues == null)
|
if (editorConfiguration.LastUsedFieldValues == null)
|
||||||
{
|
{
|
||||||
configuration.LastUsedFieldValues = new Dictionary<string, object>();
|
editorConfiguration.LastUsedFieldValues = new Dictionary<string, object>();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if settings for the requesting type exist, if not create!
|
// 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)!
|
// 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
|
else
|
||||||
{
|
{
|
||||||
// Overwrite null value
|
// Overwrite null value
|
||||||
configuration.LastUsedFieldValues[requestedField] = fieldValue;
|
editorConfiguration.LastUsedFieldValues[requestedField] = fieldValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
configuration.LastUsedFieldValues.Add(requestedField, fieldValue);
|
editorConfiguration.LastUsedFieldValues.Add(requestedField, fieldValue);
|
||||||
}
|
}
|
||||||
return new Field(fieldType, requestingType)
|
return new Field(fieldType, requestingType)
|
||||||
{
|
{
|
||||||
|
@ -74,53 +121,71 @@ namespace Greenshot.Addon.LegacyEditor
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
public static void UpdateLastFieldValue(this IEditorConfiguration configuration, IField field)
|
/// Update the last field value in the configuration
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="editorConfiguration">IEditorConfiguration</param>
|
||||||
|
/// <param name="field">IField</param>
|
||||||
|
public static void UpdateLastFieldValue(this IEditorConfiguration editorConfiguration, IField field)
|
||||||
{
|
{
|
||||||
var requestedField = field.Scope + "." + field.FieldType.Name;
|
var requestedField = field.Scope + "." + field.FieldType.Name;
|
||||||
// Check if the configuration exists
|
// Check if the configuration exists
|
||||||
if (configuration.LastUsedFieldValues == null)
|
if (editorConfiguration.LastUsedFieldValues == null)
|
||||||
{
|
{
|
||||||
configuration.LastUsedFieldValues = new Dictionary<string, object>();
|
editorConfiguration.LastUsedFieldValues = new Dictionary<string, object>();
|
||||||
}
|
}
|
||||||
// check if settings for the requesting type exist, if not create!
|
// 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
|
else
|
||||||
{
|
{
|
||||||
configuration.LastUsedFieldValues.Add(requestedField, field.Value);
|
editorConfiguration.LastUsedFieldValues[requestedField] = field.Value.ToString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void ResetEditorPlacement(this IEditorConfiguration configuration)
|
/// <summary>
|
||||||
|
/// Reset the WindowPlacement for the editor
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="editorConfiguration">IEditorConfiguration</param>
|
||||||
|
public static void ResetEditorPlacement(this IEditorConfiguration editorConfiguration)
|
||||||
{
|
{
|
||||||
configuration.WindowNormalPosition = new NativeRect(100, 100, 400, 400);
|
editorConfiguration.WindowNormalPosition = new NativeRect(100, 100, 400, 400);
|
||||||
configuration.WindowMaxPosition = new NativePoint(-1, -1);
|
editorConfiguration.WindowMaxPosition = new NativePoint(-1, -1);
|
||||||
configuration.WindowMinPosition = new NativePoint(-1, -1);
|
editorConfiguration.WindowMinPosition = new NativePoint(-1, -1);
|
||||||
configuration.WindowPlacementFlags = 0;
|
editorConfiguration.WindowPlacementFlags = 0;
|
||||||
configuration.ShowWindowCommand = ShowWindowCommands.Normal;
|
editorConfiguration.ShowWindowCommand = ShowWindowCommands.Normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static WindowPlacement GetEditorPlacement(this IEditorConfiguration configuration)
|
/// <summary>
|
||||||
|
/// Retrieve the WindowPlacement from the configuration
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="editorConfiguration">IEditorConfiguration</param>
|
||||||
|
/// <returns>WindowPlacement</returns>
|
||||||
|
public static WindowPlacement GetEditorPlacement(this IEditorConfiguration editorConfiguration)
|
||||||
{
|
{
|
||||||
var placement = WindowPlacement.Create();
|
var placement = WindowPlacement.Create();
|
||||||
placement.NormalPosition = configuration.WindowNormalPosition;
|
placement.NormalPosition = editorConfiguration.WindowNormalPosition;
|
||||||
placement.MaxPosition = configuration.WindowMaxPosition;
|
placement.MaxPosition = editorConfiguration.WindowMaxPosition;
|
||||||
placement.MinPosition = configuration.WindowMinPosition;
|
placement.MinPosition = editorConfiguration.WindowMinPosition;
|
||||||
placement.ShowCmd = configuration.ShowWindowCommand;
|
placement.ShowCmd = editorConfiguration.ShowWindowCommand;
|
||||||
placement.Flags = configuration.WindowPlacementFlags;
|
placement.Flags = editorConfiguration.WindowPlacementFlags;
|
||||||
return placement;
|
return placement;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetEditorPlacement(this IEditorConfiguration configuration, WindowPlacement placement)
|
/// <summary>
|
||||||
|
/// Store the WindowPlacement for the editor
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="editorConfiguration">IEditorConfiguration</param>
|
||||||
|
/// <param name="placement">WindowPlacement</param>
|
||||||
|
public static void SetEditorPlacement(this IEditorConfiguration editorConfiguration, WindowPlacement placement)
|
||||||
{
|
{
|
||||||
configuration.WindowNormalPosition = placement.NormalPosition;
|
editorConfiguration.WindowNormalPosition = placement.NormalPosition;
|
||||||
configuration.WindowMaxPosition = placement.MaxPosition;
|
editorConfiguration.WindowMaxPosition = placement.MaxPosition;
|
||||||
configuration.WindowMinPosition = placement.MinPosition;
|
editorConfiguration.WindowMinPosition = placement.MinPosition;
|
||||||
configuration.ShowWindowCommand = placement.ShowCmd;
|
editorConfiguration.ShowWindowCommand = placement.ShowCmd;
|
||||||
configuration.WindowPlacementFlags = placement.Flags;
|
editorConfiguration.WindowPlacementFlags = placement.Flags;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -677,23 +677,23 @@ namespace Greenshot.Addon.LegacyEditor.Forms
|
||||||
{
|
{
|
||||||
_disposables = new CompositeDisposable
|
_disposables = new CompositeDisposable
|
||||||
{
|
{
|
||||||
new BidirectionalBinding(btnFillColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.FILL_COLOR), "Value", NotNullValidator.GetInstance()),
|
new BidirectionalBinding(btnFillColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldTypes.FILL_COLOR), "Value", NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(btnLineColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldType.LINE_COLOR), "Value", NotNullValidator.GetInstance()),
|
new BidirectionalBinding(btnLineColor, "SelectedColor", _surface.FieldAggregator.GetField(FieldTypes.LINE_COLOR), "Value", NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(lineThicknessUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.LINE_THICKNESS), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()),
|
new BidirectionalBinding(lineThicknessUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.LINE_THICKNESS), "Value", DecimalIntConverter.GetInstance(),NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(blurRadiusUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.BLUR_RADIUS), "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(FieldType.MAGNIFICATION_FACTOR), "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(FieldType.PIXEL_SIZE), "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(FieldType.BRIGHTNESS), "Value", DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()),
|
new BidirectionalBinding(brightnessUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.BRIGHTNESS), "Value", DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(fontFamilyComboBox, "Text", _surface.FieldAggregator.GetField(FieldType.FONT_FAMILY), "Value", NotNullValidator.GetInstance()),
|
new BidirectionalBinding(fontFamilyComboBox, "Text", _surface.FieldAggregator.GetField(FieldTypes.FONT_FAMILY), "Value", NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(fontSizeUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.FONT_SIZE), "Value", DecimalFloatConverter.GetInstance(),NotNullValidator.GetInstance()),
|
new BidirectionalBinding(fontSizeUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.FONT_SIZE), "Value", DecimalFloatConverter.GetInstance(),NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(fontBoldButton, "Checked", _surface.FieldAggregator.GetField(FieldType.FONT_BOLD), "Value", NotNullValidator.GetInstance()),
|
new BidirectionalBinding(fontBoldButton, "Checked", _surface.FieldAggregator.GetField(FieldTypes.FONT_BOLD), "Value", NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(fontItalicButton, "Checked", _surface.FieldAggregator.GetField(FieldType.FONT_ITALIC), "Value", NotNullValidator.GetInstance()),
|
new BidirectionalBinding(fontItalicButton, "Checked", _surface.FieldAggregator.GetField(FieldTypes.FONT_ITALIC), "Value", NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(textHorizontalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.TEXT_HORIZONTAL_ALIGNMENT), "Value",NotNullValidator.GetInstance()),
|
new BidirectionalBinding(textHorizontalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT), "Value",NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(textVerticalAlignmentButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.TEXT_VERTICAL_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(FieldType.SHADOW), "Value", NotNullValidator.GetInstance()),
|
new BidirectionalBinding(shadowButton, "Checked", _surface.FieldAggregator.GetField(FieldTypes.SHADOW), "Value", NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(previewQualityUpDown, "Value", _surface.FieldAggregator.GetField(FieldType.PREVIEW_QUALITY), "Value",DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()),
|
new BidirectionalBinding(previewQualityUpDown, "Value", _surface.FieldAggregator.GetField(FieldTypes.PREVIEW_QUALITY), "Value",DecimalDoublePercentageConverter.GetInstance(), NotNullValidator.GetInstance()),
|
||||||
new BidirectionalBinding(obfuscateModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.PREPARED_FILTER_OBFUSCATE), "Value"),
|
new BidirectionalBinding(obfuscateModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.PREPARED_FILTER_OBFUSCATE), "Value"),
|
||||||
new BidirectionalBinding(highlightModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldType.PREPARED_FILTER_HIGHLIGHT), "Value"),
|
new BidirectionalBinding(highlightModeButton, "SelectedTag", _surface.FieldAggregator.GetField(FieldTypes.PREPARED_FILTER_HIGHLIGHT), "Value"),
|
||||||
new BidirectionalBinding(counterUpDown, "Value", _surface, "CounterStart", DecimalIntConverter.GetInstance(), NotNullValidator.GetInstance())
|
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)
|
if (_surface.HasSelectedElements || _surface.DrawingMode != DrawingModes.None)
|
||||||
{
|
{
|
||||||
var props = _surface.FieldAggregator;
|
var props = _surface.FieldAggregator;
|
||||||
btnFillColor.Visible = props.HasFieldValue(FieldType.FILL_COLOR);
|
btnFillColor.Visible = props.HasFieldValue(FieldTypes.FILL_COLOR);
|
||||||
btnLineColor.Visible = props.HasFieldValue(FieldType.LINE_COLOR);
|
btnLineColor.Visible = props.HasFieldValue(FieldTypes.LINE_COLOR);
|
||||||
lineThicknessLabel.Visible = lineThicknessUpDown.Visible = props.HasFieldValue(FieldType.LINE_THICKNESS);
|
lineThicknessLabel.Visible = lineThicknessUpDown.Visible = props.HasFieldValue(FieldTypes.LINE_THICKNESS);
|
||||||
blurRadiusLabel.Visible = blurRadiusUpDown.Visible = props.HasFieldValue(FieldType.BLUR_RADIUS);
|
blurRadiusLabel.Visible = blurRadiusUpDown.Visible = props.HasFieldValue(FieldTypes.BLUR_RADIUS);
|
||||||
previewQualityLabel.Visible = previewQualityUpDown.Visible = props.HasFieldValue(FieldType.PREVIEW_QUALITY);
|
previewQualityLabel.Visible = previewQualityUpDown.Visible = props.HasFieldValue(FieldTypes.PREVIEW_QUALITY);
|
||||||
magnificationFactorLabel.Visible = magnificationFactorUpDown.Visible = props.HasFieldValue(FieldType.MAGNIFICATION_FACTOR);
|
magnificationFactorLabel.Visible = magnificationFactorUpDown.Visible = props.HasFieldValue(FieldTypes.MAGNIFICATION_FACTOR);
|
||||||
pixelSizeLabel.Visible = pixelSizeUpDown.Visible = props.HasFieldValue(FieldType.PIXEL_SIZE);
|
pixelSizeLabel.Visible = pixelSizeUpDown.Visible = props.HasFieldValue(FieldTypes.PIXEL_SIZE);
|
||||||
brightnessLabel.Visible = brightnessUpDown.Visible = props.HasFieldValue(FieldType.BRIGHTNESS);
|
brightnessLabel.Visible = brightnessUpDown.Visible = props.HasFieldValue(FieldTypes.BRIGHTNESS);
|
||||||
arrowHeadsLabel.Visible = arrowHeadsDropDownButton.Visible = props.HasFieldValue(FieldType.ARROWHEADS);
|
arrowHeadsLabel.Visible = arrowHeadsDropDownButton.Visible = props.HasFieldValue(FieldTypes.ARROWHEADS);
|
||||||
fontFamilyComboBox.Visible = props.HasFieldValue(FieldType.FONT_FAMILY);
|
fontFamilyComboBox.Visible = props.HasFieldValue(FieldTypes.FONT_FAMILY);
|
||||||
fontSizeLabel.Visible = fontSizeUpDown.Visible = props.HasFieldValue(FieldType.FONT_SIZE);
|
fontSizeLabel.Visible = fontSizeUpDown.Visible = props.HasFieldValue(FieldTypes.FONT_SIZE);
|
||||||
fontBoldButton.Visible = props.HasFieldValue(FieldType.FONT_BOLD);
|
fontBoldButton.Visible = props.HasFieldValue(FieldTypes.FONT_BOLD);
|
||||||
fontItalicButton.Visible = props.HasFieldValue(FieldType.FONT_ITALIC);
|
fontItalicButton.Visible = props.HasFieldValue(FieldTypes.FONT_ITALIC);
|
||||||
textHorizontalAlignmentButton.Visible = props.HasFieldValue(FieldType.TEXT_HORIZONTAL_ALIGNMENT);
|
textHorizontalAlignmentButton.Visible = props.HasFieldValue(FieldTypes.TEXT_HORIZONTAL_ALIGNMENT);
|
||||||
textVerticalAlignmentButton.Visible = props.HasFieldValue(FieldType.TEXT_VERTICAL_ALIGNMENT);
|
textVerticalAlignmentButton.Visible = props.HasFieldValue(FieldTypes.TEXT_VERTICAL_ALIGNMENT);
|
||||||
shadowButton.Visible = props.HasFieldValue(FieldType.SHADOW);
|
shadowButton.Visible = props.HasFieldValue(FieldTypes.SHADOW);
|
||||||
counterLabel.Visible = counterUpDown.Visible = props.HasFieldValue(FieldType.FLAGS)
|
counterLabel.Visible = counterUpDown.Visible = props.HasFieldValue(FieldTypes.FLAGS)
|
||||||
&& ((FieldFlag) props.GetFieldValue(FieldType.FLAGS) & FieldFlag.COUNTER) == FieldFlag.COUNTER;
|
&& ((FieldFlag) props.GetFieldValue(FieldTypes.FLAGS) & FieldFlag.COUNTER) == FieldFlag.COUNTER;
|
||||||
btnConfirm.Visible = btnCancel.Visible = props.HasFieldValue(FieldType.FLAGS)
|
btnConfirm.Visible = btnCancel.Visible = props.HasFieldValue(FieldTypes.FLAGS)
|
||||||
&& ((FieldFlag) props.GetFieldValue(FieldType.FLAGS) & FieldFlag.CONFIRMABLE) == FieldFlag.CONFIRMABLE;
|
&& ((FieldFlag) props.GetFieldValue(FieldTypes.FLAGS) & FieldFlag.CONFIRMABLE) == FieldFlag.CONFIRMABLE;
|
||||||
|
|
||||||
obfuscateModeButton.Visible = props.HasFieldValue(FieldType.PREPARED_FILTER_OBFUSCATE);
|
obfuscateModeButton.Visible = props.HasFieldValue(FieldTypes.PREPARED_FILTER_OBFUSCATE);
|
||||||
highlightModeButton.Visible = props.HasFieldValue(FieldType.PREPARED_FILTER_HIGHLIGHT);
|
highlightModeButton.Visible = props.HasFieldValue(FieldTypes.PREPARED_FILTER_HIGHLIGHT);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -766,7 +766,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms
|
||||||
var props = _surface.FieldAggregator;
|
var props = _surface.FieldAggregator;
|
||||||
// if a confirmable element is selected, we must disable most of the controls
|
// if a confirmable element is selected, we must disable most of the controls
|
||||||
// since we demand confirmation or cancel for confirmable element
|
// 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
|
// disable most controls
|
||||||
if (!_controlsDisabledDueToConfirmable)
|
if (!_controlsDisabledDueToConfirmable)
|
||||||
|
@ -814,7 +814,7 @@ namespace Greenshot.Addon.LegacyEditor.Forms
|
||||||
|
|
||||||
private void ArrowHeadsToolStripMenuItemClick(object sender, EventArgs e)
|
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)
|
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
|
// in addition to selection, deselection of elements, we need to
|
||||||
// refresh toolbar if prepared filter mode is changed
|
// 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();
|
RefreshFieldControls();
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,12 @@
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
<TargetFrameworkProfile />
|
<TargetFrameworkProfile />
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
|
||||||
|
<LangVersion>latest</LangVersion>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'">
|
||||||
|
<LangVersion>latest</LangVersion>
|
||||||
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
<Reference Include="Autofac, Version=4.8.1.0, Culture=neutral, PublicKeyToken=17863af14b0044da, processorArchitecture=MSIL">
|
||||||
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
|
<HintPath>..\packages\Autofac.4.8.1\lib\net45\Autofac.dll</HintPath>
|
||||||
|
@ -205,6 +211,7 @@
|
||||||
<Compile Include="Drawing\Fields\Binding\NotNullValidator.cs" />
|
<Compile Include="Drawing\Fields\Binding\NotNullValidator.cs" />
|
||||||
<Compile Include="Drawing\Fields\Field.cs" />
|
<Compile Include="Drawing\Fields\Field.cs" />
|
||||||
<Compile Include="Drawing\Fields\FieldAggregator.cs" />
|
<Compile Include="Drawing\Fields\FieldAggregator.cs" />
|
||||||
|
<Compile Include="Drawing\Fields\FieldTypes.cs" />
|
||||||
<Compile Include="Drawing\Fields\FieldType.cs" />
|
<Compile Include="Drawing\Fields\FieldType.cs" />
|
||||||
<Compile Include="Drawing\FilterContainer.cs" />
|
<Compile Include="Drawing\FilterContainer.cs" />
|
||||||
<Compile Include="Drawing\Filters\AbstractFilter.cs" />
|
<Compile Include="Drawing\Filters\AbstractFilter.cs" />
|
||||||
|
|
|
@ -21,10 +21,14 @@
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
using System;
|
||||||
|
|
||||||
namespace Greenshot.Addons.Interfaces.Drawing
|
namespace Greenshot.Addons.Interfaces.Drawing
|
||||||
{
|
{
|
||||||
public interface IFieldType
|
public interface IFieldType
|
||||||
{
|
{
|
||||||
string Name { get; set; }
|
string Name { get; }
|
||||||
|
|
||||||
|
Type ValueType { get; }
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue