Merge remote-tracking branch 'upstream/master'

This commit is contained in:
Craftplacer 2021-04-30 09:31:07 +02:00
commit 0f4c4005e0
37 changed files with 348 additions and 308 deletions

View file

@ -1612,5 +1612,39 @@ public static IEnumerable<string> GetFilesByExtensions(DirectoryInfo directoryIn
HashSet<string> allowedExtensions = new HashSet<string>(extensions, StringComparer.OrdinalIgnoreCase); HashSet<string> allowedExtensions = new HashSet<string>(extensions, StringComparer.OrdinalIgnoreCase);
return directoryInfo.EnumerateFiles().Where(f => allowedExtensions.Contains(f.Extension)).Select(x => x.FullName); return directoryInfo.EnumerateFiles().Where(f => allowedExtensions.Contains(f.Extension)).Select(x => x.FullName);
} }
public static Icon GetProgressIcon(int percentage)
{
return GetProgressIcon(percentage, Color.FromArgb(16, 116, 193));
}
public static Icon GetProgressIcon(int percentage, Color color)
{
percentage = percentage.Clamp(0, 99);
Size size = SystemInformation.SmallIconSize;
using (Bitmap bmp = new Bitmap(size.Width, size.Height))
using (Graphics g = Graphics.FromImage(bmp))
{
int y = (int)(size.Height * (percentage / 100f));
if (y > 0)
{
using (Brush brush = new SolidBrush(color))
{
g.FillRectangle(brush, 0, size.Height - 1 - y, size.Width, y);
}
}
using (Font font = new Font("Arial", 10))
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
{
g.DrawString(percentage.ToString(), font, Brushes.Black, size.Width / 2f, size.Height / 2f, sf);
g.DrawString(percentage.ToString(), font, Brushes.White, size.Width / 2f, (size.Height / 2f) - 1, sf);
}
return Icon.FromHandle(bmp.GetHicon());
}
}
} }
} }

View file

@ -333,4 +333,9 @@ public enum BorderStyle
DashDot, DashDot,
DashDotDot DashDotDot
} }
public enum ScreenRecordState
{
Waiting, BeforeStart, AfterStart, AfterRecordingStart, Encoding
}
} }

View file

@ -1,4 +1,4 @@
namespace ShareX namespace ShareX.ScreenCaptureLib
{ {
partial class ScreenRecordForm partial class ScreenRecordForm
{ {
@ -75,14 +75,14 @@ private void InitializeComponent()
// //
// tsmiStart // tsmiStart
// //
this.tsmiStart.Image = global::ShareX.Properties.Resources.control_record; this.tsmiStart.Image = global::ShareX.ScreenCaptureLib.Properties.Resources.control_record;
this.tsmiStart.Name = "tsmiStart"; this.tsmiStart.Name = "tsmiStart";
resources.ApplyResources(this.tsmiStart, "tsmiStart"); resources.ApplyResources(this.tsmiStart, "tsmiStart");
this.tsmiStart.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btnStart_MouseClick); this.tsmiStart.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btnStart_MouseClick);
// //
// tsmiAbort // tsmiAbort
// //
this.tsmiAbort.Image = global::ShareX.Properties.Resources.cross; this.tsmiAbort.Image = global::ShareX.ScreenCaptureLib.Properties.Resources.cross;
this.tsmiAbort.Name = "tsmiAbort"; this.tsmiAbort.Name = "tsmiAbort";
resources.ApplyResources(this.tsmiAbort, "tsmiAbort"); resources.ApplyResources(this.tsmiAbort, "tsmiAbort");
this.tsmiAbort.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btnAbort_MouseClick); this.tsmiAbort.MouseUp += new System.Windows.Forms.MouseEventHandler(this.btnAbort_MouseClick);

View file

@ -24,14 +24,14 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3) #endregion License Information (GPL v3)
using ShareX.HelpersLib; using ShareX.HelpersLib;
using ShareX.Properties; using ShareX.ScreenCaptureLib.Properties;
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Drawing; using System.Drawing;
using System.Threading; using System.Threading;
using System.Windows.Forms; using System.Windows.Forms;
namespace ShareX namespace ShareX.ScreenCaptureLib
{ {
public partial class ScreenRecordForm : Form public partial class ScreenRecordForm : Form
{ {
@ -46,24 +46,21 @@ public partial class ScreenRecordForm : Form
public bool IsStopRequested { get; private set; } public bool IsStopRequested { get; private set; }
public bool IsAbortRequested { get; private set; } public bool IsAbortRequested { get; private set; }
private TaskSettings taskSettings; public bool ActivateWindow { get; set; } = true;
public float Duration { get; set; } = 0;
public bool AskConfirmationOnAbort { get; set; } = false;
private Color borderColor = Color.Red; private Color borderColor = Color.Red;
private Rectangle borderRectangle; private Rectangle borderRectangle;
private Rectangle borderRectangle0Based; private Rectangle borderRectangle0Based;
private bool activateWindow;
private float duration;
private static int lastIconStatus = -1; private static int lastIconStatus = -1;
public ScreenRecordForm(Rectangle regionRectangle, TaskSettings taskSettings, bool activateWindow = true, float duration = 0) public ScreenRecordForm(Rectangle regionRectangle)
{ {
InitializeComponent(); InitializeComponent();
Icon = ShareXResources.Icon; Icon = ShareXResources.Icon;
niTray.Icon = ShareXResources.Icon; niTray.Icon = ShareXResources.Icon;
this.taskSettings = taskSettings;
this.activateWindow = activateWindow;
this.duration = duration;
borderRectangle = regionRectangle.Offset(1); borderRectangle = regionRectangle.Offset(1);
borderRectangle0Based = new Rectangle(0, 0, borderRectangle.Width, borderRectangle.Height); borderRectangle0Based = new Rectangle(0, 0, borderRectangle.Width, borderRectangle.Height);
@ -97,7 +94,7 @@ protected override bool ShowWithoutActivation
{ {
get get
{ {
return !activateWindow; return !ActivateWindow;
} }
} }
@ -131,7 +128,7 @@ protected override void Dispose(bool disposing)
private void ScreenRegionForm_Shown(object sender, EventArgs e) private void ScreenRegionForm_Shown(object sender, EventArgs e)
{ {
if (activateWindow) if (ActivateWindow)
{ {
this.ForceActivate(); this.ForceActivate();
} }
@ -167,8 +164,8 @@ public void StartCountdown(int milliseconds)
public void StartRecordingTimer() public void StartRecordingTimer()
{ {
IsCountdown = duration > 0; IsCountdown = Duration > 0;
Countdown = TimeSpan.FromSeconds(duration); Countdown = TimeSpan.FromSeconds(Duration);
lblTimer.ForeColor = Color.White; lblTimer.ForeColor = Color.White;
borderColor = Color.FromArgb(0, 255, 0); borderColor = Color.FromArgb(0, 255, 0);
@ -229,8 +226,8 @@ private void btnAbort_MouseClick(object sender, MouseEventArgs e)
{ {
if (e.Button == MouseButtons.Left) if (e.Button == MouseButtons.Left)
{ {
if (!taskSettings.CaptureSettings.ScreenRecordAskConfirmationOnAbort || if (!AskConfirmationOnAbort || MessageBox.Show(Resources.ScreenRecordForm_ConfirmCancel, "ShareX", MessageBoxButtons.YesNo,
MessageBox.Show(Resources.ScreenRecord_ConfirmCancel, "ShareX", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) MessageBoxIcon.Warning) == DialogResult.Yes)
{ {
AbortRecording(); AbortRecording();
} }
@ -278,7 +275,7 @@ public void ChangeState(ScreenRecordState state)
case ScreenRecordState.BeforeStart: case ScreenRecordState.BeforeStart:
string trayTextBeforeStart = "ShareX - " + Resources.ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_; string trayTextBeforeStart = "ShareX - " + Resources.ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_;
niTray.Text = trayTextBeforeStart.Truncate(63); niTray.Text = trayTextBeforeStart.Truncate(63);
tsmiStart.Text = Resources.AutoCaptureForm_Execute_Start; tsmiStart.Text = Resources.ScreenRecordForm_Start;
cmsMain.Enabled = true; cmsMain.Enabled = true;
break; break;
case ScreenRecordState.AfterStart: case ScreenRecordState.AfterStart:
@ -286,8 +283,8 @@ public void ChangeState(ScreenRecordState state)
string trayTextAfterStart = "ShareX - " + Resources.ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_; string trayTextAfterStart = "ShareX - " + Resources.ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_;
niTray.Text = trayTextAfterStart.Truncate(63); niTray.Text = trayTextAfterStart.Truncate(63);
niTray.Icon = Resources.control_record.ToIcon(); niTray.Icon = Resources.control_record.ToIcon();
tsmiStart.Text = Resources.AutoCaptureForm_Execute_Stop; tsmiStart.Text = Resources.ScreenRecordForm_Stop;
btnStart.Text = Resources.AutoCaptureForm_Execute_Stop; btnStart.Text = Resources.ScreenRecordForm_Stop;
break; break;
case ScreenRecordState.AfterRecordingStart: case ScreenRecordState.AfterRecordingStart:
IsRecording = true; IsRecording = true;
@ -297,7 +294,7 @@ public void ChangeState(ScreenRecordState state)
Hide(); Hide();
string trayTextAfterStop = "ShareX - " + Resources.ScreenRecordForm_StartRecording_Encoding___; string trayTextAfterStop = "ShareX - " + Resources.ScreenRecordForm_StartRecording_Encoding___;
niTray.Text = trayTextAfterStop.Truncate(63); niTray.Text = trayTextAfterStop.Truncate(63);
niTray.Icon = Resources.camcorder_pencil.ToIcon(); niTray.Icon = Resources.camcorder__pencil.ToIcon();
cmsMain.Enabled = false; cmsMain.Enabled = false;
break; break;
} }
@ -316,19 +313,19 @@ public void ChangeStateProgress(int progress)
{ {
try try
{ {
icon = TaskHelpers.GetProgressIcon(progress, Color.FromArgb(140, 0, 36)); icon = Helpers.GetProgressIcon(progress, Color.FromArgb(140, 0, 36));
} }
catch (Exception e) catch (Exception e)
{ {
DebugHelper.WriteException(e); DebugHelper.WriteException(e);
progress = -1; progress = -1;
if (lastIconStatus == progress) return; if (lastIconStatus == progress) return;
icon = Resources.camcorder_pencil.ToIcon(); icon = Resources.camcorder__pencil.ToIcon();
} }
} }
else else
{ {
icon = Resources.camcorder_pencil.ToIcon(); icon = Resources.camcorder__pencil.ToIcon();
} }
using (Icon oldIcon = niTray.Icon) using (Icon oldIcon = niTray.Icon)

View file

@ -119,6 +119,16 @@ internal static string BaseRegionForm_InitializeComponent_Region_capture {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap camcorder__pencil {
get {
object obj = ResourceManager.GetObject("camcorder__pencil", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -178,6 +188,26 @@ internal static System.Drawing.Bitmap control {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap control_record {
get {
object obj = ResourceManager.GetObject("control_record", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap control_record_yellow {
get {
object obj = ResourceManager.GetObject("control_record_yellow", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -1254,6 +1284,69 @@ internal static string RegionCaptureForm_TipYouCanPanImageByHoldingMouseMiddleBu
} }
} }
/// <summary>
/// Looks up a localized string similar to Are you sure you want to abort this recording?.
/// </summary>
internal static string ScreenRecordForm_ConfirmCancel {
get {
return ResourceManager.GetString("ScreenRecordForm_ConfirmCancel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Start.
/// </summary>
internal static string ScreenRecordForm_Start {
get {
return ResourceManager.GetString("ScreenRecordForm_Start", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Click to start recording..
/// </summary>
internal static string ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Click to stop recording..
/// </summary>
internal static string ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Encoding....
/// </summary>
internal static string ScreenRecordForm_StartRecording_Encoding___ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Encoding___", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Waiting....
/// </summary>
internal static string ScreenRecordForm_StartRecording_Waiting___ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Waiting___", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Stop.
/// </summary>
internal static string ScreenRecordForm_Stop {
get {
return ResourceManager.GetString("ScreenRecordForm_Stop", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Stop capture. /// Looks up a localized string similar to Stop capture.
/// </summary> /// </summary>

View file

@ -740,4 +740,38 @@ X: {4} Y: {5}</value>
<data name="ShapeManager_CreateToolbar_StepType" xml:space="preserve"> <data name="ShapeManager_CreateToolbar_StepType" xml:space="preserve">
<value>Step type:</value> <value>Step type:</value>
</data> </data>
<data name="camcorder__pencil" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\camcorder--pencil.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="control_record" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\control-record.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="control_record_yellow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\control-record-yellow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ScreenRecordForm_ConfirmCancel" xml:space="preserve">
<value>Are you sure you want to abort this recording?</value>
</data>
<data name="ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_" xml:space="preserve">
<value>Click to start recording.</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_" xml:space="preserve">
<value>Click to stop recording.</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="ScreenRecordForm_StartRecording_Encoding___" xml:space="preserve">
<value>Encoding...</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="ScreenRecordForm_StartRecording_Waiting___" xml:space="preserve">
<value>Waiting...</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="ScreenRecordForm_Start" xml:space="preserve">
<value>Start</value>
</data>
<data name="ScreenRecordForm_Stop" xml:space="preserve">
<value>Stop</value>
</data>
</root> </root>

Binary file not shown.

After

Width:  |  Height:  |  Size: 723 B

View file

Before

Width:  |  Height:  |  Size: 522 B

After

Width:  |  Height:  |  Size: 522 B

View file

Before

Width:  |  Height:  |  Size: 484 B

After

Width:  |  Height:  |  Size: 484 B

View file

@ -115,6 +115,12 @@
<Compile Include="Forms\ImageSizeForm.Designer.cs"> <Compile Include="Forms\ImageSizeForm.Designer.cs">
<DependentUpon>ImageSizeForm.cs</DependentUpon> <DependentUpon>ImageSizeForm.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="Forms\ScreenRecordForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\ScreenRecordForm.Designer.cs">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\StickerForm.cs"> <Compile Include="Forms\StickerForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -332,6 +338,9 @@
<None Include="Resources\arrow-circle.png" /> <None Include="Resources\arrow-circle.png" />
<None Include="Resources\arrow-circle-double.png" /> <None Include="Resources\arrow-circle-double.png" />
<None Include="Resources\closedhand.cur" /> <None Include="Resources\closedhand.cur" />
<None Include="Resources\camcorder--pencil.png" />
<None Include="Resources\control-record.png" />
<None Include="Resources\control-record-yellow.png" />
<Content Include="Resources\Crosshair.cur" /> <Content Include="Resources\Crosshair.cur" />
<None Include="Resources\exclamation-button.png" /> <None Include="Resources\exclamation-button.png" />
</ItemGroup> </ItemGroup>
@ -579,6 +588,66 @@
<EmbeddedResource Include="Forms\NewImageForm.zh-TW.resx"> <EmbeddedResource Include="Forms\NewImageForm.zh-TW.resx">
<DependentUpon>NewImageForm.cs</DependentUpon> <DependentUpon>NewImageForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.de.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.es-MX.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.es.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.fa-IR.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.fr.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.hu.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.id-ID.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.it-IT.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.ja-JP.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.ko-KR.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.nl-NL.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.pt-BR.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.pt-PT.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.ru.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.tr.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.uk.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.vi-VN.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.zh-CN.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.zh-TW.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScrollingCaptureForm.de.resx"> <EmbeddedResource Include="Forms\ScrollingCaptureForm.de.resx">
<DependentUpon>ScrollingCaptureForm.cs</DependentUpon> <DependentUpon>ScrollingCaptureForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View file

@ -286,11 +286,6 @@ public enum ThumbnailTitleLocation
Top, Bottom Top, Bottom
} }
public enum ScreenRecordState
{
Waiting, BeforeStart, AfterStart, AfterRecordingStart, Encoding
}
public enum RegionCaptureType public enum RegionCaptureType
{ {
Default, Light, Transparent Default, Light, Transparent

View file

@ -1033,26 +1033,6 @@ public static System.Drawing.Bitmap control {
} }
} }
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap control_record {
get {
object obj = ResourceManager.GetObject("control_record", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
public static System.Drawing.Bitmap control_record_yellow {
get {
object obj = ResourceManager.GetObject("control_record_yellow", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary> /// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap. /// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary> /// </summary>
@ -1340,6 +1320,62 @@ public static string FailedToSaveSettings {
} }
} }
/// <summary>
/// Looks up a localized string similar to {0} does not exist.
///
///Would you like to automatically download it?.
/// </summary>
public static string FFmpeg_does_not_exist {
get {
return ResourceManager.GetString("FFmpeg_does_not_exist", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Download of FFmpeg failed..
/// </summary>
public static string FFmpeg_Download_of_FFmpeg_failed {
get {
return ResourceManager.GetString("FFmpeg_Download_of_FFmpeg_failed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FFmpeg error.
/// </summary>
public static string FFmpeg_FFmpeg_error {
get {
return ResourceManager.GetString("FFmpeg_FFmpeg_error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FFmpeg successfully downloaded..
/// </summary>
public static string FFmpeg_FFmpeg_successfully_downloaded {
get {
return ResourceManager.GetString("FFmpeg_FFmpeg_successfully_downloaded", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FFmpeg video and audio source can&apos;t both be &quot;None&quot;..
/// </summary>
public static string FFmpeg_FFmpeg_video_and_audio_source_both_can_t_be__None__ {
get {
return ResourceManager.GetString("FFmpeg_FFmpeg_video_and_audio_source_both_can_t_be__None__", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Missing.
/// </summary>
public static string FFmpeg_Missing {
get {
return ResourceManager.GetString("FFmpeg_Missing", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Use new name: . /// Looks up a localized string similar to Use new name: .
/// </summary> /// </summary>
@ -2309,108 +2345,6 @@ public static string ScreenColorPicker {
} }
} }
/// <summary>
/// Looks up a localized string similar to Are you sure you want to abort this recording?.
/// </summary>
public static string ScreenRecord_ConfirmCancel {
get {
return ResourceManager.GetString("ScreenRecord_ConfirmCancel", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Download of FFmpeg failed..
/// </summary>
public static string ScreenRecordForm_DownloaderForm_InstallRequested_Download_of_FFmpeg_failed_ {
get {
return ResourceManager.GetString("ScreenRecordForm_DownloaderForm_InstallRequested_Download_of_FFmpeg_failed_", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FFmpeg successfully downloaded..
/// </summary>
public static string ScreenRecordForm_DownloaderForm_InstallRequested_FFmpeg_successfully_downloaded_ {
get {
return ResourceManager.GetString("ScreenRecordForm_DownloaderForm_InstallRequested_FFmpeg_successfully_downloaded_", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Click to start recording..
/// </summary>
public static string ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Click to stop recording..
/// </summary>
public static string ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to {0} does not exist.
///
///Would you like to automatically download it?.
/// </summary>
public static string ScreenRecordForm_StartRecording_does_not_exist {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_does_not_exist", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Encoding....
/// </summary>
public static string ScreenRecordForm_StartRecording_Encoding___ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Encoding___", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FFmpeg error.
/// </summary>
public static string ScreenRecordForm_StartRecording_FFmpeg_error {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_FFmpeg_error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FFmpeg video and audio source can&apos;t both be &quot;None&quot;..
/// </summary>
public static string ScreenRecordForm_StartRecording_FFmpeg_video_and_audio_source_both_can_t_be__None__ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_FFmpeg_video_and_audio_source_both_can_t_be__None" +
"__", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Missing.
/// </summary>
public static string ScreenRecordForm_StartRecording_Missing {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Missing", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Waiting....
/// </summary>
public static string ScreenRecordForm_StartRecording_Waiting___ {
get {
return ResourceManager.GetString("ScreenRecordForm_StartRecording_Waiting___", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to Screenshot delay: {0}s. /// Looks up a localized string similar to Screenshot delay: {0}s.
/// </summary> /// </summary>

View file

@ -297,9 +297,6 @@ Would you like to restart ShareX?</value>
<data name="MainForm_UpdateToggleHotkeyButton_Disable_hotkeys" xml:space="preserve"> <data name="MainForm_UpdateToggleHotkeyButton_Disable_hotkeys" xml:space="preserve">
<value>Disable hotkeys</value> <value>Disable hotkeys</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_FFmpeg_video_and_audio_source_both_can_t_be__None__" xml:space="preserve">
<value>FFmpeg video and audio source can't both be "None".</value>
</data>
<data name="QuickTaskMenuEditorForm_Reset_all_quick_tasks_to_defaults_Confirmation" xml:space="preserve"> <data name="QuickTaskMenuEditorForm_Reset_all_quick_tasks_to_defaults_Confirmation" xml:space="preserve">
<value>Reset all quick tasks to defaults?</value> <value>Reset all quick tasks to defaults?</value>
</data> </data>
@ -367,9 +364,6 @@ Press 'No' to cancel the current upload and disable screenshot auto uploading.</
<data name="layer_transparent" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="layer_transparent" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\layer-transparent.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScreenRecordForm_DownloaderForm_InstallRequested_Download_of_FFmpeg_failed_" xml:space="preserve">
<value>Download of FFmpeg failed.</value>
</data>
<data name="QRCodeForm_InputTextToEncode" xml:space="preserve"> <data name="QRCodeForm_InputTextToEncode" xml:space="preserve">
<value>Input text to encode</value> <value>Input text to encode</value>
</data> </data>
@ -444,9 +438,6 @@ Are you sure you want to continue?</value>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_File_uploader___0_" xml:space="preserve"> <data name="TaskSettingsForm_UpdateUploaderMenuNames_File_uploader___0_" xml:space="preserve">
<value>File uploader: {0}</value> <value>File uploader: {0}</value>
</data> </data>
<data name="control_record" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\control-record.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="application_list" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="application_list" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\application-list.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -492,10 +483,6 @@ Are you sure you want to continue?</value>
<data name="application_home" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="application_home" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\application-home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\application-home.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_Encoding___" xml:space="preserve">
<value>Encoding...</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="drive_globe" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="drive_globe" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\drive-globe.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\drive-globe.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -520,9 +507,6 @@ Are you sure you want to continue?</value>
<data name="UploadTask_CreateURLShortenerTask_Shorten_URL___0__" xml:space="preserve"> <data name="UploadTask_CreateURLShortenerTask_Shorten_URL___0__" xml:space="preserve">
<value>Shorten URL ({0})</value> <value>Shorten URL ({0})</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_FFmpeg_error" xml:space="preserve">
<value>FFmpeg error</value>
</data>
<data name="ActionsToolbarEditForm_Separator" xml:space="preserve"> <data name="ActionsToolbarEditForm_Separator" xml:space="preserve">
<value>Separator</value> <value>Separator</value>
</data> </data>
@ -585,19 +569,12 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="IntegrationHelpers_EditWithShareX" xml:space="preserve"> <data name="IntegrationHelpers_EditWithShareX" xml:space="preserve">
<value>Edit with ShareX</value> <value>Edit with ShareX</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_Click_tray_icon_to_start_recording_" xml:space="preserve">
<value>Click to start recording.</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="TaskManager_task_UploadCompleted_Error" xml:space="preserve"> <data name="TaskManager_task_UploadCompleted_Error" xml:space="preserve">
<value>Error</value> <value>Error</value>
</data> </data>
<data name="disk_rename" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="disk_rename" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\disk-rename.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\disk-rename.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="control_record_yellow" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\control-record-yellow.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="image_export" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="image_export" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\image-export.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\image-export.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -610,9 +587,6 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="keyboard__plus" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="keyboard__plus" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\keyboard--plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\keyboard--plus.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScreenRecordForm_DownloaderForm_InstallRequested_FFmpeg_successfully_downloaded_" xml:space="preserve">
<value>FFmpeg successfully downloaded.</value>
</data>
<data name="TaskSettingsForm_UpdateUploaderMenuNames_After_capture___0_" xml:space="preserve"> <data name="TaskSettingsForm_UpdateUploaderMenuNames_After_capture___0_" xml:space="preserve">
<value>After capture: {0}</value> <value>After capture: {0}</value>
</data> </data>
@ -676,9 +650,6 @@ You can later disable it from "After capture tasks" menu.</value>
<data name="QuickTaskMenu_ShowMenu_Continue" xml:space="preserve"> <data name="QuickTaskMenu_ShowMenu_Continue" xml:space="preserve">
<value>Continue</value> <value>Continue</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_Missing" xml:space="preserve">
<value>Missing</value>
</data>
<data name="arrow_270" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="arrow_270" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\arrow-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -795,9 +766,6 @@ Would you like to restart ShareX?</value>
<data name="traffic_cone" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="traffic_cone" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\traffic-cone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\traffic-cone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScreenRecord_ConfirmCancel" xml:space="preserve">
<value>Are you sure you want to abort this recording?</value>
</data>
<data name="MainForm_UpdateWorkflowsMenu_You_can_add_workflows_from_hotkey_settings___" xml:space="preserve"> <data name="MainForm_UpdateWorkflowsMenu_You_can_add_workflows_from_hotkey_settings___" xml:space="preserve">
<value>You can add workflows from hotkey settings...</value> <value>You can add workflows from hotkey settings...</value>
</data> </data>
@ -890,10 +858,6 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="disk" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="disk" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\disk.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\disk.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_Waiting___" xml:space="preserve">
<value>Waiting...</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="uac" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="uac" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\uac.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\uac.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -924,11 +888,6 @@ Please run ShareX as administrator to change personal folder path.</value>
<data name="FailedToSaveSettings" xml:space="preserve"> <data name="FailedToSaveSettings" xml:space="preserve">
<value>Failed to save settings</value> <value>Failed to save settings</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_does_not_exist" xml:space="preserve">
<value>{0} does not exist.
Would you like to automatically download it?</value>
</data>
<data name="Twitter-32x32" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Twitter-32x32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Twitter-32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Twitter-32x32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -1039,10 +998,6 @@ Middle click to close</value>
<data name="drive_upload" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="drive_upload" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\drive-upload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\drive-upload.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="ScreenRecordForm_StartRecording_Click_tray_icon_to_stop_recording_" xml:space="preserve">
<value>Click to stop recording.</value>
<comment>Text must be equal to or lower than 54 characters because of tray icon text length limit.</comment>
</data>
<data name="cross" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="cross" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\cross.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\cross.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
@ -1101,4 +1056,24 @@ Middle click to close</value>
<data name="Twitter-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms"> <data name="Twitter-16x16" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\Twitter-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value> <value>..\Resources\Twitter-16x16.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data> </data>
<data name="FFmpeg_does_not_exist" xml:space="preserve">
<value>{0} does not exist.
Would you like to automatically download it?</value>
</data>
<data name="FFmpeg_Download_of_FFmpeg_failed" xml:space="preserve">
<value>Download of FFmpeg failed.</value>
</data>
<data name="FFmpeg_FFmpeg_error" xml:space="preserve">
<value>FFmpeg error</value>
</data>
<data name="FFmpeg_FFmpeg_successfully_downloaded" xml:space="preserve">
<value>FFmpeg successfully downloaded.</value>
</data>
<data name="FFmpeg_FFmpeg_video_and_audio_source_both_can_t_be__None__" xml:space="preserve">
<value>FFmpeg video and audio source can't both be "None".</value>
</data>
<data name="FFmpeg_Missing" xml:space="preserve">
<value>Missing</value>
</data>
</root> </root>

View file

@ -105,8 +105,8 @@ private static void StartRecording(ScreenRecordOutput outputType, TaskSettings t
if (!taskSettings.CaptureSettings.FFmpegOptions.IsSourceSelected) if (!taskSettings.CaptureSettings.FFmpegOptions.IsSourceSelected)
{ {
MessageBox.Show(Resources.ScreenRecordForm_StartRecording_FFmpeg_video_and_audio_source_both_can_t_be__None__, MessageBox.Show(Resources.FFmpeg_FFmpeg_video_and_audio_source_both_can_t_be__None__,
"ShareX - " + Resources.ScreenRecordForm_StartRecording_FFmpeg_error, MessageBoxButtons.OK, MessageBoxIcon.Warning); "ShareX - " + Resources.FFmpeg_FFmpeg_error, MessageBoxButtons.OK, MessageBoxIcon.Warning);
return; return;
} }
@ -164,7 +164,13 @@ private static void StartRecording(ScreenRecordOutput outputType, TaskSettings t
float duration = taskSettings.CaptureSettings.ScreenRecordFixedDuration ? taskSettings.CaptureSettings.ScreenRecordDuration : 0; float duration = taskSettings.CaptureSettings.ScreenRecordFixedDuration ? taskSettings.CaptureSettings.ScreenRecordDuration : 0;
recordForm = new ScreenRecordForm(captureRectangle, taskSettings, startMethod == ScreenRecordStartMethod.Region, duration); recordForm = new ScreenRecordForm(captureRectangle)
{
ActivateWindow = startMethod == ScreenRecordStartMethod.Region,
Duration = duration,
AskConfirmationOnAbort = taskSettings.CaptureSettings.ScreenRecordAskConfirmationOnAbort
};
recordForm.StopRequested += StopRecording; recordForm.StopRequested += StopRecording;
recordForm.Show(); recordForm.Show();

View file

@ -296,12 +296,6 @@
<Compile Include="QuickTaskMenu.cs" /> <Compile Include="QuickTaskMenu.cs" />
<Compile Include="RecentTask.cs" /> <Compile Include="RecentTask.cs" />
<Compile Include="ScreenRecordManager.cs" /> <Compile Include="ScreenRecordManager.cs" />
<Compile Include="Forms\ScreenRecordForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms\ScreenRecordForm.Designer.cs">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</Compile>
<Compile Include="Forms\ApplicationSettingsForm.cs"> <Compile Include="Forms\ApplicationSettingsForm.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -1427,78 +1421,18 @@
<EmbeddedResource Include="Forms\QuickTaskMenuEditorForm.zh-TW.resx"> <EmbeddedResource Include="Forms\QuickTaskMenuEditorForm.zh-TW.resx">
<DependentUpon>QuickTaskMenuEditorForm.cs</DependentUpon> <DependentUpon>QuickTaskMenuEditorForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.de.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.es-MX.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.es.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.fa-IR.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.fr.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.hu.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.id-ID.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.it-IT.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.ja-JP.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.ko-KR.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.nl-NL.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.pt-BR.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.pt-PT.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ApplicationSettingsForm.resx"> <EmbeddedResource Include="Forms\ApplicationSettingsForm.resx">
<DependentUpon>ApplicationSettingsForm.cs</DependentUpon> <DependentUpon>ApplicationSettingsForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\MainForm.resx"> <EmbeddedResource Include="Forms\MainForm.resx">
<DependentUpon>MainForm.cs</DependentUpon> <DependentUpon>MainForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.ru.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.tr.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.uk.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.vi-VN.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.zh-CN.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\FirstTimeConfigForm.resx"> <EmbeddedResource Include="Forms\FirstTimeConfigForm.resx">
<DependentUpon>FirstTimeConfigForm.cs</DependentUpon> <DependentUpon>FirstTimeConfigForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\ActionsToolbarEditForm.resx"> <EmbeddedResource Include="Forms\ActionsToolbarEditForm.resx">
<DependentUpon>ActionsToolbarEditForm.cs</DependentUpon> <DependentUpon>ActionsToolbarEditForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="Forms\ScreenRecordForm.zh-TW.resx">
<DependentUpon>ScreenRecordForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\TaskSettingsForm.de.resx"> <EmbeddedResource Include="Forms\TaskSettingsForm.de.resx">
<DependentUpon>TaskSettingsForm.cs</DependentUpon> <DependentUpon>TaskSettingsForm.cs</DependentUpon>
<SubType>Designer</SubType> <SubType>Designer</SubType>
@ -1765,7 +1699,6 @@
<None Include="Resources\monitor.png" /> <None Include="Resources\monitor.png" />
<None Include="Resources\application-blue.png" /> <None Include="Resources\application-blue.png" />
<None Include="Resources\layer.png" /> <None Include="Resources\layer.png" />
<None Include="Resources\control-record.png" />
<None Include="Resources\checkbox_uncheck.png" /> <None Include="Resources\checkbox_uncheck.png" />
<None Include="Resources\checkbox_check.png" /> <None Include="Resources\checkbox_check.png" />
<None Include="Resources\network-ip.png" /> <None Include="Resources\network-ip.png" />
@ -1863,7 +1796,6 @@
<None Include="ShareX_Icon.ico" /> <None Include="ShareX_Icon.ico" />
<None Include="Resources\globe--pencil.png" /> <None Include="Resources\globe--pencil.png" />
<None Include="Resources\camcorder--pencil.png" /> <None Include="Resources\camcorder--pencil.png" />
<None Include="Resources\control-record-yellow.png" />
<None Include="Resources\application-monitor.png" /> <None Include="Resources\application-monitor.png" />
<None Include="Resources\pencil.png" /> <None Include="Resources\pencil.png" />
<None Include="Resources\folder-tree.png" /> <None Include="Resources\folder-tree.png" />

View file

@ -651,40 +651,6 @@ private static void AddExternalProgramFromRegistry(TaskSettings taskSettings, st
} }
} }
public static Icon GetProgressIcon(int percentage)
{
return GetProgressIcon(percentage, Color.FromArgb(16, 116, 193));
}
public static Icon GetProgressIcon(int percentage, Color color)
{
percentage = percentage.Clamp(0, 99);
Size size = SystemInformation.SmallIconSize;
using (Bitmap bmp = new Bitmap(size.Width, size.Height))
using (Graphics g = Graphics.FromImage(bmp))
{
int y = (int)(size.Height * (percentage / 100f));
if (y > 0)
{
using (Brush brush = new SolidBrush(color))
{
g.FillRectangle(brush, 0, size.Height - 1 - y, size.Width, y);
}
}
using (Font font = new Font("Arial", 10))
using (StringFormat sf = new StringFormat { Alignment = StringAlignment.Center, LineAlignment = StringAlignment.Center })
{
g.DrawString(percentage.ToString(), font, Brushes.Black, size.Width / 2f, size.Height / 2f, sf);
g.DrawString(percentage.ToString(), font, Brushes.White, size.Width / 2f, (size.Height / 2f) - 1, sf);
}
return Icon.FromHandle(bmp.GetHicon());
}
}
public static string HandleExistsFile(string folder, string filename, TaskSettings taskSettings) public static string HandleExistsFile(string folder, string filename, TaskSettings taskSettings)
{ {
string filepath = Path.Combine(folder, filename); string filepath = Path.Combine(folder, filename);
@ -1375,8 +1341,8 @@ public static bool CheckFFmpeg(TaskSettings taskSettings)
if (!File.Exists(ffmpegPath)) if (!File.Exists(ffmpegPath))
{ {
if (MessageBox.Show(string.Format(Resources.ScreenRecordForm_StartRecording_does_not_exist, ffmpegPath), if (MessageBox.Show(string.Format(Resources.FFmpeg_does_not_exist, ffmpegPath),
"ShareX - " + Resources.ScreenRecordForm_StartRecording_Missing + " ffmpeg.exe", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes) "ShareX - " + Resources.FFmpeg_Missing + " ffmpeg.exe", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
{ {
DialogResult downloadDialogResult = FFmpegGitHubDownloader.DownloadFFmpeg(false, DownloaderForm_InstallRequested); DialogResult downloadDialogResult = FFmpegGitHubDownloader.DownloadFFmpeg(false, DownloaderForm_InstallRequested);
@ -1410,11 +1376,11 @@ private static void DownloaderForm_InstallRequested(string filePath)
if (result) if (result)
{ {
MessageBox.Show(Resources.ScreenRecordForm_DownloaderForm_InstallRequested_FFmpeg_successfully_downloaded_, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information); MessageBox.Show(Resources.FFmpeg_FFmpeg_successfully_downloaded, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Information);
} }
else else
{ {
MessageBox.Show(Resources.ScreenRecordForm_DownloaderForm_InstallRequested_Download_of_FFmpeg_failed_, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Error); MessageBox.Show(Resources.FFmpeg_Download_of_FFmpeg_failed, "ShareX", MessageBoxButtons.OK, MessageBoxIcon.Error);
} }
} }

View file

@ -483,7 +483,7 @@ public static void UpdateTrayIcon(int progress = -1)
{ {
try try
{ {
icon = TaskHelpers.GetProgressIcon(progress); icon = Helpers.GetProgressIcon(progress);
} }
catch (Exception e) catch (Exception e)
{ {