Ejemplo n.º 1
0
        private void MdiChild_MouseUp(object sender, MouseEventArgs e)
        {
            MainForm parent = GetParent();
            if(e.Button == MouseButtons.Left) {

                if(isDrawing) {
                    bufferedGraphics.Render();
                    if(currentFigure.IsInside(imageSize)) {
                        if (currentFigure is Text)
                        {
                            MyTextBox textBox = new MyTextBox ( currentFigure as Text, this , MdiParent as MainForm);
                            textBox.Show(AutoScrollPosition.X, AutoScrollPosition.Y);
                        }
                        if(parent.GridAutoDrag){
                            currentFigure.DragToGrid ( parent.GridStep, imageSize );
                        }
                        listFigures.Add(currentFigure);
                    }
                    isModified = true;
                }

                if (isSelecting){

                    int X = e.X - AutoScrollPosition.X;
                    int Y = e.Y - AutoScrollPosition.Y;

                    if (X == clickPoint.X && Y == clickPoint.Y){
                        bool select = false;
                        foreach (Figure figure in listFigures){
                            if(figure.Contains ( clickPoint )){
                                select = true;
                                figure.Selected = true;
                            }
                        }

                        if(!select)
                            UnselectAllFigures();

                    }
                }

                if(isMoving){
                    int X = e.X - AutoScrollPosition.X;
                    int Y = e.Y - AutoScrollPosition.Y;

                    int shiftX = X - clickPoint.X;
                    int shiftY = Y - clickPoint.Y;

                    bool fits = true;
                    foreach(Figure figure in movingFigures){
                        if (! figure.IsInside ( imageSize, shiftX, shiftY )){
                            fits = false;
                            break;
                        }
                    }
                    if(fits){
                        foreach(Figure figure in movingFigures) {
                            figure.Move ( shiftX, shiftY );
                            if(parent.GridAutoDrag) {
                                figure.DragToGrid(parent.GridStep, imageSize);
                            }
                        }
                        isModified = true;
                    }
                }

                if(isEditedResizing){
                    int X = e.X - AutoScrollPosition.X;
                    int Y = e.Y - AutoScrollPosition.Y;

                    int shiftX = X - clickPoint.X;
                    int shiftY = Y - clickPoint.Y;

                    editedFigure.Resize (shiftX, shiftY, resizingType, imageSize );
                    isModified = true;

                    if(parent.GridAutoDrag)
                        editedFigure.DragToGrid ( parent.GridStep, imageSize );
                }

                currentFigure = null;
                movingFigures.Clear();

                isDrawing = false;
                isSelecting = false;
                isMoving = false;
                isEditedResizing = false;

                Invalidate();
            }
        }
Ejemplo n.º 2
0
 private void MdiChild_MouseDoubleClick(object sender, MouseEventArgs e)
 {
     MainForm parent = GetParent();
     if(parent.SelectMode){
         UnselectAllFigures();
         foreach (Figure figure in listFigures){
             if ( figure.Contains ( clickPoint ) ){
                 figure.Edited = true;
                 editedFigure = figure;
                 isEditing = true;
                 break;
             }
         }
         if(editedFigure != null && editedFigure is Text) {
             MyTextBox textBox = new MyTextBox(editedFigure as Text, this, MdiParent as MainForm);
             textBox.Show(AutoScrollPosition.X, AutoScrollPosition.Y);
         }
     }
 }