Move auto resize canvas method to shape manager

This commit is contained in:
Jaex 2018-04-13 16:07:42 +03:00
parent 215d10006f
commit eb2aa5a1e2
2 changed files with 21 additions and 17 deletions

View file

@ -23,12 +23,8 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
using ShareX.HelpersLib;
using System;
using System.Drawing;
using System.Drawing.Drawing2D;
using System.Linq;
using System.Windows.Forms;
namespace ShareX.ScreenCaptureLib
{
@ -94,20 +90,9 @@ protected void DrawImage(Graphics g)
public override void OnMoved()
{
Rectangle canvas = Manager.Form.CanvasRectangle;
Rectangle combinedImageRectangle = Manager.Shapes.OfType<ImageDrawingShape>().Select(x => x.Rectangle).Combine();
if (!canvas.Contains(combinedImageRectangle))
if (Manager.Form.IsEditorMode)
{
Padding margin = new Padding(Math.Max(0, canvas.X - combinedImageRectangle.X), Math.Max(0, canvas.Y - combinedImageRectangle.Y),
Math.Max(0, combinedImageRectangle.Right - canvas.Right), Math.Max(0, combinedImageRectangle.Bottom - canvas.Bottom));
Image img = ImageHelpers.AddCanvas(Manager.Form.Canvas, margin);
if (img != null)
{
Manager.Form.CanvasRectangle = Manager.Form.CanvasRectangle.LocationOffset(-margin.Left, -margin.Top);
Manager.UpdateCanvas(img, false);
}
Manager.AutoResizeCanvas();
}
}

View file

@ -1747,6 +1747,25 @@ private void ChangeCanvasSize()
Form.Resume();
}
public void AutoResizeCanvas()
{
Rectangle canvas = Form.CanvasRectangle;
Rectangle combinedImageRectangle = Shapes.OfType<ImageDrawingShape>().Select(x => x.Rectangle).Combine();
if (!canvas.Contains(combinedImageRectangle))
{
Padding margin = new Padding(Math.Max(0, canvas.X - combinedImageRectangle.X), Math.Max(0, canvas.Y - combinedImageRectangle.Y),
Math.Max(0, combinedImageRectangle.Right - canvas.Right), Math.Max(0, combinedImageRectangle.Bottom - canvas.Bottom));
Image img = ImageHelpers.AddCanvas(Form.Canvas, margin);
if (img != null)
{
Form.CanvasRectangle = Form.CanvasRectangle.LocationOffset(-margin.Left, -margin.Top);
UpdateCanvas(img, false);
}
}
}
private void AddCropTool()
{
CurrentTool = ShapeType.ToolCrop;