mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Added canvas parameter to RegionCaptureForm constructor that way no need to use Prepare method
This commit is contained in:
parent
a1182e82a2
commit
525a603cf4
3 changed files with 25 additions and 50 deletions
|
@ -102,7 +102,7 @@ public Color CurrentColor
|
||||||
private Bitmap bmpBackgroundImage;
|
private Bitmap bmpBackgroundImage;
|
||||||
private Cursor defaultCursor;
|
private Cursor defaultCursor;
|
||||||
|
|
||||||
public RegionCaptureForm(RegionCaptureMode mode, RegionCaptureOptions options)
|
public RegionCaptureForm(RegionCaptureMode mode, RegionCaptureOptions options, Image canvas = null)
|
||||||
{
|
{
|
||||||
Mode = mode;
|
Mode = mode;
|
||||||
Options = options;
|
Options = options;
|
||||||
|
@ -142,6 +142,8 @@ public RegionCaptureForm(RegionCaptureMode mode, RegionCaptureOptions options)
|
||||||
textInnerBorderPen = new Pen(Color.FromArgb(150, Color.FromArgb(0, 81, 145)));
|
textInnerBorderPen = new Pen(Color.FromArgb(150, Color.FromArgb(0, 81, 145)));
|
||||||
markerPen = new Pen(Color.FromArgb(200, Color.Red));
|
markerPen = new Pen(Color.FromArgb(200, Color.Red));
|
||||||
canvasBorderPen = new Pen(Color.FromArgb(30, Color.Black));
|
canvasBorderPen = new Pen(Color.FromArgb(30, Color.Black));
|
||||||
|
|
||||||
|
Prepare(canvas);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
|
@ -239,19 +241,18 @@ internal void UpdateTitle()
|
||||||
Text = text;
|
Text = text;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Prepare()
|
private void Prepare(Image canvas = null)
|
||||||
{
|
{
|
||||||
Prepare(new Screenshot().CaptureFullscreen());
|
if (canvas == null)
|
||||||
}
|
{
|
||||||
|
canvas = new Screenshot().CaptureFullscreen();
|
||||||
|
}
|
||||||
|
|
||||||
// Must be called before show form
|
|
||||||
public void Prepare(Image img)
|
|
||||||
{
|
|
||||||
ShapeManager = new ShapeManager(this);
|
ShapeManager = new ShapeManager(this);
|
||||||
ShapeManager.WindowCaptureMode = !IsEditorMode && Options.DetectWindows;
|
ShapeManager.WindowCaptureMode = !IsEditorMode && Options.DetectWindows;
|
||||||
ShapeManager.IncludeControls = Options.DetectControls;
|
ShapeManager.IncludeControls = Options.DetectControls;
|
||||||
|
|
||||||
InitBackground(img);
|
InitBackground(canvas);
|
||||||
|
|
||||||
if (Mode == RegionCaptureMode.OneClick || ShapeManager.WindowCaptureMode)
|
if (Mode == RegionCaptureMode.OneClick || ShapeManager.WindowCaptureMode)
|
||||||
{
|
{
|
||||||
|
@ -267,13 +268,13 @@ public void Prepare(Image img)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal void InitBackground(Image img)
|
internal void InitBackground(Image canvas)
|
||||||
{
|
{
|
||||||
if (Canvas != null) Canvas.Dispose();
|
if (Canvas != null) Canvas.Dispose();
|
||||||
if (backgroundBrush != null) backgroundBrush.Dispose();
|
if (backgroundBrush != null) backgroundBrush.Dispose();
|
||||||
if (backgroundHighlightBrush != null) backgroundHighlightBrush.Dispose();
|
if (backgroundHighlightBrush != null) backgroundHighlightBrush.Dispose();
|
||||||
|
|
||||||
Canvas = img;
|
Canvas = canvas;
|
||||||
|
|
||||||
if (IsEditorMode)
|
if (IsEditorMode)
|
||||||
{
|
{
|
||||||
|
|
|
@ -40,7 +40,6 @@ public static Image GetRegionImage(RegionCaptureOptions options)
|
||||||
|
|
||||||
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions))
|
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions))
|
||||||
{
|
{
|
||||||
form.Prepare();
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
|
||||||
return form.GetResultImage();
|
return form.GetResultImage();
|
||||||
|
@ -54,7 +53,6 @@ public static bool GetRectangleRegion(out Rectangle rect, RegionCaptureOptions o
|
||||||
|
|
||||||
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions))
|
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Default, newOptions))
|
||||||
{
|
{
|
||||||
form.Prepare();
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
|
||||||
if (form.Result == RegionResult.Region)
|
if (form.Result == RegionResult.Region)
|
||||||
|
@ -101,7 +99,6 @@ public static PointInfo GetPointInfo(RegionCaptureOptions options)
|
||||||
|
|
||||||
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.ScreenColorPicker, newOptions))
|
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.ScreenColorPicker, newOptions))
|
||||||
{
|
{
|
||||||
form.Prepare();
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
|
||||||
if (form.Result == RegionResult.Region)
|
if (form.Result == RegionResult.Region)
|
||||||
|
@ -125,7 +122,6 @@ public static SimpleWindowInfo GetWindowInfo(RegionCaptureOptions options)
|
||||||
|
|
||||||
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.OneClick, newOptions))
|
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.OneClick, newOptions))
|
||||||
{
|
{
|
||||||
form.Prepare();
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
|
||||||
if (form.Result == RegionResult.Region)
|
if (form.Result == RegionResult.Region)
|
||||||
|
@ -145,7 +141,6 @@ public static void ShowScreenRuler(RegionCaptureOptions options)
|
||||||
|
|
||||||
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Ruler, newOptions))
|
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Ruler, newOptions))
|
||||||
{
|
{
|
||||||
form.Prepare();
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -160,10 +155,9 @@ public static Image AnnotateImage(Image img, string filePath, RegionCaptureOptio
|
||||||
{
|
{
|
||||||
RegionCaptureMode mode = taskMode ? RegionCaptureMode.TaskEditor : RegionCaptureMode.Editor;
|
RegionCaptureMode mode = taskMode ? RegionCaptureMode.TaskEditor : RegionCaptureMode.Editor;
|
||||||
|
|
||||||
using (RegionCaptureForm form = new RegionCaptureForm(mode, options))
|
using (RegionCaptureForm form = new RegionCaptureForm(mode, options, img))
|
||||||
{
|
{
|
||||||
form.ImageFilePath = filePath;
|
form.ImageFilePath = filePath;
|
||||||
form.Prepare(img);
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
|
||||||
switch (form.Result)
|
switch (form.Result)
|
||||||
|
|
|
@ -74,36 +74,23 @@ protected ImageInfo ExecuteRegionCapture(TaskSettings taskSettings)
|
||||||
mode = RegionCaptureMode.Annotation;
|
mode = RegionCaptureMode.Annotation;
|
||||||
}
|
}
|
||||||
|
|
||||||
RegionCaptureForm form = new RegionCaptureForm(mode, taskSettings.CaptureSettingsReference.SurfaceOptions);
|
Screenshot screenshot = TaskHelpers.GetScreenshot(taskSettings);
|
||||||
|
screenshot.CaptureCursor = false;
|
||||||
|
Image img = screenshot.CaptureFullscreen();
|
||||||
|
|
||||||
try
|
CursorData cursorData = null;
|
||||||
|
|
||||||
|
if (taskSettings.CaptureSettings.ShowCursor)
|
||||||
{
|
{
|
||||||
Screenshot screenshot = TaskHelpers.GetScreenshot(taskSettings);
|
cursorData = new CursorData();
|
||||||
screenshot.CaptureCursor = false;
|
}
|
||||||
Image img = screenshot.CaptureFullscreen();
|
|
||||||
|
|
||||||
CursorData cursorData = null;
|
using (RegionCaptureForm form = new RegionCaptureForm(mode, taskSettings.CaptureSettingsReference.SurfaceOptions, img))
|
||||||
|
{
|
||||||
try
|
if (cursorData != null && cursorData.IsValid)
|
||||||
{
|
{
|
||||||
if (taskSettings.CaptureSettings.ShowCursor)
|
form.AddCursor(cursorData.Handle, cursorData.Position);
|
||||||
{
|
cursorData.Dispose();
|
||||||
cursorData = new CursorData();
|
|
||||||
}
|
|
||||||
|
|
||||||
form.Prepare(img);
|
|
||||||
|
|
||||||
if (cursorData != null && cursorData.IsValid)
|
|
||||||
{
|
|
||||||
form.AddCursor(cursorData.Handle, cursorData.Position);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (cursorData != null)
|
|
||||||
{
|
|
||||||
cursorData.Dispose();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
form.ShowDialog();
|
form.ShowDialog();
|
||||||
|
@ -126,13 +113,6 @@ protected ImageInfo ExecuteRegionCapture(TaskSettings taskSettings)
|
||||||
lastRegionCaptureType = RegionCaptureType.Default;
|
lastRegionCaptureType = RegionCaptureType.Default;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
finally
|
|
||||||
{
|
|
||||||
if (form != null)
|
|
||||||
{
|
|
||||||
form.Dispose();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return imageInfo;
|
return imageInfo;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue