Пример #1
0
 // -------------------------------------------------        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);
         }
     }
 }
Пример #2
0
 // -------------------------------------------------        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);
 }