diff --git a/EduNetworkBuilder/EduNetworkBuilder.csproj b/EduNetworkBuilder/EduNetworkBuilder.csproj index 1a976ef..3631a73 100644 --- a/EduNetworkBuilder/EduNetworkBuilder.csproj +++ b/EduNetworkBuilder/EduNetworkBuilder.csproj @@ -414,6 +414,7 @@ + @@ -442,6 +443,7 @@ + diff --git a/EduNetworkBuilder/NetShape.cs b/EduNetworkBuilder/NetShape.cs index de23ccc..a43ad3c 100644 --- a/EduNetworkBuilder/NetShape.cs +++ b/EduNetworkBuilder/NetShape.cs @@ -61,18 +61,27 @@ namespace EduNetworkBuilder if (FillColor == Color.Black) edgeColor = Color.White; coloredBrush = new SolidBrush(edgeColor); //We want to put drag-marks on the corners of our rectangle - Rectangle TL = new Rectangle(InArea.X, InArea.Y, sz, sz); - Rectangle TR = new Rectangle(InArea.X + InArea.Width - sz, InArea.Y, sz, sz); - Rectangle BL = new Rectangle(InArea.X, InArea.Y + InArea.Height - sz, sz, sz); - Rectangle BR = new Rectangle(InArea.X + InArea.Width - sz, InArea.Y + InArea.Height - sz, sz, sz); - G.FillRectangle(coloredBrush, TL); - G.FillRectangle(coloredBrush, TR); - G.FillRectangle(coloredBrush, BL); - G.FillRectangle(coloredBrush, BR); + foreach(Rectangle one in Corners()) + G.FillRectangle(coloredBrush, one); } G.Dispose(); } + List Corners() + { + int sz = DragSize; + List tCorners = new List(); + Rectangle TL = new Rectangle(InArea.X, InArea.Y, sz, sz); + Rectangle TR = new Rectangle(InArea.X + InArea.Width - sz, InArea.Y, sz, sz); + Rectangle BL = new Rectangle(InArea.X, InArea.Y + InArea.Height - sz, sz, sz); + Rectangle BR = new Rectangle(InArea.X + InArea.Width - sz, InArea.Y + InArea.Height - sz, sz, sz); + tCorners.Add(TL); + tCorners.Add(TR); + tCorners.Add(BL); + tCorners.Add(BR); + return tCorners; + } + public void Load(XmlNode theNode) { foreach (XmlNode Individual in theNode.ChildNodes) diff --git a/EduNetworkBuilder/NetworkBuilder.cs b/EduNetworkBuilder/NetworkBuilder.cs index c64b89b..298a59a 100644 --- a/EduNetworkBuilder/NetworkBuilder.cs +++ b/EduNetworkBuilder/NetworkBuilder.cs @@ -52,7 +52,9 @@ namespace EduNetworkBuilder private NetworkDevice ItemClickedOn = null; private List ItemsSelected = new List(); private Point OrigClickPoint = new Point(-1, -1); - + + private NetShapeType CurrentShape = NetShapeType.none; + private string InitialFileLoad = ""; public PersonClass CurrentUser; @@ -558,7 +560,8 @@ namespace EduNetworkBuilder UpdateMenu(); UpdateMessages(); UpdateVisuals(); - if(selectedButton == "btnShapes") + btnUpdateShape(); + if (selectedButton == "btnShapes") { cbFillColor.Visible = true; cbLineColor.Visible = true; @@ -744,11 +747,21 @@ namespace EduNetworkBuilder myNetwork.InShapeEditMode = true; if (selectedButton == "btnShapes") { myNetwork.InShapeEditMode = true; + if (CurrentShape == NetShapeType.none) CurrentShape = NetShapeType.rectangle; + if(doupdate) + { + //The shape was already selected. Toggle it + if (CurrentShape == NetShapeType.rectangle) CurrentShape = NetShapeType.circle; + else CurrentShape = NetShapeType.rectangle; + } + if (CurrentShape == NetShapeType.rectangle) btn.BackgroundImage = Properties.Resources.Square; + if (CurrentShape == NetShapeType.circle) btn.BackgroundImage = Properties.Resources.Circle; doupdate = true; } else { myNetwork.InShapeEditMode = false; + CurrentShape = NetShapeType.none; } } else @@ -756,15 +769,37 @@ namespace EduNetworkBuilder btn.BackColor = Button.DefaultBackColor; } } - if (doupdate) { UpdateForm(); } + if (doupdate) { + UpdateForm(); + } } + private void btnReset() { foreach (Control btn in Buttons) { lblStatus.Text = ""; selectedButton = ""; + CurrentShape = NetShapeType.none; btn.BackColor = Button.DefaultBackColor; + if(btn.Name == "btnShapes") + { + if (CurrentShape == NetShapeType.rectangle) btn.BackgroundImage = Properties.Resources.Square; + if (CurrentShape == NetShapeType.circle) btn.BackgroundImage = Properties.Resources.Circle; + if (CurrentShape == NetShapeType.none) btn.BackgroundImage = Properties.Resources.Shapes; + } + } + } + private void btnUpdateShape() + { + foreach (Control btn in Buttons) + { + if (btn.Name == "btnShapes") + { + if (CurrentShape == NetShapeType.rectangle) btn.BackgroundImage = Properties.Resources.Square; + if (CurrentShape == NetShapeType.circle) btn.BackgroundImage = Properties.Resources.Circle; + if (CurrentShape == NetShapeType.none) btn.BackgroundImage = Properties.Resources.Shapes; + } } } diff --git a/EduNetworkBuilder/Properties/Resources.Designer.cs b/EduNetworkBuilder/Properties/Resources.Designer.cs index ecc5eb5..ced1681 100644 --- a/EduNetworkBuilder/Properties/Resources.Designer.cs +++ b/EduNetworkBuilder/Properties/Resources.Designer.cs @@ -110,6 +110,16 @@ namespace EduNetworkBuilder.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Circle { + get { + object obj = ResourceManager.GetObject("Circle", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.IO.UnmanagedMemoryStream similar to System.IO.MemoryStream. /// @@ -1250,6 +1260,16 @@ namespace EduNetworkBuilder.Properties { } } + /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + internal static System.Drawing.Bitmap Square { + get { + object obj = ResourceManager.GetObject("Square", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// diff --git a/EduNetworkBuilder/Properties/Resources.resx b/EduNetworkBuilder/Properties/Resources.resx index c8ef0b6..160eb31 100644 --- a/EduNetworkBuilder/Properties/Resources.resx +++ b/EduNetworkBuilder/Properties/Resources.resx @@ -505,9 +505,15 @@ ..\Resources\Level0_Frozen.enbx;System.Byte[], mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + ..\Resources\Circle.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\Shapes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Square.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\tree.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a diff --git a/EduNetworkBuilder/Resources/Circle.png b/EduNetworkBuilder/Resources/Circle.png new file mode 100644 index 0000000..645702e Binary files /dev/null and b/EduNetworkBuilder/Resources/Circle.png differ diff --git a/EduNetworkBuilder/Resources/Square.png b/EduNetworkBuilder/Resources/Square.png new file mode 100644 index 0000000..81cd5c0 Binary files /dev/null and b/EduNetworkBuilder/Resources/Square.png differ