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 @@ +