From 08a00c16969aaecc12431a77077484eba32f71af Mon Sep 17 00:00:00 2001 From: Jaex Date: Sat, 20 May 2023 00:10:32 +0300 Subject: [PATCH] Added image effect option summary near effect names --- ShareX.HelpersLib/Helpers/ImageHelpers.cs | 4 +- ShareX.ImageEffectsLib/Adjustments/Alpha.cs | 5 ++ .../Adjustments/Brightness.cs | 5 ++ .../Adjustments/Colorize.cs | 5 ++ .../Adjustments/Contrast.cs | 5 ++ ShareX.ImageEffectsLib/Adjustments/Gamma.cs | 5 ++ .../Adjustments/Grayscale.cs | 5 ++ ShareX.ImageEffectsLib/Adjustments/Hue.cs | 5 ++ .../Adjustments/Saturation.cs | 5 ++ ShareX.ImageEffectsLib/Adjustments/Sepia.cs | 5 ++ .../Drawings/DrawBackground.cs | 10 +++ .../Drawings/DrawBackgroundImage.cs | 10 +++ ShareX.ImageEffectsLib/Drawings/DrawBorder.cs | 5 ++ .../Drawings/DrawCheckerboard.cs | 5 ++ ShareX.ImageEffectsLib/Drawings/DrawImage.cs | 10 +++ .../Drawings/DrawParticles.cs | 10 +++ ShareX.ImageEffectsLib/Drawings/DrawText.cs | 10 +++ ShareX.ImageEffectsLib/Drawings/DrawTextEx.cs | 10 +++ ShareX.ImageEffectsLib/Filters/Blur.cs | 5 ++ ShareX.ImageEffectsLib/Filters/ColorDepth.cs | 12 ++++ .../Filters/GaussianBlur.cs | 5 ++ ShareX.ImageEffectsLib/Filters/Glow.cs | 5 ++ ShareX.ImageEffectsLib/Filters/Outline.cs | 5 ++ ShareX.ImageEffectsLib/Filters/Pixelate.cs | 5 ++ ShareX.ImageEffectsLib/Filters/Reflection.cs | 5 ++ ShareX.ImageEffectsLib/Filters/Shadow.cs | 5 ++ ShareX.ImageEffectsLib/Filters/Slice.cs | 5 ++ ShareX.ImageEffectsLib/Filters/TornEdge.cs | 5 ++ ShareX.ImageEffectsLib/Filters/WaveEdge.cs | 5 ++ .../Forms/ImageEffectsForm.cs | 27 ++++++- .../Forms/ImageEffectsForm.resx | 70 +++++++++---------- ShareX.ImageEffectsLib/ImageEffect.cs | 15 +++- .../Manipulations/AutoCrop.cs | 10 +++ .../Manipulations/Canvas.cs | 10 +++ ShareX.ImageEffectsLib/Manipulations/Crop.cs | 10 +++ ShareX.ImageEffectsLib/Manipulations/Flip.cs | 5 ++ .../Manipulations/ForceProportions.cs | 5 ++ .../Manipulations/Resize.cs | 19 +++++ .../Manipulations/Rotate.cs | 5 ++ .../Manipulations/RoundedCorners.cs | 5 ++ ShareX.ImageEffectsLib/Manipulations/Scale.cs | 19 +++++ ShareX.ImageEffectsLib/Manipulations/Skew.cs | 5 ++ .../Shapes/Tool/CutOutTool.cs | 3 +- 43 files changed, 348 insertions(+), 41 deletions(-) diff --git a/ShareX.HelpersLib/Helpers/ImageHelpers.cs b/ShareX.HelpersLib/Helpers/ImageHelpers.cs index 919c34121..08b18eda2 100644 --- a/ShareX.HelpersLib/Helpers/ImageHelpers.cs +++ b/ShareX.HelpersLib/Helpers/ImageHelpers.cs @@ -522,10 +522,8 @@ public static Bitmap DrawBackgroundImage(Bitmap bmp, Bitmap backgroundImage, boo if (tile) { - using (TextureBrush brush = new TextureBrush(backgroundImage)) + using (TextureBrush brush = new TextureBrush(backgroundImage, WrapMode.Tile)) { - brush.WrapMode = WrapMode.Tile; - if (center) { int tileX = (bmpResult.Width - backgroundImage.Width) / 2 % backgroundImage.Width; diff --git a/ShareX.ImageEffectsLib/Adjustments/Alpha.cs b/ShareX.ImageEffectsLib/Adjustments/Alpha.cs index 139a32968..5a7e6fef5 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Alpha.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Alpha.cs @@ -49,5 +49,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Alpha(Value, Addition).Apply(bmp); } } + + protected override string GetSummary() + { + return $"{Value}, {Addition}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Brightness.cs b/ShareX.ImageEffectsLib/Adjustments/Brightness.cs index 97b8eaeaf..0dda83161 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Brightness.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Brightness.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Brightness(Value).Apply(bmp); } } + + protected override string GetSummary() + { + return Value.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Colorize.cs b/ShareX.ImageEffectsLib/Adjustments/Colorize.cs index c81f32b14..581021e9b 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Colorize.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Colorize.cs @@ -50,5 +50,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Colorize(Color, Value).Apply(bmp); } } + + protected override string GetSummary() + { + return $"{Color.R}, {Color.G}, {Color.B}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Contrast.cs b/ShareX.ImageEffectsLib/Adjustments/Contrast.cs index 568728d07..6518e95cb 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Contrast.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Contrast.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Contrast(Value).Apply(bmp); } } + + protected override string GetSummary() + { + return Value.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Gamma.cs b/ShareX.ImageEffectsLib/Adjustments/Gamma.cs index e77a823af..91e8f0a90 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Gamma.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Gamma.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.ChangeGamma(bmp, Value); } } + + protected override string GetSummary() + { + return Value.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Grayscale.cs b/ShareX.ImageEffectsLib/Adjustments/Grayscale.cs index e19fc6e0f..f404f4730 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Grayscale.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Grayscale.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Grayscale(Value).Apply(bmp); } } + + protected override string GetSummary() + { + return Value.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Hue.cs b/ShareX.ImageEffectsLib/Adjustments/Hue.cs index 54fbd2988..c05958913 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Hue.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Hue.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Hue(Angle).Apply(bmp); } } + + protected override string GetSummary() + { + return Angle + "°"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Saturation.cs b/ShareX.ImageEffectsLib/Adjustments/Saturation.cs index 7f6d9f836..9ce606f1f 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Saturation.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Saturation.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Saturation(Value).Apply(bmp); } } + + protected override string GetSummary() + { + return Value.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Adjustments/Sepia.cs b/ShareX.ImageEffectsLib/Adjustments/Sepia.cs index 8265150e6..132475e03 100644 --- a/ShareX.ImageEffectsLib/Adjustments/Sepia.cs +++ b/ShareX.ImageEffectsLib/Adjustments/Sepia.cs @@ -46,5 +46,10 @@ public override Bitmap Apply(Bitmap bmp) return ColorMatrixManager.Sepia(Value).Apply(bmp); } } + + protected override string GetSummary() + { + return Value.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawBackground.cs b/ShareX.ImageEffectsLib/Drawings/DrawBackground.cs index a42caeb0d..048eabd19 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawBackground.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawBackground.cs @@ -69,5 +69,15 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.FillBackground(bmp, Color); } } + + protected override string GetSummary() + { + if (!UseGradient) + { + return $"{Color.R}, {Color.G}, {Color.B}"; + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawBackgroundImage.cs b/ShareX.ImageEffectsLib/Drawings/DrawBackgroundImage.cs index cc9795264..7d45bf664 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawBackgroundImage.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawBackgroundImage.cs @@ -51,5 +51,15 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.DrawBackgroundImage(bmp, ImageFilePath, Center, Tile); } + + protected override string GetSummary() + { + if (!string.IsNullOrEmpty(ImageFilePath)) + { + return FileHelpers.GetFileNameSafe(ImageFilePath); + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs b/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs index 3a9a67007..ca1273a98 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawBorder.cs @@ -88,5 +88,10 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.DrawBorder(bmp, Color, Size, Type, DashStyle); } + + protected override string GetSummary() + { + return Size + "px"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawCheckerboard.cs b/ShareX.ImageEffectsLib/Drawings/DrawCheckerboard.cs index 5513aea4b..706f9418f 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawCheckerboard.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawCheckerboard.cs @@ -63,5 +63,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.DrawCheckers(bmp, Size, Color, Color2); } + + protected override string GetSummary() + { + return $"{Size}x{Size}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawImage.cs b/ShareX.ImageEffectsLib/Drawings/DrawImage.cs index 0f1547842..377588f8e 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawImage.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawImage.cs @@ -174,5 +174,15 @@ public override Bitmap Apply(Bitmap bmp) return bmp; } + + protected override string GetSummary() + { + if (!string.IsNullOrEmpty(ImageLocation)) + { + return FileHelpers.GetFileNameSafe(ImageLocation); + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawParticles.cs b/ShareX.ImageEffectsLib/Drawings/DrawParticles.cs index 17f632c08..f6047cad4 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawParticles.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawParticles.cs @@ -220,5 +220,15 @@ private void DrawImage(Image img, Image img2, Graphics g) g.PixelOffsetMode = PixelOffsetMode.Default; } + + protected override string GetSummary() + { + if (!string.IsNullOrEmpty(ImageFolder)) + { + return FileHelpers.GetFileNameSafe(ImageFolder); + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawText.cs b/ShareX.ImageEffectsLib/Drawings/DrawText.cs index 6a8b251d1..f5e2c5bfd 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawText.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawText.cs @@ -240,5 +240,15 @@ public override Bitmap Apply(Bitmap bmp) return bmp; } + + protected override string GetSummary() + { + if (!string.IsNullOrEmpty(Text)) + { + return Text.Truncate(20, "..."); + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Drawings/DrawTextEx.cs b/ShareX.ImageEffectsLib/Drawings/DrawTextEx.cs index 301489a39..a867ae5db 100644 --- a/ShareX.ImageEffectsLib/Drawings/DrawTextEx.cs +++ b/ShareX.ImageEffectsLib/Drawings/DrawTextEx.cs @@ -298,5 +298,15 @@ public override Bitmap Apply(Bitmap bmp) return bmp; } } + + protected override string GetSummary() + { + if (!string.IsNullOrEmpty(Text)) + { + return Text.Truncate(20, "..."); + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Blur.cs b/ShareX.ImageEffectsLib/Filters/Blur.cs index a0b669307..4fd1a17d0 100644 --- a/ShareX.ImageEffectsLib/Filters/Blur.cs +++ b/ShareX.ImageEffectsLib/Filters/Blur.cs @@ -61,5 +61,10 @@ public override Bitmap Apply(Bitmap bmp) ImageHelpers.ApplyBoxBlur(bmp, Radius); return bmp; } + + protected override string GetSummary() + { + return Radius.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/ColorDepth.cs b/ShareX.ImageEffectsLib/Filters/ColorDepth.cs index 98424bddb..d888c8b8e 100644 --- a/ShareX.ImageEffectsLib/Filters/ColorDepth.cs +++ b/ShareX.ImageEffectsLib/Filters/ColorDepth.cs @@ -57,5 +57,17 @@ public override Bitmap Apply(Bitmap bmp) ImageHelpers.ColorDepth(bmp, BitsPerChannel); return bmp; } + + protected override string GetSummary() + { + string summary = BitsPerChannel + " bit"; + + if (BitsPerChannel > 1) + { + summary += "s"; + } + + return summary; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/GaussianBlur.cs b/ShareX.ImageEffectsLib/Filters/GaussianBlur.cs index 0d084d584..82c812dcc 100644 --- a/ShareX.ImageEffectsLib/Filters/GaussianBlur.cs +++ b/ShareX.ImageEffectsLib/Filters/GaussianBlur.cs @@ -83,5 +83,10 @@ public override Bitmap Apply(Bitmap bmp) return kernelVert.Apply(horizPass); } } + + protected override string GetSummary() + { + return Size.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Glow.cs b/ShareX.ImageEffectsLib/Filters/Glow.cs index fc090d1b7..9c5440a82 100644 --- a/ShareX.ImageEffectsLib/Filters/Glow.cs +++ b/ShareX.ImageEffectsLib/Filters/Glow.cs @@ -110,5 +110,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.AddGlow(bmp, Size, Strength, Color, Offset, UseGradient ? Gradient : null); } + + protected override string GetSummary() + { + return Size.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Outline.cs b/ShareX.ImageEffectsLib/Filters/Outline.cs index d6cce39b1..edb9b33c8 100644 --- a/ShareX.ImageEffectsLib/Filters/Outline.cs +++ b/ShareX.ImageEffectsLib/Filters/Outline.cs @@ -77,5 +77,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.Outline(bmp, Size, Color, Padding, OutlineOnly); } + + protected override string GetSummary() + { + return Size.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Pixelate.cs b/ShareX.ImageEffectsLib/Filters/Pixelate.cs index a383e77e8..95b16a58e 100644 --- a/ShareX.ImageEffectsLib/Filters/Pixelate.cs +++ b/ShareX.ImageEffectsLib/Filters/Pixelate.cs @@ -75,5 +75,10 @@ public override Bitmap Apply(Bitmap bmp) ImageHelpers.Pixelate(bmp, Size, BorderSize, BorderColor); return bmp; } + + protected override string GetSummary() + { + return Size.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Reflection.cs b/ShareX.ImageEffectsLib/Filters/Reflection.cs index 0421ee323..930b5f528 100644 --- a/ShareX.ImageEffectsLib/Filters/Reflection.cs +++ b/ShareX.ImageEffectsLib/Filters/Reflection.cs @@ -94,5 +94,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.DrawReflection(bmp, Percentage, MaxAlpha, MinAlpha, Offset, Skew, SkewSize); } + + protected override string GetSummary() + { + return Percentage.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Shadow.cs b/ShareX.ImageEffectsLib/Filters/Shadow.cs index 446681726..737648854 100644 --- a/ShareX.ImageEffectsLib/Filters/Shadow.cs +++ b/ShareX.ImageEffectsLib/Filters/Shadow.cs @@ -83,5 +83,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.AddShadow(bmp, Opacity, Size, Darkness + 1, Color, Offset, AutoResize); } + + protected override string GetSummary() + { + return Size.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/Slice.cs b/ShareX.ImageEffectsLib/Filters/Slice.cs index 111c1962f..ff0bc0e54 100644 --- a/ShareX.ImageEffectsLib/Filters/Slice.cs +++ b/ShareX.ImageEffectsLib/Filters/Slice.cs @@ -86,5 +86,10 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.Slice(bmp, minSliceHeight, maxSliceHeight, minSliceShift, maxSliceShift); } } + + protected override string GetSummary() + { + return $"{MinSliceHeight}, {MaxSliceHeight}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/TornEdge.cs b/ShareX.ImageEffectsLib/Filters/TornEdge.cs index aa0f92a8d..159660c54 100644 --- a/ShareX.ImageEffectsLib/Filters/TornEdge.cs +++ b/ShareX.ImageEffectsLib/Filters/TornEdge.cs @@ -54,5 +54,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.TornEdges(bmp, Depth, Range, Sides, CurvedEdges, true); } + + protected override string GetSummary() + { + return $"{Depth}, {Range}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Filters/WaveEdge.cs b/ShareX.ImageEffectsLib/Filters/WaveEdge.cs index 397f11376..444fb8170 100644 --- a/ShareX.ImageEffectsLib/Filters/WaveEdge.cs +++ b/ShareX.ImageEffectsLib/Filters/WaveEdge.cs @@ -51,5 +51,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.WavyEdges(bmp, Depth, Range, Sides); } + + protected override string GetSummary() + { + return $"{Depth}, {Range}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.cs b/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.cs index 9d31f3cbc..492e8eaa4 100644 --- a/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.cs +++ b/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.cs @@ -335,6 +335,30 @@ private void UpdateControlStates() btnEffectRemove.Enabled = btnEffectDuplicate.Enabled = lvEffects.SelectedItems.Count > 0; } + private void UpdateEffectName() + { + ImageEffectPreset preset = GetSelectedPreset(); + + if (preset != null) + { + if (lvEffects.SelectedItems.Count > 0) + { + ListViewItem lvi = lvEffects.SelectedItems[0]; + + if (lvi.Tag is ImageEffect imageEffect) + { + string text = imageEffect.ToString(); + + if (lvi.Text != text) + { + lvi.Text = text; + txtEffectName.SetWatermark(imageEffect.ToString()); + } + } + } + } + } + private void GeneratePreviewImage(int padding) { if (pbResult.ClientSize.Width > 0 && pbResult.ClientSize.Height > 0) @@ -680,7 +704,7 @@ private void lvEffects_SelectedIndexChanged(object sender, EventArgs e) if (lvi.Tag is ImageEffect imageEffect) { txtEffectName.Text = imageEffect.Name; - txtEffectName.SetWatermark(imageEffect.GetType().GetDescription()); + txtEffectName.SetWatermark(imageEffect.ToString()); pgSettings.SelectedObject = imageEffect; } } @@ -714,6 +738,7 @@ private void lvEffects_KeyDown(object sender, KeyEventArgs e) private void pgSettings_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) { + UpdateEffectName(); UpdatePreview(); } diff --git a/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.resx b/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.resx index ee1ec8eb7..f82f84bb4 100644 --- a/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.resx +++ b/ShareX.ImageEffectsLib/Forms/ImageEffectsForm.resx @@ -171,6 +171,15 @@ 126, 17 + + 131, 48 + + + cmsLoadImage + + + System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + 130, 22 @@ -183,15 +192,6 @@ From clipboard - - 131, 48 - - - cmsLoadImage - - - System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - True @@ -226,7 +226,7 @@ 184, 24 - 144, 20 + 192, 20 8 @@ -250,7 +250,7 @@ NoControl - 960, 552 + 1096, 552 120, 24 @@ -280,7 +280,7 @@ NoControl - 832, 552 + 968, 552 120, 24 @@ -399,6 +399,9 @@ 17 + + 260, 17 + NoControl @@ -411,9 +414,6 @@ 3 - - 260, 17 - New @@ -648,6 +648,9 @@ 7 + + 260, 17 + Top, Bottom, Left @@ -655,7 +658,7 @@ False - 336, 56 + 384, 56 288, 488 @@ -712,7 +715,7 @@ NoControl - 333, 8 + 381, 8 67, 13 @@ -736,7 +739,7 @@ 3 - 336, 24 + 384, 24 288, 20 @@ -760,10 +763,10 @@ Top, Bottom, Left, Right - 632, 8 + 680, 8 - 450, 536 + 536, 536 19 @@ -772,7 +775,7 @@ pbResult - ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=13.7.2.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null $this @@ -783,9 +786,6 @@ Top, Bottom, Left - - 164 - 8, 53 @@ -799,7 +799,7 @@ lvPresets - ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.7.2.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null $this @@ -807,6 +807,9 @@ 13 + + 164 + Bottom, Left @@ -832,7 +835,7 @@ mbLoadImage - ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=13.7.2.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null $this @@ -843,14 +846,11 @@ Top, Bottom, Left - - 50 - 184, 101 - 144, 443 + 192, 443 15 @@ -859,7 +859,7 @@ lvEffects - ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.7.2.0, Culture=neutral, PublicKeyToken=null + ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=15.0.1.0, Culture=neutral, PublicKeyToken=null $this @@ -867,6 +867,9 @@ 26 + + 50 + True @@ -877,10 +880,7 @@ 96, 96 - 1089, 585 - - - NoControl + 1224, 585 600, 400 diff --git a/ShareX.ImageEffectsLib/ImageEffect.cs b/ShareX.ImageEffectsLib/ImageEffect.cs index d37bbc66b..eb243b8ee 100644 --- a/ShareX.ImageEffectsLib/ImageEffect.cs +++ b/ShareX.ImageEffectsLib/ImageEffect.cs @@ -46,6 +46,11 @@ protected ImageEffect() public abstract Bitmap Apply(Bitmap bmp); + protected virtual string GetSummary() + { + return null; + } + public override string ToString() { if (!string.IsNullOrEmpty(Name)) @@ -53,7 +58,15 @@ public override string ToString() return Name; } - return GetType().GetDescription(); + string name = GetType().GetDescription(); + string summary = GetSummary(); + + if (!string.IsNullOrEmpty(summary)) + { + name = $"{name}: {summary}"; + } + + return name; } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/AutoCrop.cs b/ShareX.ImageEffectsLib/Manipulations/AutoCrop.cs index 6b6c529f9..7a46de01a 100644 --- a/ShareX.ImageEffectsLib/Manipulations/AutoCrop.cs +++ b/ShareX.ImageEffectsLib/Manipulations/AutoCrop.cs @@ -48,5 +48,15 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.AutoCropImage(bmp, true, Sides, Padding); } + + protected override string GetSummary() + { + if (Padding > 0) + { + return Padding.ToString(); + } + + return null; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Canvas.cs b/ShareX.ImageEffectsLib/Manipulations/Canvas.cs index 2c2e6f8f5..63be32d1f 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Canvas.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Canvas.cs @@ -81,5 +81,15 @@ public override Bitmap Apply(Bitmap bmp) bmp.Dispose(); return bmpResult; } + + protected override string GetSummary() + { + if (Margin.All == -1) + { + return $"{Margin.Left}, {Margin.Top}, {Margin.Right}, {Margin.Bottom}"; + } + + return Margin.All.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Crop.cs b/ShareX.ImageEffectsLib/Manipulations/Crop.cs index bcfb2e888..af38d7c87 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Crop.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Crop.cs @@ -61,5 +61,15 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.CropBitmap(bmp, new Rectangle(Margin.Left, Margin.Top, bmp.Width - Margin.Horizontal, bmp.Height - Margin.Vertical)); } + + protected override string GetSummary() + { + if (Margin.All == -1) + { + return $"{Margin.Left}, {Margin.Top}, {Margin.Right}, {Margin.Bottom}"; + } + + return Margin.All.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Flip.cs b/ShareX.ImageEffectsLib/Manipulations/Flip.cs index 4b68c645e..ada4e0de7 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Flip.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Flip.cs @@ -66,5 +66,10 @@ public override Bitmap Apply(Bitmap bmp) return bmp; } + + protected override string GetSummary() + { + return $"{Horizontally}, {Vertically}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/ForceProportions.cs b/ShareX.ImageEffectsLib/Manipulations/ForceProportions.cs index 2f3750c80..c9e945fdb 100644 --- a/ShareX.ImageEffectsLib/Manipulations/ForceProportions.cs +++ b/ShareX.ImageEffectsLib/Manipulations/ForceProportions.cs @@ -119,5 +119,10 @@ public override Bitmap Apply(Bitmap bmp) return bmp; } + + protected override string GetSummary() + { + return $"{ProportionalWidth}, {ProportionalHeight}"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Resize.cs b/ShareX.ImageEffectsLib/Manipulations/Resize.cs index 441158787..70dbba88f 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Resize.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Resize.cs @@ -68,5 +68,24 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.ResizeImage(bmp, size); } + + protected override string GetSummary() + { + string summary = Width.ToString(); + + if (Width > 0) + { + summary += "px"; + } + + summary += ", " + Height.ToString(); + + if (Height > 0) + { + summary += "px"; + } + + return summary; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Rotate.cs b/ShareX.ImageEffectsLib/Manipulations/Rotate.cs index 5053ce2b1..b0ce818db 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Rotate.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Rotate.cs @@ -57,5 +57,10 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.RotateImage(bmp, Angle, Upsize, Clip); } } + + protected override string GetSummary() + { + return Angle + "°"; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/RoundedCorners.cs b/ShareX.ImageEffectsLib/Manipulations/RoundedCorners.cs index f13699d31..12810cefb 100644 --- a/ShareX.ImageEffectsLib/Manipulations/RoundedCorners.cs +++ b/ShareX.ImageEffectsLib/Manipulations/RoundedCorners.cs @@ -56,5 +56,10 @@ public override Bitmap Apply(Bitmap bmp) { return ImageHelpers.RoundedCorners(bmp, CornerRadius); } + + protected override string GetSummary() + { + return CornerRadius.ToString(); + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Scale.cs b/ShareX.ImageEffectsLib/Manipulations/Scale.cs index c7c366dbb..3c0e1143e 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Scale.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Scale.cs @@ -56,5 +56,24 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.ResizeImage(bmp, size); } + + protected override string GetSummary() + { + string summary = WidthPercentage.ToString(); + + if (WidthPercentage > 0) + { + summary += "%"; + } + + summary += ", " + HeightPercentage.ToString(); + + if (HeightPercentage > 0) + { + summary += "%"; + } + + return summary; + } } } \ No newline at end of file diff --git a/ShareX.ImageEffectsLib/Manipulations/Skew.cs b/ShareX.ImageEffectsLib/Manipulations/Skew.cs index a57288054..c54232154 100644 --- a/ShareX.ImageEffectsLib/Manipulations/Skew.cs +++ b/ShareX.ImageEffectsLib/Manipulations/Skew.cs @@ -51,5 +51,10 @@ public override Bitmap Apply(Bitmap bmp) return ImageHelpers.AddSkew(bmp, Horizontally, Vertically); } + + protected override string GetSummary() + { + return $"{Horizontally}px, {Vertically}px"; + } } } \ No newline at end of file diff --git a/ShareX.ScreenCaptureLib/Shapes/Tool/CutOutTool.cs b/ShareX.ScreenCaptureLib/Shapes/Tool/CutOutTool.cs index cf8893a50..83841c701 100644 --- a/ShareX.ScreenCaptureLib/Shapes/Tool/CutOutTool.cs +++ b/ShareX.ScreenCaptureLib/Shapes/Tool/CutOutTool.cs @@ -25,6 +25,7 @@ using ShareX.HelpersLib; using System.Drawing; +using System.Drawing.Drawing2D; using System.Windows.Forms; namespace ShareX.ScreenCaptureLib @@ -135,7 +136,7 @@ public override void OnUpdate() public override void OnDraw(Graphics g) { using (Image selectionHighlightPattern = ImageHelpers.CreateCheckerPattern(1, 1, Color.FromArgb(128, Color.LightGray), Color.FromArgb(128, Color.Gray))) - using (Brush selectionHighlightBrush = new TextureBrush(selectionHighlightPattern, System.Drawing.Drawing2D.WrapMode.Tile)) + using (Brush selectionHighlightBrush = new TextureBrush(selectionHighlightPattern, WrapMode.Tile)) { g.FillRectangle(selectionHighlightBrush, CutOutRectangle); }