diff --git a/ShareX.ScreenCaptureLib/Enums.cs b/ShareX.ScreenCaptureLib/Enums.cs
index 1b19ccb45..00951d093 100644
--- a/ShareX.ScreenCaptureLib/Enums.cs
+++ b/ShareX.ScreenCaptureLib/Enums.cs
@@ -84,7 +84,7 @@ internal enum NodePosition
internal enum NodeShape
{
- Square, Circle, Diamond
+ Square, Circle, Diamond, CustomNode
}
public enum FFmpegVideoCodec
diff --git a/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs b/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs
index 9e39727ce..7711e5eb7 100644
--- a/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs
+++ b/ShareX.ScreenCaptureLib/Properties/Resources.Designer.cs
@@ -19,7 +19,7 @@ namespace ShareX.ScreenCaptureLib.Properties {
// class via a tool like ResGen or Visual Studio.
// To add or remove a member, edit your .ResX file then rerun ResGen
// with the /str option, or rebuild your VS project.
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@@ -99,6 +99,16 @@ internal class Resources {
}
}
+ ///
+ /// Looks up a localized resource of type System.Drawing.Bitmap.
+ ///
+ internal static System.Drawing.Bitmap CircleNode {
+ get {
+ object obj = ResourceManager.GetObject("CircleNode", resourceCulture);
+ return ((System.Drawing.Bitmap)(obj));
+ }
+ }
+
///
/// Looks up a localized resource of type System.Drawing.Bitmap.
///
diff --git a/ShareX.ScreenCaptureLib/Properties/Resources.resx b/ShareX.ScreenCaptureLib/Properties/Resources.resx
index ffca24839..1676c36fa 100644
--- a/ShareX.ScreenCaptureLib/Properties/Resources.resx
+++ b/ShareX.ScreenCaptureLib/Properties/Resources.resx
@@ -609,4 +609,7 @@ Distance: {6:0.00} px / Angle: {7:0.00}°
..\Resources\cursor.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
+ ..\Resources\CircleNode.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a
+
\ No newline at end of file
diff --git a/ShareX.ScreenCaptureLib/RegionHelpers/ResizeNode.cs b/ShareX.ScreenCaptureLib/RegionHelpers/ResizeNode.cs
index 161e7c274..f72ff478f 100644
--- a/ShareX.ScreenCaptureLib/RegionHelpers/ResizeNode.cs
+++ b/ShareX.ScreenCaptureLib/RegionHelpers/ResizeNode.cs
@@ -24,6 +24,7 @@
#endregion License Information (GPL v3)
using ShareX.HelpersLib;
+using ShareX.ScreenCaptureLib.Properties;
using System.Drawing;
namespace ShareX.ScreenCaptureLib
@@ -52,11 +53,13 @@ public Point Position
public NodeShape Shape { get; set; }
+ private static Image customNodeImage = Resources.CircleNode;
+
public ResizeNode(int x = 0, int y = 0)
{
- Size = DefaultSize;
- Shape = NodeShape.Square;
+ Shape = NodeShape.CustomNode;
Position = new Point(x, y);
+ Size = customNodeImage.Width;
}
public override void Draw(Graphics g)
@@ -77,6 +80,9 @@ public override void Draw(Graphics g)
g.DrawDiamond(Pens.White, rect.Offset(-1));
g.DrawDiamond(Pens.Black, rect);
break;
+ case NodeShape.CustomNode:
+ g.DrawImage(customNodeImage, Rectangle);
+ break;
}
}
}
diff --git a/ShareX.ScreenCaptureLib/Resources/CircleNode.png b/ShareX.ScreenCaptureLib/Resources/CircleNode.png
new file mode 100644
index 000000000..dd7486b17
Binary files /dev/null and b/ShareX.ScreenCaptureLib/Resources/CircleNode.png differ
diff --git a/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs b/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs
index bdeb75b92..704789306 100644
--- a/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs
+++ b/ShareX.ScreenCaptureLib/Shapes/BaseShape.cs
@@ -214,7 +214,6 @@ public virtual void OnNodeVisible()
for (int i = 0; i < 8; i++)
{
ResizeNode node = Manager.ResizeNodes[i];
- node.Shape = NodeShape.Square;
node.Visible = true;
}
}
diff --git a/ShareX.ScreenCaptureLib/Shapes/Drawing/LineDrawingShape.cs b/ShareX.ScreenCaptureLib/Shapes/Drawing/LineDrawingShape.cs
index 820bf27ac..c7548b00e 100644
--- a/ShareX.ScreenCaptureLib/Shapes/Drawing/LineDrawingShape.cs
+++ b/ShareX.ScreenCaptureLib/Shapes/Drawing/LineDrawingShape.cs
@@ -174,7 +174,6 @@ public override void OnNodeVisible()
for (int i = 0; i < 8; i++)
{
ResizeNode node = Manager.ResizeNodes[i];
- node.Shape = NodeShape.Circle;
node.Visible = false;
}
diff --git a/ShareX.ScreenCaptureLib/Shapes/Drawing/SpeechBalloonDrawingShape.cs b/ShareX.ScreenCaptureLib/Shapes/Drawing/SpeechBalloonDrawingShape.cs
index 8b9bfbde2..46fd6d025 100644
--- a/ShareX.ScreenCaptureLib/Shapes/Drawing/SpeechBalloonDrawingShape.cs
+++ b/ShareX.ScreenCaptureLib/Shapes/Drawing/SpeechBalloonDrawingShape.cs
@@ -68,7 +68,6 @@ public override void OnNodeVisible()
base.OnNodeVisible();
TailNode.Position = TailPosition;
- TailNode.Shape = NodeShape.Circle;
TailNode.Visible = true;
}
diff --git a/ShareX.ScreenCaptureLib/Shapes/Region/FreehandRegionShape.cs b/ShareX.ScreenCaptureLib/Shapes/Region/FreehandRegionShape.cs
index e1ca957c1..862038612 100644
--- a/ShareX.ScreenCaptureLib/Shapes/Region/FreehandRegionShape.cs
+++ b/ShareX.ScreenCaptureLib/Shapes/Region/FreehandRegionShape.cs
@@ -124,7 +124,6 @@ public override void Resize(int x, int y, bool fromBottomRight)
public override void OnNodeVisible()
{
- Manager.ResizeNodes[(int)NodePosition.TopLeft].Shape = NodeShape.Circle;
Manager.ResizeNodes[(int)NodePosition.TopLeft].Visible = true;
}
diff --git a/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj b/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj
index 7cb62c5c9..1b840a122 100644
--- a/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj
+++ b/ShareX.ScreenCaptureLib/ShareX.ScreenCaptureLib.csproj
@@ -248,6 +248,7 @@
+