// ------------------------------------------------- DefineCover public override void DefineCover () { if (bResizable) { int nOnPerimeter = Convert .ToInt32 ((2 * Math .PI * radius) / distanceNeighbours); CoverNode [] nodes; int iBig, iStartOnBorder; if (str .Length > 0) { nodes = new CoverNode [2 + nOnPerimeter]; iBig = 1; iStartOnBorder = 2; } else { nodes = new CoverNode [1 + nOnPerimeter]; iBig = 0; iStartOnBorder = 1; } if (str .Length > 0) { SizeF sizef = Auxi_Geometry .MeasureString (form, str, font); Point [] corners = Auxi_Geometry .TextCorners (sizef .Width, sizef .Height, angle, ptCenter, TextBasis .M); PointF [] cornersF = new PointF [corners .Length]; for (int i = 0; i < corners .Length; i++) { cornersF [i] = new PointF (corners [i] .X, corners [i] .Y); } nodes [0] = new CoverNode (0, cornersF, Cursors .Hand); } nodes [iBig] = new CoverNode (iBig, ptCenter, radius - nrSmall + 1, Cursors .SizeAll); for (int i = 0; i < nOnPerimeter; i++) { nodes [iStartOnBorder + i] = new CoverNode (iStartOnBorder +i, Auxi_Geometry .PointToPoint (ptCenter, 2 * Math .PI * i / nOnPerimeter, radius), nrSmall); nodes [iStartOnBorder + i] .Clearance = false; } cover = new Cover (nodes); } else { if (str .Length > 0) { SizeF sizef = Auxi_Geometry .MeasureString (form, str, font); Point [] corners = Auxi_Geometry .TextCorners (sizef .Width, sizef .Height, angle, ptCenter, TextBasis .M); PointF [] cornersF = new PointF [corners .Length]; for (int i = 0; i < corners .Length; i++) { cornersF [i] = new PointF (corners [i] .X, corners [i] .Y); } CoverNode [] nodes = new CoverNode [2] {new CoverNode (0, cornersF, Cursors.Hand), new CoverNode (1, ptCenter, radius) }; cover = new Cover (nodes); } else { cover = new Cover (new PointF [] { ptCenter }, radius); cover .SetCursor (Cursors .SizeAll); } } }
// ------------------------------------------------- DefineCover public override void DefineCover () { cover = new Cover (new Rectangle (ptCenter .X - half, ptCenter .Y - half, 2 * half, 2 * half), Resizing .None); cover .SetCursor (Cursors .Hand); }