mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-03 19:54:13 +13:00
Don't use static custom node image
This commit is contained in:
parent
255f9f99e2
commit
0c30cb832f
4 changed files with 37 additions and 45 deletions
|
@ -85,8 +85,8 @@ public Color CurrentColor
|
||||||
internal List<DrawableObject> DrawableObjects { get; private set; }
|
internal List<DrawableObject> DrawableObjects { get; private set; }
|
||||||
internal bool IsClosing { get; private set; }
|
internal bool IsClosing { get; private set; }
|
||||||
|
|
||||||
internal IContainer components = null;
|
internal Image CustomNodeImage = Resources.CircleNode;
|
||||||
internal int toolbarHeight;
|
internal int ToolbarHeight;
|
||||||
|
|
||||||
private InputManager InputManager => ShapeManager.InputManager;
|
private InputManager InputManager => ShapeManager.InputManager;
|
||||||
|
|
||||||
|
@ -136,8 +136,6 @@ public RegionCaptureForm(RegionCaptureMode mode, RegionCaptureOptions options)
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
components = new Container();
|
|
||||||
|
|
||||||
SuspendLayout();
|
SuspendLayout();
|
||||||
|
|
||||||
AutoScaleDimensions = new SizeF(6F, 13F);
|
AutoScaleDimensions = new SizeF(6F, 13F);
|
||||||
|
@ -328,7 +326,7 @@ private void AutomaticPan(Vector2 center)
|
||||||
if (IsEditorMode)
|
if (IsEditorMode)
|
||||||
{
|
{
|
||||||
int x = (int)Math.Round(ScreenRectangle0Based.Width * center.X);
|
int x = (int)Math.Round(ScreenRectangle0Based.Width * center.X);
|
||||||
int y = (int)Math.Round(toolbarHeight + (ScreenRectangle0Based.Height - toolbarHeight) * center.Y);
|
int y = (int)Math.Round(ToolbarHeight + (ScreenRectangle0Based.Height - ToolbarHeight) * center.Y);
|
||||||
int newX = x - CanvasRectangle.Width / 2;
|
int newX = x - CanvasRectangle.Width / 2;
|
||||||
int newY = y - CanvasRectangle.Height / 2;
|
int newY = y - CanvasRectangle.Height / 2;
|
||||||
int deltaX = newX - CanvasRectangle.X;
|
int deltaX = newX - CanvasRectangle.X;
|
||||||
|
@ -1362,42 +1360,29 @@ private Image GetOutputImage()
|
||||||
|
|
||||||
protected override void Dispose(bool disposing)
|
protected override void Dispose(bool disposing)
|
||||||
{
|
{
|
||||||
if (ShapeManager != null)
|
ShapeManager?.Dispose();
|
||||||
{
|
bmpBackgroundImage?.Dispose();
|
||||||
ShapeManager.Dispose();
|
backgroundBrush?.Dispose();
|
||||||
}
|
backgroundHighlightBrush?.Dispose();
|
||||||
|
borderPen?.Dispose();
|
||||||
if (bmpBackgroundImage != null)
|
borderDotPen?.Dispose();
|
||||||
{
|
borderDotStaticPen?.Dispose();
|
||||||
bmpBackgroundImage.Dispose();
|
nodeBackgroundBrush?.Dispose();
|
||||||
}
|
infoFont?.Dispose();
|
||||||
|
infoFontMedium?.Dispose();
|
||||||
if (disposing && (components != null))
|
infoFontBig?.Dispose();
|
||||||
{
|
textBackgroundBrush?.Dispose();
|
||||||
components.Dispose();
|
textOuterBorderPen?.Dispose();
|
||||||
}
|
textInnerBorderPen?.Dispose();
|
||||||
|
markerPen?.Dispose();
|
||||||
if (backgroundBrush != null) backgroundBrush.Dispose();
|
defaultCursor?.Dispose();
|
||||||
if (backgroundHighlightBrush != null) backgroundHighlightBrush.Dispose();
|
CustomNodeImage?.Dispose();
|
||||||
if (borderPen != null) borderPen.Dispose();
|
|
||||||
if (borderDotPen != null) borderDotPen.Dispose();
|
|
||||||
if (borderDotStaticPen != null) borderDotStaticPen.Dispose();
|
|
||||||
if (nodeBackgroundBrush != null) nodeBackgroundBrush.Dispose();
|
|
||||||
if (infoFont != null) infoFont.Dispose();
|
|
||||||
if (infoFontMedium != null) infoFontMedium.Dispose();
|
|
||||||
if (infoFontBig != null) infoFontBig.Dispose();
|
|
||||||
if (textBackgroundBrush != null) textBackgroundBrush.Dispose();
|
|
||||||
if (textOuterBorderPen != null) textOuterBorderPen.Dispose();
|
|
||||||
if (textInnerBorderPen != null) textInnerBorderPen.Dispose();
|
|
||||||
if (markerPen != null) markerPen.Dispose();
|
|
||||||
if (defaultCursor != null) defaultCursor.Dispose();
|
|
||||||
|
|
||||||
if (regionFillPath != null)
|
if (regionFillPath != null)
|
||||||
{
|
{
|
||||||
if (Result == RegionResult.Region)
|
if (Result == RegionResult.Region)
|
||||||
{
|
{
|
||||||
if (LastRegionFillPath != null) LastRegionFillPath.Dispose();
|
LastRegionFillPath?.Dispose();
|
||||||
|
|
||||||
LastRegionFillPath = regionFillPath;
|
LastRegionFillPath = regionFillPath;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -1406,8 +1391,8 @@ protected override void Dispose(bool disposing)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (regionDrawPath != null) regionDrawPath.Dispose();
|
regionDrawPath?.Dispose();
|
||||||
if (Image != null) Image.Dispose();
|
Image?.Dispose();
|
||||||
|
|
||||||
base.Dispose(disposing);
|
base.Dispose(disposing);
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,6 @@ You should have received a copy of the GNU General Public License
|
||||||
#endregion License Information (GPL v3)
|
#endregion License Information (GPL v3)
|
||||||
|
|
||||||
using ShareX.HelpersLib;
|
using ShareX.HelpersLib;
|
||||||
using ShareX.ScreenCaptureLib.Properties;
|
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
|
||||||
namespace ShareX.ScreenCaptureLib
|
namespace ShareX.ScreenCaptureLib
|
||||||
|
@ -53,13 +52,20 @@ public Point Position
|
||||||
|
|
||||||
public NodeShape Shape { get; set; }
|
public NodeShape Shape { get; set; }
|
||||||
|
|
||||||
private static Image customNodeImage = Resources.CircleNode;
|
public Image CustomNodeImage { get; private set; }
|
||||||
|
|
||||||
public ResizeNode(int x = 0, int y = 0)
|
public ResizeNode(int x = 0, int y = 0)
|
||||||
{
|
{
|
||||||
Shape = NodeShape.CustomNode;
|
Shape = NodeShape.Square;
|
||||||
Position = new Point(x, y);
|
Position = new Point(x, y);
|
||||||
Size = customNodeImage.Width;
|
Size = DefaultSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetCustomNode(Image customNodeImage)
|
||||||
|
{
|
||||||
|
Shape = NodeShape.CustomNode;
|
||||||
|
CustomNodeImage = customNodeImage;
|
||||||
|
Size = CustomNodeImage.Width;
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Draw(Graphics g)
|
public override void Draw(Graphics g)
|
||||||
|
@ -80,8 +86,8 @@ public override void Draw(Graphics g)
|
||||||
g.DrawDiamond(Pens.White, rect.Offset(-1));
|
g.DrawDiamond(Pens.White, rect.Offset(-1));
|
||||||
g.DrawDiamond(Pens.Black, rect);
|
g.DrawDiamond(Pens.Black, rect);
|
||||||
break;
|
break;
|
||||||
case NodeShape.CustomNode:
|
case NodeShape.CustomNode when CustomNodeImage != null:
|
||||||
g.DrawImage(customNodeImage, Rectangle);
|
g.DrawImage(CustomNodeImage, Rectangle);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -217,6 +217,7 @@ public ShapeManager(RegionCaptureForm form)
|
||||||
for (int i = 0; i < 9; i++)
|
for (int i = 0; i < 9; i++)
|
||||||
{
|
{
|
||||||
ResizeNode node = new ResizeNode();
|
ResizeNode node = new ResizeNode();
|
||||||
|
node.SetCustomNode(form.CustomNodeImage);
|
||||||
form.DrawableObjects.Add(node);
|
form.DrawableObjects.Add(node);
|
||||||
ResizeNodes.Add(node);
|
ResizeNodes.Add(node);
|
||||||
}
|
}
|
||||||
|
|
|
@ -903,7 +903,7 @@ internal void CreateToolbar()
|
||||||
|
|
||||||
private void MenuForm_Shown(object sender, EventArgs e)
|
private void MenuForm_Shown(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
form.toolbarHeight = menuForm.Height;
|
form.ToolbarHeight = menuForm.Height;
|
||||||
form.CenterCanvas();
|
form.CenterCanvas();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue