示例#1
0
        public void GetFromClipboard()
        {
            IDataObject      dataObj        = Clipboard.GetDataObject();
            List <My_Figure> pasted_figures = new List <My_Figure>();

            if (dataObj.GetDataPresent(typeof(byte[])))
            {
                byte[] data = dataObj.GetData(typeof(byte[])) as byte[];
                pasted_figures = My_Picture.Deserialize(data);
                if (pasted_figures == null)
                {
                    return;
                }
            }
            foreach (My_Figure figure in pasted_figures)
            {
                figure.Core = this;
                picture.FigureList.Add(figure);
                SelectedFigures.Add(figure);
                if (figure is My_Port)
                {
                    (figure as My_Port).TextLabel.Core = this;
                }
            }

            AddToHistory();
            form.Invalidate();
        }
示例#2
0
        public void CreateNewPie()
        {
            My_Pie pie = new My_Pie(this);

            UnselectAll();
            SelectedFigure = pie;
            SelectedFigures.Add(pie);
            picture.FigureList.Add(pie);
            Lock = true;
        }
示例#3
0
        public void CreateNewArc()
        {
            My_Arc arc = new My_Arc(this);

            UnselectAll();
            SelectedFigure = arc;
            SelectedFigures.Add(arc);
            picture.FigureList.Add(arc);
            Lock = true;
        }
示例#4
0
        public void CreateNewText()
        {
            My_Text text = new My_Text(this);

            UnselectAll();
            SelectedFigure = text;
            SelectedFigures.Add(text);
            picture.FigureList.Add(text);
            Lock = true;
        }
示例#5
0
        public void CreateNewEllipse()
        {
            My_Ellipse ellipse = new My_Ellipse(this);

            UnselectAll();
            SelectedFigure = ellipse;
            SelectedFigures.Add(ellipse);
            picture.FigureList.Add(ellipse);
            Lock = true;
        }
示例#6
0
        public void CreateNewCurve()
        {
            My_Curve curve = new My_Curve(this);

            UnselectAll();
            SelectedFigure = curve;
            SelectedFigures.Add(curve);
            picture.FigureList.Add(curve);
            Lock = true;
        }
示例#7
0
        public void CreateNewPath()
        {
            My_Path path = new My_Path(this);

            UnselectAll();
            SelectedFigure = path;
            SelectedFigures.Add(path);
            picture.FigureList.Add(path);
            Lock = true;
        }
示例#8
0
        public void CreateNewSplineBezier()
        {
            My_SplineBezier spline = new My_SplineBezier(this);

            UnselectAll();
            SelectedFigure = spline;
            SelectedFigures.Add(spline);
            picture.FigureList.Add(spline);
            Lock = true;
        }
示例#9
0
        public void CreateNewPolygon()
        {
            My_Polygon polygon = new My_Polygon(this);

            UnselectAll();
            SelectedFigure = polygon;
            SelectedFigures.Add(polygon);
            picture.FigureList.Add(polygon);
            Lock = true;
        }
示例#10
0
        public void CreateNewLine()
        {
            My_Line line = new My_Line(this);

            UnselectAll();
            SelectedFigure = line;
            SelectedFigures.Add(line);
            picture.FigureList.Add(line);
            Lock = true;
        }
示例#11
0
        public void CreateNewPort(My_Port.PortType type, bool Inverse)
        {
            My_Port p = new My_Port(this, type, Inverse);

            UnselectAll();
            SelectedFigure = p;
            SelectedFigures.Add(p);
            picture.FigureList.Add(p);
            Lock = true;
        }
示例#12
0
        public void CreateNewPolyline()
        {
            My_Polyline polyline = new My_Polyline(this);

            UnselectAll();
            SelectedFigure = polyline;
            SelectedFigures.Add(polyline);
            picture.FigureList.Add(polyline);
            Lock = true;
        }
示例#13
0
        public void CreateNewRectangle()
        {
            My_Rectangle rectangle = new My_Rectangle(this);

            UnselectAll();
            SelectedFigure = rectangle;
            SelectedFigures.Add(rectangle);
            picture.FigureList.Add(rectangle);
            Lock = true;
        }
示例#14
0
 public void SelectAll()
 {
     SelectedFigures.Clear();
     SelectedFigure = null;
     foreach (My_Figure fig in picture.FigureList)
     {
         SelectedFigures.Add(fig);
         fig.selected = true;
     }
 }
示例#15
0
        public void CreateNewImage(string filename)
        {
            Bitmap   bitmap = Bitmap.FromFile(filename) as Bitmap;
            My_Image img    = new My_Image(this, bitmap);

            UnselectAll();
            SelectedFigure = img;
            SelectedFigures.Add(img);
            picture.FigureList.Add(img);
            Lock = true;
        }
示例#16
0
 public void LoadTmpFigure()
 {
     SelectedFigures.Clear();
     foreach (IFigure figure in TmpFigures)
     {
         WriteLogs(null, false);
         var copyFigure = Activator.CreateInstance(Type.GetType(figure.GetType().FullName), figure);
         WriteLogs((IFigure)copyFigure, true);
         SelectedFigures.Add((IFigure)copyFigure);
     }
     Figures.AddRange(SelectedFigures);
     UpdPicture();
 }
示例#17
0
 /// <summary>
 /// Обработки отпускания мышки
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 public void MouseUp(object sender, MouseEventArgs e)
 {
     if (e.Button == MouseButtons.Left)
     {
         if (_isDraggingSelectionRect)
         {
             //Выборка закончилась
             _isDraggingSelectionRect = false;
             SelectFiguresInRect();
             _isFigurePicked = true;
             if (_isSelectionEmpty)
             {
                 _isFigurePicked = false;
                 SelectedFigures.Clear();
                 _selectedFigure   = null;
                 _isSelectionEmpty = false;
             }
         }
         if (_isMouseDown)
         {
             if (!IsItMoving(_originalMouseDownPoint, e.Location))
             {
                 if (IsPointOnFigure(e.Location))
                 {
                     SelectedFigures.Clear();
                     _selectedFigure = _presenter.GetFigures()
                                       [GetFigurePointOn(e.Location)];
                     int index = GetFigurePointOn(e.Location);
                     SelectedFigures.Add(index, _presenter.GetFigures()[index]);
                     _isFigurePicked = true;
                 }
                 else
                 {
                     SelectedFigures.Clear();
                     _selectedFigure = null;
                     _isFigurePicked = false;
                 }
             }
             _isMouseDown = false;
         }
     }
     Canvas.Refresh();
 }