예제 #1
0
 private void ResetMouse()
 {
     currentMouseTask = MouseTasks.None;
     this.Cursor = Cursors.Default;
 }
예제 #2
0
        private void pbxImage_MouseMove(object sender, MouseEventArgs e)
        {
            if (pbxImage.Image != null)
            {
                if (currentMouseTask == MouseTasks.ResizeImageVertical)
                {
                    mouseEnd.Y = e.Location.Y;
                    int heightChange = mouseEnd.Y - mouseStart.Y;
                    mouseStart = mouseEnd;
                    ChangeSize(heightChange,
                               EditorImage.ResizeTypes.Pixels,
                               EditorImage.ResizeDirections.Vertical);
                }
                else if (currentMouseTask == MouseTasks.ResizeImageHorizontal)
                {
                    mouseEnd.X = e.Location.X;
                    int widthChange = mouseEnd.X - mouseStart.X;
                    mouseStart = mouseEnd;
                    ChangeSize(widthChange,
                               EditorImage.ResizeTypes.Pixels,
                               EditorImage.ResizeDirections.Horizontal);
                }
                else if (currentMouseTask == MouseTasks.MoveCrop)
                {
                    mouseEnd.X = e.Location.X;
                    mouseEnd.Y = e.Location.Y;
                    int moveX = mouseEnd.X - mouseStart.X;
                    int moveY = mouseEnd.Y - mouseStart.Y;
                    mouseStart.X = mouseEnd.X;
                    mouseStart.Y = mouseEnd.Y;
                    currentImage.MoveCrop(moveX, moveY);
                    pbxImage.Invalidate(); // Needed
                }
                else
                { // Look for borders
                    currentMouseTask = MouseTasks.None;
                    if (currentImage.HasCrop == true)
                    {
                        BorderHelper.Border border = cropBorderHelper.getBorder(e.Location);
                        if (border != BorderHelper.Border.Exterior && border != BorderHelper.Border.Interior)
                        {
                            this.Cursor = System.Windows.Forms.Cursors.SizeAll;
                            currentMouseTask = MouseTasks.ReadyMoveCrop;
                        }
                    }

                    if (pbxImage.Image != null)
                    {
                        BorderHelper.Border border = imgBorderHelper.getBorder(e.Location);
                        if (border != BorderHelper.Border.Exterior)
                        {
                            if (border == BorderHelper.Border.Bottom)
                            {
                                this.Cursor = System.Windows.Forms.Cursors.HSplit;
                                currentMouseTask = MouseTasks.ReadyResizeImageVertical;
                            }
                            else if (border == BorderHelper.Border.Right)
                            {
                                this.Cursor = System.Windows.Forms.Cursors.VSplit;
                                currentMouseTask = MouseTasks.ReadyResizeImageHorizontal;
                            }
                        }
                    }
                }

                if (currentMouseTask == MouseTasks.None)
                    this.Cursor = Cursors.Default;
            }
        }
예제 #3
0
 private void pbxImage_MouseUp(object sender, MouseEventArgs e)
 {
     currentMouseTask = MouseTasks.None;
     this.Cursor = Cursors.Default;
     if (currentImage.HasCrop)
     {
         if (currentImage.Crop.GetRectangle().Bottom > currentImage.GetRectangle().Bottom ||
             currentImage.Crop.GetRectangle().Right > currentImage.GetRectangle().Right)
         {
             int heightAdjust, widthAdjust;
             heightAdjust = currentImage.Crop.GetRectangle().Height;
             widthAdjust = currentImage.Crop.GetRectangle().Width;
             RefitForCrop();
         }
     }
 }
예제 #4
0
 private void pbxImage_MouseDown(object sender, MouseEventArgs e)
 {
     if (pbxImage.Image != null)
     {
         if (currentMouseTask == MouseTasks.ReadyResizeImageVertical)
         {
             currentMouseTask = MouseTasks.ResizeImageVertical;
             mouseStart.Y = e.Location.Y;
         }
         else if (currentMouseTask == MouseTasks.ReadyResizeImageHorizontal)
         {
             currentMouseTask = MouseTasks.ResizeImageHorizontal;
             mouseStart.X = e.Location.X;
         }
         else if (currentMouseTask == MouseTasks.ReadyMoveCrop)
         {
             currentMouseTask = MouseTasks.MoveCrop;
             mouseStart.X = e.Location.X;
             mouseStart.Y = e.Location.Y;
         }
     }
 }