From e3fe80ea4216a6a45eba27159310d096323971de Mon Sep 17 00:00:00 2001 From: Tim Young Date: Wed, 28 Feb 2018 12:03:08 -0600 Subject: [PATCH] Draw an X in the center of images when we are in shape mode. We will right-click this center to delete or edit the shape. --- EduNetworkBuilder/EduNetworkBuilder.csproj | 1 + EduNetworkBuilder/NetShape.cs | 21 ++++++++++++++++++ .../Properties/Resources.Designer.cs | 10 +++++++++ EduNetworkBuilder/Properties/Resources.resx | 3 +++ EduNetworkBuilder/Resources/X.png | Bin 0 -> 7197 bytes 5 files changed, 35 insertions(+) create mode 100644 EduNetworkBuilder/Resources/X.png diff --git a/EduNetworkBuilder/EduNetworkBuilder.csproj b/EduNetworkBuilder/EduNetworkBuilder.csproj index 3631a73..e6e5646 100644 --- a/EduNetworkBuilder/EduNetworkBuilder.csproj +++ b/EduNetworkBuilder/EduNetworkBuilder.csproj @@ -414,6 +414,7 @@ + diff --git a/EduNetworkBuilder/NetShape.cs b/EduNetworkBuilder/NetShape.cs index cfa93eb..7c76dbf 100644 --- a/EduNetworkBuilder/NetShape.cs +++ b/EduNetworkBuilder/NetShape.cs @@ -64,6 +64,7 @@ namespace EduNetworkBuilder //We want to put drag-marks on the corners of our rectangle foreach(Rectangle one in Corners()) G.FillRectangle(coloredBrush, one); + G.DrawImage(Properties.Resources.X, Center()); } G.Dispose(); } @@ -83,6 +84,19 @@ namespace EduNetworkBuilder return tCorners; } + //A rectangle in the center of the shape that we can click on + Rectangle Center() + { + int size = 100; + if (InArea.Width < 200 || InArea.Height < 200) + size = 50; + if (InArea.Width < size || InArea.Height < size) + size = Math.Min(InArea.Width / 2, InArea.Height / 2); + int cx = InArea.X + (InArea.Width / 2); + int cy = InArea.Y + (InArea.Height / 2); + return new Rectangle(cx - (size / 2), cy - (size / 2), size, size); + } + public bool CornersAreClickedOn(Point ClickPoint) { foreach(Rectangle rec in Corners()) @@ -93,6 +107,13 @@ namespace EduNetworkBuilder return false; } + public bool CenterIsClickedOn(Point ClickPoint) + { + if (Center().Contains(ClickPoint)) + return true; + return false; + } + /// /// return the opposite point from the one clicked on. This is so we can start /// dragging from here. diff --git a/EduNetworkBuilder/Properties/Resources.Designer.cs b/EduNetworkBuilder/Properties/Resources.Designer.cs index ced1681..48b45d5 100644 --- a/EduNetworkBuilder/Properties/Resources.Designer.cs +++ b/EduNetworkBuilder/Properties/Resources.Designer.cs @@ -1409,5 +1409,15 @@ namespace EduNetworkBuilder.Properties { return ((System.Drawing.Bitmap)(obj)); } } + + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap X { + get { + object obj = ResourceManager.GetObject("X", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } } } diff --git a/EduNetworkBuilder/Properties/Resources.resx b/EduNetworkBuilder/Properties/Resources.resx index 160eb31..a9b88cb 100644 --- a/EduNetworkBuilder/Properties/Resources.resx +++ b/EduNetworkBuilder/Properties/Resources.resx @@ -517,4 +517,7 @@ ..\Resources\tree.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\X.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + \ No newline at end of file diff --git a/EduNetworkBuilder/Resources/X.png b/EduNetworkBuilder/Resources/X.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ea9529b9f3a2b6b51fd7e3cb0a1733fde36247 GIT binary patch literal 7197 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 S75e|3(&=g%!E5e4c=A609CX+K literal 0 HcmV?d00001