mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-04 12:14:45 +13:00
Rectangle (Light) added to Capture menu
This commit is contained in:
parent
2ed433ffef
commit
728e3fddde
5 changed files with 94 additions and 46 deletions
|
@ -55,8 +55,7 @@ public Rectangle SelectionRectangle0Based
|
|||
{
|
||||
get
|
||||
{
|
||||
return new Rectangle(SelectionRectangle.X - ScreenRectangle.X, SelectionRectangle.Y - ScreenRectangle.Y,
|
||||
SelectionRectangle.Width, SelectionRectangle.Height);
|
||||
return new Rectangle(SelectionRectangle.X - ScreenRectangle.X, SelectionRectangle.Y - ScreenRectangle.Y, SelectionRectangle.Width, SelectionRectangle.Height);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
38
ShareX/Forms/MainForm.Designer.cs
generated
38
ShareX/Forms/MainForm.Designer.cs
generated
|
@ -41,6 +41,7 @@ private void InitializeComponent()
|
|||
this.tsmiMonitor = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiRectangle = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiWindowRectangle = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiRectangleLight = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiRoundedRectangle = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiEllipse = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTriangle = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -194,6 +195,7 @@ private void InitializeComponent()
|
|||
this.tsmiTrayImageEffects = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayMonitorTest = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayDNSChanger = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayQRCode = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiScreenshotsFolder = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayHistory = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayImageHistory = new System.Windows.Forms.ToolStripMenuItem();
|
||||
|
@ -203,8 +205,9 @@ private void InitializeComponent()
|
|||
this.tsmiTrayShow = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayExit = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.ssToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayQRCode = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsmiTrayRectangleLight = new System.Windows.Forms.ToolStripMenuItem();
|
||||
this.tsMain.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
|
||||
this.scMain.Panel1.SuspendLayout();
|
||||
this.scMain.Panel2.SuspendLayout();
|
||||
this.scMain.SuspendLayout();
|
||||
|
@ -295,6 +298,7 @@ private void InitializeComponent()
|
|||
this.tsmiMonitor,
|
||||
this.tsmiRectangle,
|
||||
this.tsmiWindowRectangle,
|
||||
this.tsmiRectangleLight,
|
||||
this.tsmiRoundedRectangle,
|
||||
this.tsmiEllipse,
|
||||
this.tsmiTriangle,
|
||||
|
@ -350,6 +354,14 @@ private void InitializeComponent()
|
|||
this.tsmiWindowRectangle.Text = "Rectangle / Window";
|
||||
this.tsmiWindowRectangle.Click += new System.EventHandler(this.tsmiWindowRectangle_Click);
|
||||
//
|
||||
// tsmiRectangleLight
|
||||
//
|
||||
this.tsmiRectangleLight.Image = global::ShareX.Properties.Resources.Rectangle;
|
||||
this.tsmiRectangleLight.Name = "tsmiRectangleLight";
|
||||
this.tsmiRectangleLight.Size = new System.Drawing.Size(181, 22);
|
||||
this.tsmiRectangleLight.Text = "Rectangle (Light)";
|
||||
this.tsmiRectangleLight.Click += new System.EventHandler(this.tsmiRectangleLight_Click);
|
||||
//
|
||||
// tsmiRoundedRectangle
|
||||
//
|
||||
this.tsmiRoundedRectangle.Image = global::ShareX.Properties.Resources.layer_shape_round;
|
||||
|
@ -1337,6 +1349,7 @@ private void InitializeComponent()
|
|||
this.tsmiTrayMonitor,
|
||||
this.tsmiTrayRectangle,
|
||||
this.tsmiTrayWindowRectangle,
|
||||
this.tsmiTrayRectangleLight,
|
||||
this.tsmiTrayRoundedRectangle,
|
||||
this.tsmiTrayEllipse,
|
||||
this.tsmiTrayTriangle,
|
||||
|
@ -1657,6 +1670,14 @@ private void InitializeComponent()
|
|||
this.tsmiTrayDNSChanger.Text = "DNS changer...";
|
||||
this.tsmiTrayDNSChanger.Click += new System.EventHandler(this.tsmiDNSChanger_Click);
|
||||
//
|
||||
// tsmiTrayQRCode
|
||||
//
|
||||
this.tsmiTrayQRCode.Image = global::ShareX.Properties.Resources.barcode_2d;
|
||||
this.tsmiTrayQRCode.Name = "tsmiTrayQRCode";
|
||||
this.tsmiTrayQRCode.Size = new System.Drawing.Size(183, 22);
|
||||
this.tsmiTrayQRCode.Text = "QR code...";
|
||||
this.tsmiTrayQRCode.Click += new System.EventHandler(this.tsmiQRCode_Click);
|
||||
//
|
||||
// tsmiScreenshotsFolder
|
||||
//
|
||||
this.tsmiScreenshotsFolder.Image = global::ShareX.Properties.Resources.folder_open_image;
|
||||
|
@ -1724,13 +1745,13 @@ private void InitializeComponent()
|
|||
this.ssToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
|
||||
this.ssToolStripMenuItem.Text = "ss";
|
||||
//
|
||||
// tsmiTrayQRCode
|
||||
// tsmiTrayRectangleLight
|
||||
//
|
||||
this.tsmiTrayQRCode.Image = global::ShareX.Properties.Resources.barcode_2d;
|
||||
this.tsmiTrayQRCode.Name = "tsmiTrayQRCode";
|
||||
this.tsmiTrayQRCode.Size = new System.Drawing.Size(183, 22);
|
||||
this.tsmiTrayQRCode.Text = "QR code...";
|
||||
this.tsmiTrayQRCode.Click += new System.EventHandler(this.tsmiQRCode_Click);
|
||||
this.tsmiTrayRectangleLight.Image = global::ShareX.Properties.Resources.Rectangle;
|
||||
this.tsmiTrayRectangleLight.Name = "tsmiTrayRectangleLight";
|
||||
this.tsmiTrayRectangleLight.Size = new System.Drawing.Size(184, 22);
|
||||
this.tsmiTrayRectangleLight.Text = "Rectangle (Light)";
|
||||
this.tsmiTrayRectangleLight.Click += new System.EventHandler(this.tsmiTrayRectangleLight_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
|
@ -1755,6 +1776,7 @@ private void InitializeComponent()
|
|||
this.tsMain.PerformLayout();
|
||||
this.scMain.Panel1.ResumeLayout(false);
|
||||
this.scMain.Panel2.ResumeLayout(false);
|
||||
((System.ComponentModel.ISupportInitialize)(this.scMain)).EndInit();
|
||||
this.scMain.ResumeLayout(false);
|
||||
this.cmsUploadInfo.ResumeLayout(false);
|
||||
this.cmsTray.ResumeLayout(false);
|
||||
|
@ -1938,5 +1960,7 @@ private void InitializeComponent()
|
|||
private System.Windows.Forms.ToolStripMenuItem tsmiShowQRCode;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiQRCode;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiTrayQRCode;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiRectangleLight;
|
||||
private System.Windows.Forms.ToolStripMenuItem tsmiTrayRectangleLight;
|
||||
}
|
||||
}
|
|
@ -112,27 +112,27 @@
|
|||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>17, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cmsUploadInfo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="cmsUploadInfo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>286, 17</value>
|
||||
</metadata>
|
||||
<metadata name="niTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="niTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>105, 17</value>
|
||||
</metadata>
|
||||
<metadata name="cmsTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<metadata name="cmsTray.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||
<value>190, 17</value>
|
||||
</metadata>
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||
<value>49</value>
|
||||
</metadata>
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>
|
||||
AAABAAcADQ0AAAAAAA0cnQAAdgAAAICAAAAAACAAKAgBAJKdAABAQAAAAAAgAChCAAC6pQEAMDAAAAAA
|
||||
|
|
|
@ -39,6 +39,8 @@ public partial class MainForm
|
|||
{
|
||||
private delegate Image ScreenCaptureDelegate();
|
||||
|
||||
private bool isLightCapture;
|
||||
|
||||
private void InitHotkeys()
|
||||
{
|
||||
TaskEx.Run(() =>
|
||||
|
@ -173,8 +175,8 @@ public void CaptureScreenshot(CaptureType captureType, TaskSettings taskSettings
|
|||
case CaptureType.ActiveMonitor:
|
||||
DoCapture(Screenshot.CaptureActiveMonitor, CaptureType.ActiveMonitor, taskSettings, autoHideForm);
|
||||
break;
|
||||
case CaptureType.RectangleWindow:
|
||||
case CaptureType.Rectangle:
|
||||
case CaptureType.RectangleWindow:
|
||||
case CaptureType.RoundedRectangle:
|
||||
case CaptureType.Ellipse:
|
||||
case CaptureType.Triangle:
|
||||
|
@ -359,12 +361,6 @@ private void CaptureRegion(CaptureType captureType, TaskSettings taskSettings, b
|
|||
{
|
||||
default:
|
||||
case CaptureType.Rectangle:
|
||||
if (taskSettings.AdvancedSettings.UseLightRectangleCrop)
|
||||
{
|
||||
CaptureLightRectangle(taskSettings, autoHideForm);
|
||||
return;
|
||||
}
|
||||
|
||||
surface = new RectangleRegion();
|
||||
break;
|
||||
case CaptureType.RectangleWindow:
|
||||
|
@ -413,6 +409,11 @@ private void CaptureRegion(CaptureType captureType, TaskSettings taskSettings, b
|
|||
{
|
||||
img = screenshot;
|
||||
}
|
||||
|
||||
if (img != null)
|
||||
{
|
||||
isLightCapture = false;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
@ -423,8 +424,10 @@ private void CaptureRegion(CaptureType captureType, TaskSettings taskSettings, b
|
|||
}, captureType, taskSettings, autoHideForm);
|
||||
}
|
||||
|
||||
private void CaptureLightRectangle(TaskSettings taskSettings, bool autoHideForm = true)
|
||||
private void CaptureLightRectangle(TaskSettings taskSettings = null, bool autoHideForm = true)
|
||||
{
|
||||
if (taskSettings == null) taskSettings = TaskSettings.GetDefaultTaskSettings();
|
||||
|
||||
DoCapture(() =>
|
||||
{
|
||||
Image img = null;
|
||||
|
@ -434,6 +437,11 @@ private void CaptureLightRectangle(TaskSettings taskSettings, bool autoHideForm
|
|||
if (rectangleLight.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
img = rectangleLight.GetAreaImage();
|
||||
|
||||
if (img != null)
|
||||
{
|
||||
isLightCapture = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -443,7 +451,9 @@ private void CaptureLightRectangle(TaskSettings taskSettings, bool autoHideForm
|
|||
|
||||
private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = true)
|
||||
{
|
||||
if (!taskSettings.AdvancedSettings.UseLightRectangleCrop && Surface.LastRegionFillPath != null)
|
||||
if (!isLightCapture)
|
||||
{
|
||||
if (Surface.LastRegionFillPath != null)
|
||||
{
|
||||
DoCapture(() =>
|
||||
{
|
||||
|
@ -453,7 +463,14 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
|
|||
}
|
||||
}, CaptureType.LastRegion, taskSettings, autoHideForm);
|
||||
}
|
||||
else if (taskSettings.AdvancedSettings.UseLightRectangleCrop && !RectangleLight.LastSelectionRectangle0Based.IsEmpty)
|
||||
else
|
||||
{
|
||||
CaptureRegion(CaptureType.Rectangle, taskSettings, autoHideForm);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!RectangleLight.LastSelectionRectangle0Based.IsEmpty)
|
||||
{
|
||||
DoCapture(() =>
|
||||
{
|
||||
|
@ -465,7 +482,8 @@ private void CaptureLastRegion(TaskSettings taskSettings, bool autoHideForm = tr
|
|||
}
|
||||
else
|
||||
{
|
||||
CaptureRegion(CaptureType.Rectangle, taskSettings, autoHideForm);
|
||||
CaptureLightRectangle(taskSettings, autoHideForm);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -573,6 +591,11 @@ private void tsmiRoundedRectangle_Click(object sender, EventArgs e)
|
|||
CaptureScreenshot(CaptureType.RoundedRectangle);
|
||||
}
|
||||
|
||||
private void tsmiRectangleLight_Click(object sender, EventArgs e)
|
||||
{
|
||||
CaptureLightRectangle();
|
||||
}
|
||||
|
||||
private void tsmiEllipse_Click(object sender, EventArgs e)
|
||||
{
|
||||
CaptureScreenshot(CaptureType.Ellipse);
|
||||
|
@ -637,14 +660,19 @@ private void tsmiTrayMonitorItems_Click(object sender, EventArgs e)
|
|||
}
|
||||
}
|
||||
|
||||
private void tsmiTrayRectangle_Click(object sender, EventArgs e)
|
||||
{
|
||||
CaptureScreenshot(CaptureType.Rectangle, null, false);
|
||||
}
|
||||
|
||||
private void tsmiTrayWindowRectangle_Click(object sender, EventArgs e)
|
||||
{
|
||||
CaptureScreenshot(CaptureType.RectangleWindow, null, false);
|
||||
}
|
||||
|
||||
private void tsmiTrayRectangle_Click(object sender, EventArgs e)
|
||||
private void tsmiTrayRectangleLight_Click(object sender, EventArgs e)
|
||||
{
|
||||
CaptureScreenshot(CaptureType.Rectangle, null, false);
|
||||
CaptureLightRectangle(null, false);
|
||||
}
|
||||
|
||||
private void tsmiTrayRoundedRectangle_Click(object sender, EventArgs e)
|
||||
|
|
|
@ -395,9 +395,6 @@ public Size ToastWindowSize
|
|||
[Category("After upload"), DefaultValue(false), Description("After upload form will be automatically closed after 60 seconds.")]
|
||||
public bool AutoCloseAfterUploadForm { get; set; }
|
||||
|
||||
[Category("Capture"), DefaultValue(false), Description("Light version of rectangle region for better performance.")]
|
||||
public bool UseLightRectangleCrop { get; set; }
|
||||
|
||||
[Category("Interaction"), DefaultValue(false), Description("Disable notifications")]
|
||||
public bool DisableNotifications { get; set; }
|
||||
|
||||
|
|
Loading…
Reference in a new issue