mirror of
https://github.com/ShareX/ShareX.git
synced 2024-09-30 01:07:21 +13:00
Editor events working now
This commit is contained in:
parent
eec447e011
commit
ad1236b2fd
4 changed files with 77 additions and 51 deletions
|
@ -41,6 +41,7 @@ public sealed class RegionCaptureForm : Form
|
|||
{
|
||||
public static GraphicsPath LastRegionFillPath { get; private set; }
|
||||
|
||||
public event Action<Image> AfterCaptureTasksRequested;
|
||||
public event Action<Image, string> SaveImageRequested;
|
||||
public event Func<Image, string, string> SaveImageAsRequested;
|
||||
public event Action<Image> CopyImageRequested;
|
||||
|
@ -79,6 +80,8 @@ public Color CurrentColor
|
|||
|
||||
public SimpleWindowInfo SelectedWindow { get; private set; }
|
||||
|
||||
public string ImageFilePath { get; set; }
|
||||
|
||||
internal ShapeManager ShapeManager { get; private set; }
|
||||
|
||||
internal List<DrawableObject> DrawableObjects { get; private set; }
|
||||
|
@ -1148,45 +1151,85 @@ private Image GetOutputImage()
|
|||
return ShapeManager.RenderOutputImage(Image);
|
||||
}
|
||||
|
||||
internal void OnSaveImageRequested(Image img, string filePath)
|
||||
internal void OnAfterCaptureTasksRequested()
|
||||
{
|
||||
if (AfterCaptureTasksRequested != null)
|
||||
{
|
||||
Close();
|
||||
|
||||
FormClosed += (sender, e) =>
|
||||
{
|
||||
Image img = GetResultImage();
|
||||
AfterCaptureTasksRequested(img);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
internal void OnSaveImageRequested()
|
||||
{
|
||||
if (SaveImageRequested != null)
|
||||
{
|
||||
SaveImageRequested(img, filePath);
|
||||
Close();
|
||||
|
||||
using (Image img = GetResultImage())
|
||||
{
|
||||
SaveImageRequested(img, ImageFilePath);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal string OnSaveImageAsRequested(Image img, string filePath)
|
||||
internal void OnSaveImageAsRequested()
|
||||
{
|
||||
if (SaveImageAsRequested != null)
|
||||
{
|
||||
return SaveImageAsRequested(img, filePath);
|
||||
}
|
||||
Close();
|
||||
|
||||
return null;
|
||||
using (Image img = GetResultImage())
|
||||
{
|
||||
string filePath = SaveImageAsRequested(img, ImageFilePath);
|
||||
|
||||
if (!string.IsNullOrEmpty(filePath))
|
||||
{
|
||||
ImageFilePath = filePath;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal void OnCopyImageRequested(Image img)
|
||||
internal void OnCopyImageRequested()
|
||||
{
|
||||
if (CopyImageRequested != null)
|
||||
{
|
||||
CopyImageRequested(img);
|
||||
Close();
|
||||
|
||||
using (Image img = GetResultImage())
|
||||
{
|
||||
CopyImageRequested(img);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
internal void OnUploadImageRequested(Image img)
|
||||
internal void OnUploadImageRequested()
|
||||
{
|
||||
if (UploadImageRequested != null)
|
||||
{
|
||||
Close();
|
||||
|
||||
Image img = GetResultImage();
|
||||
UploadImageRequested(img);
|
||||
}
|
||||
}
|
||||
|
||||
internal void OnPrintImageRequested(Image img)
|
||||
internal void OnPrintImageRequested()
|
||||
{
|
||||
if (PrintImageRequested != null)
|
||||
{
|
||||
PrintImageRequested(img);
|
||||
Close();
|
||||
|
||||
using (Image img = GetResultImage())
|
||||
{
|
||||
PrintImageRequested(img);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -151,7 +151,8 @@ public static void ShowScreenRuler(RegionCaptureOptions options)
|
|||
}
|
||||
}
|
||||
|
||||
public static Image AnnotateImage(Image img, RegionCaptureOptions options,
|
||||
public static void AnnotateImage(Image img, string filePath, RegionCaptureOptions options,
|
||||
Action<Image> afterCaptureTasksRequested,
|
||||
Action<Image, string> saveImageRequested,
|
||||
Func<Image, string, string> saveImageAsRequested,
|
||||
Action<Image> copyImageRequested,
|
||||
|
@ -160,6 +161,9 @@ public static Image AnnotateImage(Image img, RegionCaptureOptions options,
|
|||
{
|
||||
using (RegionCaptureForm form = new RegionCaptureForm(RegionCaptureMode.Editor))
|
||||
{
|
||||
form.ImageFilePath = filePath;
|
||||
|
||||
form.AfterCaptureTasksRequested += afterCaptureTasksRequested;
|
||||
form.SaveImageRequested += saveImageRequested;
|
||||
form.SaveImageAsRequested += saveImageAsRequested;
|
||||
form.CopyImageRequested += copyImageRequested;
|
||||
|
@ -173,14 +177,7 @@ public static Image AnnotateImage(Image img, RegionCaptureOptions options,
|
|||
|
||||
form.Prepare(img);
|
||||
form.ShowDialog();
|
||||
|
||||
if (form.Result == RegionResult.Region)
|
||||
{
|
||||
return form.GetResultImage();
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
public static Image ApplyRegionPathToImage(Image img, GraphicsPath gp)
|
||||
|
|
|
@ -271,39 +271,33 @@ private void CreateContextMenu()
|
|||
{
|
||||
ToolStripMenuItem tsmiCompleteEdit = new ToolStripMenuItem("Run after capture tasks");
|
||||
tsmiCompleteEdit.Image = Resources.tick;
|
||||
tsmiCompleteEdit.Click += (sender, e) => form.Close(RegionResult.Region);
|
||||
tsmiCompleteEdit.Click += (sender, e) => form.OnAfterCaptureTasksRequested();
|
||||
cmsContextMenu.Items.Add(tsmiCompleteEdit);
|
||||
|
||||
ToolStripMenuItem tsmiSaveImage = new ToolStripMenuItem("Save image");
|
||||
tsmiSaveImage.Enabled = !string.IsNullOrEmpty(form.ImageFilePath);
|
||||
tsmiSaveImage.Image = Resources.disk_black;
|
||||
tsmiSaveImage.Click += (sender, e) =>
|
||||
{
|
||||
form.Close();
|
||||
using (Image img = form.GetResultImage())
|
||||
{
|
||||
form.OnSaveImageRequested(img, null);
|
||||
}
|
||||
};
|
||||
tsmiSaveImage.Click += (sender, e) => form.OnSaveImageRequested();
|
||||
cmsContextMenu.Items.Add(tsmiSaveImage);
|
||||
|
||||
ToolStripMenuItem tsmiSaveImageAs = new ToolStripMenuItem("Save image as...");
|
||||
tsmiSaveImageAs.Image = Resources.disks_black;
|
||||
tsmiSaveImageAs.Click += (sender, e) => form.Close(RegionResult.Region);
|
||||
tsmiSaveImageAs.Click += (sender, e) => form.OnSaveImageAsRequested();
|
||||
cmsContextMenu.Items.Add(tsmiSaveImageAs);
|
||||
|
||||
ToolStripMenuItem tsmiCopyImage = new ToolStripMenuItem("Copy image to clipboard");
|
||||
tsmiCopyImage.Image = Resources.clipboard;
|
||||
tsmiCopyImage.Click += (sender, e) => form.Close(RegionResult.Region);
|
||||
tsmiCopyImage.Click += (sender, e) => form.OnCopyImageRequested();
|
||||
cmsContextMenu.Items.Add(tsmiCopyImage);
|
||||
|
||||
ToolStripMenuItem tsmiUploadImage = new ToolStripMenuItem("Upload image");
|
||||
tsmiUploadImage.Image = Resources.drive_globe;
|
||||
tsmiUploadImage.Click += (sender, e) => form.Close(RegionResult.Region);
|
||||
tsmiUploadImage.Click += (sender, e) => form.OnUploadImageRequested();
|
||||
cmsContextMenu.Items.Add(tsmiUploadImage);
|
||||
|
||||
ToolStripMenuItem tsmiPrintImage = new ToolStripMenuItem("Print image...");
|
||||
tsmiPrintImage.Image = Resources.printer;
|
||||
tsmiPrintImage.Click += (sender, e) => form.Close(RegionResult.Region);
|
||||
tsmiPrintImage.Click += (sender, e) => form.OnPrintImageRequested();
|
||||
cmsContextMenu.Items.Add(tsmiPrintImage);
|
||||
|
||||
ToolStripSeparator tssEditorMode = new ToolStripSeparator();
|
||||
|
|
|
@ -626,30 +626,22 @@ public static void AnnotateImage(string filePath, TaskSettings taskSettings = nu
|
|||
|
||||
public static void AnnotateImageUsingShareX(Image img, string filePath, TaskSettings taskSettings = null)
|
||||
{
|
||||
if (img == null)
|
||||
if (img == null && File.Exists(filePath))
|
||||
{
|
||||
if (File.Exists(filePath))
|
||||
{
|
||||
img = ImageHelpers.LoadImage(filePath);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
img = ImageHelpers.LoadImage(filePath);
|
||||
}
|
||||
|
||||
using (img)
|
||||
if (img != null)
|
||||
{
|
||||
Image result = RegionCaptureTasks.AnnotateImage(img, taskSettings.CaptureSettingsReference.SurfaceOptions,
|
||||
(x, newFilePath) => SaveImageAsFile(x, taskSettings),
|
||||
(x, newFilePath) => ImageHelpers.SaveImageFileDialog(x, newFilePath),
|
||||
x => ClipboardHelpers.CopyImage(x),
|
||||
x => UploadManager.UploadImage(x),
|
||||
x => PrintImage(x));
|
||||
|
||||
if (result != null)
|
||||
using (img)
|
||||
{
|
||||
UploadManager.RunImageTask(result, taskSettings);
|
||||
RegionCaptureTasks.AnnotateImage(img, filePath, taskSettings.CaptureSettingsReference.SurfaceOptions,
|
||||
x => UploadManager.RunImageTask(x, taskSettings),
|
||||
(x, newFilePath) => ImageHelpers.SaveImage(x, newFilePath),
|
||||
(x, newFilePath) => ImageHelpers.SaveImageFileDialog(x, newFilePath),
|
||||
x => ClipboardHelpers.CopyImage(x),
|
||||
x => UploadManager.UploadImage(x),
|
||||
x => PrintImage(x));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue