fixed #3736: Remade NewsListControl to avoid layout related issues

This commit is contained in:
Jaex 2018-11-15 15:18:24 +03:00
parent e312a82cc5
commit 5e4b03e850
7 changed files with 667 additions and 443 deletions

View file

@ -626,5 +626,11 @@ public static Task ContinueInCurrentContext(this Task task, Action action)
TaskScheduler scheduler = TaskScheduler.FromCurrentSynchronizationContext();
return task.ContinueWith(t => action(), scheduler);
}
public static void DoubleBuffered(this DataGridView dgv, bool value)
{
PropertyInfo pi = dgv.GetType().GetProperty("DoubleBuffered", BindingFlags.Instance | BindingFlags.NonPublic);
pi.SetValue(dgv, value, null);
}
}
}

View file

@ -28,39 +28,94 @@ protected override void Dispose(bool disposing)
/// </summary>
private void InitializeComponent()
{
this.tlpMain = new System.Windows.Forms.TableLayoutPanel();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
this.dgvNews = new System.Windows.Forms.DataGridView();
this.chIsUnread = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.chDateTime = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.chText = new System.Windows.Forms.DataGridViewTextBoxColumn();
((System.ComponentModel.ISupportInitialize)(this.dgvNews)).BeginInit();
this.SuspendLayout();
//
// tlpMain
// dgvNews
//
this.tlpMain.AutoScroll = true;
this.tlpMain.BackColor = System.Drawing.SystemColors.Window;
this.tlpMain.ColumnCount = 2;
this.tlpMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle());
this.tlpMain.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tlpMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.tlpMain.Location = new System.Drawing.Point(0, 0);
this.tlpMain.Margin = new System.Windows.Forms.Padding(0);
this.tlpMain.Name = "tlpMain";
this.tlpMain.RowCount = 1;
this.tlpMain.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tlpMain.Size = new System.Drawing.Size(502, 502);
this.tlpMain.TabIndex = 0;
this.dgvNews.AllowUserToAddRows = false;
this.dgvNews.AllowUserToDeleteRows = false;
this.dgvNews.AllowUserToResizeColumns = false;
this.dgvNews.AllowUserToResizeRows = false;
this.dgvNews.AutoSizeRowsMode = System.Windows.Forms.DataGridViewAutoSizeRowsMode.AllCells;
this.dgvNews.BackgroundColor = System.Drawing.SystemColors.Window;
this.dgvNews.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.dgvNews.CellBorderStyle = System.Windows.Forms.DataGridViewCellBorderStyle.SingleHorizontal;
this.dgvNews.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvNews.ColumnHeadersVisible = false;
this.dgvNews.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.chIsUnread,
this.chDateTime,
this.chText});
dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle9.Font = new System.Drawing.Font("Arial", 11.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle9.Padding = new System.Windows.Forms.Padding(5);
dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Window;
dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.ControlText;
dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
this.dgvNews.DefaultCellStyle = dataGridViewCellStyle9;
this.dgvNews.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvNews.Location = new System.Drawing.Point(0, 0);
this.dgvNews.Name = "dgvNews";
this.dgvNews.RowHeadersVisible = false;
this.dgvNews.Size = new System.Drawing.Size(399, 363);
this.dgvNews.TabIndex = 0;
this.dgvNews.CellMouseClick += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgvNews_CellMouseClick);
this.dgvNews.CellMouseEnter += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvNews_CellMouseEnter);
this.dgvNews.CellMouseLeave += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgvNews_CellMouseLeave);
//
// chIsUnread
//
this.chIsUnread.HeaderText = "IsUnread";
this.chIsUnread.Name = "chIsUnread";
this.chIsUnread.ReadOnly = true;
this.chIsUnread.Width = 5;
//
// chDateTime
//
dataGridViewCellStyle7.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
this.chDateTime.DefaultCellStyle = dataGridViewCellStyle7;
this.chDateTime.HeaderText = "DateTime";
this.chDateTime.Name = "chDateTime";
this.chDateTime.ReadOnly = true;
//
// chText
//
this.chText.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
dataGridViewCellStyle8.Padding = new System.Windows.Forms.Padding(5);
dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.chText.DefaultCellStyle = dataGridViewCellStyle8;
this.chText.HeaderText = "Text";
this.chText.Name = "chText";
this.chText.ReadOnly = true;
//
// NewsListControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.tlpMain);
this.Margin = new System.Windows.Forms.Padding(0);
this.BackColor = System.Drawing.SystemColors.Window;
this.Controls.Add(this.dgvNews);
this.Name = "NewsListControl";
this.Size = new System.Drawing.Size(502, 502);
this.Size = new System.Drawing.Size(399, 363);
((System.ComponentModel.ISupportInitialize)(this.dgvNews)).EndInit();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.TableLayoutPanel tlpMain;
private System.Windows.Forms.DataGridView dgvNews;
private System.Windows.Forms.DataGridViewTextBoxColumn chIsUnread;
private System.Windows.Forms.DataGridViewTextBoxColumn chDateTime;
private System.Windows.Forms.DataGridViewTextBoxColumn chText;
}
}

View file

@ -34,24 +34,17 @@ namespace ShareX
{
public partial class NewsListControl : UserControl
{
public NewsManager NewsManager { get; private set; }
public event EventHandler NewsLoaded;
private ToolTip tooltip;
public NewsManager NewsManager { get; private set; }
public NewsListControl()
{
InitializeComponent();
tooltip = new ToolTip()
{
AutoPopDelay = 10000,
InitialDelay = 500
};
tlpMain.CellPaint += TlpMain_CellPaint;
tlpMain.Layout += TlpMain_Layout;
dgvNews.AlternatingRowsDefaultCellStyle.BackColor = dgvNews.AlternatingRowsDefaultCellStyle.SelectionBackColor =
ColorHelpers.DarkerColor(SystemColors.Window, 0.02f);
dgvNews.GridColor = ProfessionalColors.SeparatorDark;
dgvNews.DoubleBuffered(true);
}
public void Start()
@ -66,7 +59,7 @@ public void Start()
{
if (NewsManager != null && NewsManager.NewsItems != null)
{
tlpMain.SuspendLayout();
SuspendLayout();
foreach (NewsItem item in NewsManager.NewsItems)
{
@ -76,7 +69,9 @@ public void Start()
}
}
tlpMain.ResumeLayout();
UpdateUnreadStatus();
ResumeLayout();
OnNewsLoaded();
}
@ -104,67 +99,17 @@ public void MarkRead()
NewsManager.UpdateUnread();
}
}
}
private async void TlpMain_Layout(object sender, LayoutEventArgs e)
{
await Task.Delay(1);
if (tlpMain.HorizontalScroll.Visible)
{
tlpMain.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0);
}
else
{
tlpMain.Padding = new Padding(0);
}
}
private void TlpMain_CellPaint(object sender, TableLayoutCellPaintEventArgs e)
{
Color color;
if (e.Row.IsEvenNumber())
{
color = SystemColors.Window;
}
else
{
color = ColorHelpers.DarkerColor(SystemColors.Window, 0.02f);
}
using (Brush brush = new SolidBrush(color))
{
e.Graphics.FillRectangle(brush, e.CellBounds);
}
if (NewsManager != null && NewsManager.NewsItems != null && NewsManager.NewsItems.IsValidIndex(e.Row) && NewsManager.NewsItems[e.Row].IsUnread && e.Column == 0)
{
e.Graphics.FillRectangle(Brushes.LimeGreen, new Rectangle(e.CellBounds.X, e.CellBounds.Y, 5, e.CellBounds.Height));
}
using (Pen pen = new Pen(ProfessionalColors.SeparatorDark))
{
e.Graphics.DrawLine(pen, new Point(e.CellBounds.X, e.CellBounds.Bottom - 1), new Point(e.CellBounds.Right - 1, e.CellBounds.Bottom - 1));
}
UpdateUnreadStatus();
}
public void AddNewsItem(NewsItem item)
{
RowStyle style = new RowStyle(SizeType.AutoSize);
tlpMain.RowStyles.Add(style);
int index = tlpMain.RowCount++ - 1;
int index = dgvNews.Rows.Add();
DataGridViewRow row = dgvNews.Rows[index];
row.Tag = item;
Label lblDateTime = new Label()
{
Anchor = AnchorStyles.Left | AnchorStyles.Right,
AutoSize = true,
BackColor = Color.Transparent,
Font = new Font("Arial", 10),
Margin = new Padding(0),
Padding = new Padding(10, 8, 5, 8),
Text = item.DateTime.ToShortDateString()
};
row.Cells[1].Value = item.DateTime.ToShortDateString();
string dateTimeTooltip;
double days = (DateTime.Now - item.DateTime).TotalDays;
@ -182,37 +127,78 @@ public void AddNewsItem(NewsItem item)
dateTimeTooltip = (int)days + " days ago.";
}
tooltip.SetToolTip(lblDateTime, dateTimeTooltip);
row.Cells[1].ToolTipText = dateTimeTooltip;
tlpMain.Controls.Add(lblDateTime, 0, index);
Label lblText = new Label()
{
Anchor = AnchorStyles.Left | AnchorStyles.Right,
AutoSize = true,
BackColor = Color.Transparent,
Font = new Font("Arial", 10),
Margin = new Padding(0),
Padding = new Padding(5, 8, 5, 8),
Text = item.Text
};
row.Cells[2].Value = item.Text;
if (URLHelpers.IsValidURL(item.URL))
{
tooltip.SetToolTip(lblText, item.URL);
lblText.Cursor = Cursors.Hand;
lblText.MouseEnter += (sender, e) => lblText.ForeColor = SystemColors.HotTrack;
lblText.MouseLeave += (sender, e) => lblText.ForeColor = SystemColors.ControlText;
lblText.MouseClick += (sender, e) =>
{
if (e.Button == MouseButtons.Left)
{
URLHelpers.OpenURL(item.URL);
}
};
row.Cells[2].ToolTipText = item.URL;
}
}
tlpMain.Controls.Add(lblText, 1, index);
private void UpdateUnreadStatus()
{
foreach (DataGridViewRow row in dgvNews.Rows)
{
NewsItem newsItem = row.Tag as NewsItem;
if (newsItem != null && newsItem.IsUnread)
{
row.Cells[0].Style.BackColor = row.Cells[0].Style.SelectionBackColor = Color.LimeGreen;
}
else
{
row.Cells[0].Style.ApplyStyle(dgvNews.AlternatingRowsDefaultCellStyle);
}
}
}
private void dgvNews_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
DataGridViewRow row = dgvNews.Rows[e.RowIndex];
NewsItem newsItem = row.Tag as NewsItem;
if (newsItem != null && !string.IsNullOrEmpty(newsItem.URL))
{
dgvNews.Cursor = Cursors.Hand;
row.Cells[e.ColumnIndex].Style.ForeColor = row.Cells[e.ColumnIndex].Style.SelectionForeColor = SystemColors.HotTrack;
}
}
else
{
dgvNews.Cursor = Cursors.Default;
}
}
private void dgvNews_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex == 2)
{
DataGridViewRow row = dgvNews.Rows[e.RowIndex];
NewsItem newsItem = row.Tag as NewsItem;
if (newsItem != null && !string.IsNullOrEmpty(newsItem.URL))
{
row.Cells[e.ColumnIndex].Style.ForeColor = row.Cells[e.ColumnIndex].Style.SelectionForeColor = SystemColors.ControlText;
}
}
else
{
dgvNews.Cursor = Cursors.Default;
}
}
private void dgvNews_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Left && e.ColumnIndex == 2)
{
DataGridViewRow row = dgvNews.Rows[e.RowIndex];
NewsItem newsItem = row.Tag as NewsItem;
if (newsItem != null && URLHelpers.IsValidURL(newsItem.URL))
{
URLHelpers.OpenURL(newsItem.URL);
}
}
}
}
}

View file

@ -0,0 +1,129 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<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=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="chIsUnread.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="chDateTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="chText.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

View file

@ -258,11 +258,11 @@ private void InitializeComponent()
this.ttMain = new System.Windows.Forms.ToolTip(this.components);
this.pbDiscordOpen = new System.Windows.Forms.PictureBox();
this.pbDiscordHide = new System.Windows.Forms.PictureBox();
this.ucNews = new ShareX.NewsListControl();
this.pNews = new System.Windows.Forms.Panel();
this.btnCloseNews = new System.Windows.Forms.Button();
this.flpCommunity = new System.Windows.Forms.FlowLayoutPanel();
this.flpDiscord = new System.Windows.Forms.FlowLayoutPanel();
this.ucNews = new ShareX.NewsListControl();
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
this.scMain.Panel1.SuspendLayout();
this.scMain.Panel2.SuspendLayout();
@ -2039,11 +2039,6 @@ private void InitializeComponent()
this.ttMain.SetToolTip(this.pbDiscordHide, resources.GetString("pbDiscordHide.ToolTip"));
this.pbDiscordHide.Click += new System.EventHandler(this.pbDiscordHide_Click);
//
// ucNews
//
resources.ApplyResources(this.ucNews, "ucNews");
this.ucNews.Name = "ucNews";
//
// pNews
//
this.pNews.Controls.Add(this.btnCloseNews);
@ -2073,6 +2068,11 @@ private void InitializeComponent()
this.flpDiscord.Controls.Add(this.pbDiscordHide);
this.flpDiscord.Name = "flpDiscord";
//
// ucNews
//
resources.ApplyResources(this.ucNews, "ucNews");
this.ucNews.Name = "ucNews";
//
// MainForm
//
this.AllowDrop = true;
@ -2327,7 +2327,6 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem tsmiOpenActionsToolbar;
private System.Windows.Forms.ToolStripMenuItem tsmiDeleteSelectedItem;
private System.Windows.Forms.ToolStripMenuItem tsmiSearchImage;
private NewsListControl ucNews;
private System.Windows.Forms.Panel pNews;
private System.Windows.Forms.Button btnCloseNews;
private System.Windows.Forms.ToolStripMenuItem tsmiImageThumbnailer;
@ -2353,5 +2352,6 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem tsmiShowCursor;
private System.Windows.Forms.ToolStripSeparator tssTrayCapture1;
private System.Windows.Forms.ToolStripMenuItem tsmiTrayShowCursor;
private NewsListControl ucNews;
}
}

View file

@ -159,6 +159,102 @@
<data name="&gt;&gt;lblMainFormTip.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="lvUploads.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="lvUploads.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="lvUploads.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 429</value>
</data>
<data name="lvUploads.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;lvUploads.Name" xml:space="preserve">
<value>lvUploads</value>
</data>
<data name="&gt;&gt;lvUploads.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lvUploads.Parent" xml:space="preserve">
<value>scMain.Panel1</value>
</data>
<data name="&gt;&gt;lvUploads.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;scMain.Panel1.Name" xml:space="preserve">
<value>scMain.Panel1</value>
</data>
<data name="&gt;&gt;scMain.Panel1.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;scMain.Panel1.Parent" xml:space="preserve">
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Panel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pbPreview.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="pbPreview.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pbPreview.Size" type="System.Drawing.Size, System.Drawing">
<value>333, 429</value>
</data>
<data name="pbPreview.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pbPreview.Name" xml:space="preserve">
<value>pbPreview</value>
</data>
<data name="&gt;&gt;pbPreview.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;pbPreview.Parent" xml:space="preserve">
<value>scMain.Panel2</value>
</data>
<data name="&gt;&gt;pbPreview.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;scMain.Panel2.Name" xml:space="preserve">
<value>scMain.Panel2</value>
</data>
<data name="&gt;&gt;scMain.Panel2.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;scMain.Panel2.Parent" xml:space="preserve">
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Panel2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="scMain.Size" type="System.Drawing.Size, System.Drawing">
<value>674, 429</value>
</data>
<data name="scMain.SplitterDistance" type="System.Int32, mscorlib">
<value>335</value>
</data>
<data name="scMain.SplitterWidth" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="scMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;scMain.Name" xml:space="preserve">
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;scMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;scMain.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="chFilename.Text" xml:space="preserve">
<value>Filename</value>
</data>
@ -198,126 +294,9 @@
<data name="chURL.Width" type="System.Int32, mscorlib">
<value>145</value>
</data>
<data name="lvUploads.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="lvUploads.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="lvUploads.Size" type="System.Drawing.Size, System.Drawing">
<value>335, 429</value>
</data>
<data name="lvUploads.TabIndex" type="System.Int32, mscorlib">
<value>2</value>
</data>
<data name="&gt;&gt;lvUploads.Name" xml:space="preserve">
<value>lvUploads</value>
</data>
<data name="&gt;&gt;lvUploads.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;lvUploads.Parent" xml:space="preserve">
<value>scMain.Panel1</value>
</data>
<data name="&gt;&gt;lvUploads.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="&gt;&gt;scMain.Panel1.Name" xml:space="preserve">
<value>scMain.Panel1</value>
</data>
<data name="&gt;&gt;scMain.Panel1.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;scMain.Panel1.Parent" xml:space="preserve">
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Panel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pbPreview.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="pbPreview.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pbPreview.Size" type="System.Drawing.Size, System.Drawing">
<value>333, 429</value>
</data>
<data name="pbPreview.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;pbPreview.Name" xml:space="preserve">
<value>pbPreview</value>
</data>
<data name="&gt;&gt;pbPreview.Type" xml:space="preserve">
<value>ShareX.HelpersLib.MyPictureBox, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;pbPreview.Parent" xml:space="preserve">
<value>scMain.Panel2</value>
</data>
<data name="&gt;&gt;pbPreview.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="&gt;&gt;scMain.Panel2.Name" xml:space="preserve">
<value>scMain.Panel2</value>
</data>
<data name="&gt;&gt;scMain.Panel2.Type" xml:space="preserve">
<value>System.Windows.Forms.SplitterPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;scMain.Panel2.Parent" xml:space="preserve">
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Panel2.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="scMain.Size" type="System.Drawing.Size, System.Drawing">
<value>674, 429</value>
</data>
<data name="scMain.SplitterDistance" type="System.Int32, mscorlib">
<value>335</value>
</data>
<data name="scMain.SplitterWidth" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="scMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;scMain.Name" xml:space="preserve">
<value>scMain</value>
</data>
<data name="&gt;&gt;scMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.SplitContainerCustomSplitter, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;scMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;scMain.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="flpPatreon.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="pbPatreonOpen.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pbPatreonOpen.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="pbPatreonOpen.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 45</value>
</data>
<data name="pbPatreonOpen.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pbPatreonOpen.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<metadata name="ttMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>567, 17</value>
</metadata>
<data name="pbPatreonOpen.ToolTip" xml:space="preserve">
<value>Open ShareX Patreon campaign web page</value>
</data>
<data name="&gt;&gt;pbPatreonOpen.Name" xml:space="preserve">
<value>pbPatreonOpen</value>
</data>
@ -330,24 +309,6 @@
<data name="&gt;&gt;pbPatreonOpen.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pbPatreonHide.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 0</value>
</data>
<data name="pbPatreonHide.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="pbPatreonHide.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 45</value>
</data>
<data name="pbPatreonHide.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pbPatreonHide.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="pbPatreonHide.ToolTip" xml:space="preserve">
<value>Hide Patreon button permanently</value>
</data>
<data name="&gt;&gt;pbPatreonHide.Name" xml:space="preserve">
<value>pbPatreonHide</value>
</data>
@ -387,6 +348,75 @@
<data name="&gt;&gt;flpPatreon.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="ttMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>567, 17</value>
</metadata>
<data name="pbPatreonOpen.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pbPatreonOpen.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="pbPatreonOpen.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="pbPatreonOpen.Size" type="System.Drawing.Size, System.Drawing">
<value>168, 45</value>
</data>
<data name="pbPatreonOpen.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pbPatreonOpen.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="pbPatreonOpen.ToolTip" xml:space="preserve">
<value>Open ShareX Patreon campaign web page</value>
</data>
<data name="&gt;&gt;pbPatreonOpen.Name" xml:space="preserve">
<value>pbPatreonOpen</value>
</data>
<data name="&gt;&gt;pbPatreonOpen.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pbPatreonOpen.Parent" xml:space="preserve">
<value>flpPatreon</value>
</data>
<data name="&gt;&gt;pbPatreonOpen.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="pbPatreonHide.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="pbPatreonHide.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 0</value>
</data>
<data name="pbPatreonHide.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="pbPatreonHide.Size" type="System.Drawing.Size, System.Drawing">
<value>47, 45</value>
</data>
<data name="pbPatreonHide.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="pbPatreonHide.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="pbPatreonHide.ToolTip" xml:space="preserve">
<value>Hide Patreon button permanently</value>
</data>
<data name="&gt;&gt;pbPatreonHide.Name" xml:space="preserve">
<value>pbPatreonHide</value>
</data>
<data name="&gt;&gt;pbPatreonHide.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;pbPatreonHide.Parent" xml:space="preserve">
<value>flpPatreon</value>
</data>
<data name="&gt;&gt;pbPatreonHide.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
@ -396,6 +426,42 @@
<data name="tsMain.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Left</value>
</data>
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tsMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 6, 6, 6</value>
</data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 429</value>
</data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;tsMain.Name" xml:space="preserve">
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.ToolStripBorderRight, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tsMain.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="tsddbCapture.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbCapture.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbCapture.Text" xml:space="preserve">
<value>Capture</value>
</data>
<data name="tsmiFullscreen.Size" type="System.Drawing.Size, System.Drawing">
<value>191, 22</value>
</data>
@ -483,17 +549,17 @@
<data name="tsmiShowCursor.Text" xml:space="preserve">
<value>Show cursor</value>
</data>
<data name="tsddbCapture.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<data name="tsddbUpload.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbCapture.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<data name="tsddbUpload.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbCapture.Size" type="System.Drawing.Size, System.Drawing">
<data name="tsddbUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbCapture.Text" xml:space="preserve">
<value>Capture</value>
<data name="tsddbUpload.Text" xml:space="preserve">
<value>Upload</value>
</data>
<data name="tsmiUploadFile.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
@ -537,18 +603,6 @@
<data name="tsmiShortenURL.Text" xml:space="preserve">
<value>Shorten URL...</value>
</data>
<data name="tsddbUpload.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbUpload.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbUpload.Text" xml:space="preserve">
<value>Upload</value>
</data>
<data name="tsddbWorkflows.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>BottomLeft</value>
</data>
@ -561,6 +615,18 @@
<data name="tsddbWorkflows.Text" xml:space="preserve">
<value>Workflows</value>
</data>
<data name="tsddbTools.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbTools.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbTools.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbTools.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="tsmiColorPicker.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 22</value>
</data>
@ -651,18 +717,6 @@
<data name="tsmiMonitorTest.Text" xml:space="preserve">
<value>Monitor test...</value>
</data>
<data name="tsddbTools.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbTools.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbTools.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbTools.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="tssMain1.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 6</value>
</data>
@ -690,6 +744,18 @@
<data name="tsddbAfterUploadTasks.Text" xml:space="preserve">
<value>After upload tasks</value>
</data>
<data name="tsddbDestinations.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDestinations.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDestinations.Text" xml:space="preserve">
<value>Destinations</value>
</data>
<data name="tsmiImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
@ -729,18 +795,6 @@
<data name="tsmiDestinationSettings.Text" xml:space="preserve">
<value>Destination settings...</value>
</data>
<data name="tsddbDestinations.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDestinations.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDestinations.Text" xml:space="preserve">
<value>Destinations</value>
</data>
<data name="tsbTaskSettings.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
@ -828,6 +882,18 @@
<data name="tsbNews.Text" xml:space="preserve">
<value>News</value>
</data>
<data name="tsddbDebug.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDebug.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDebug.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDebug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="tsmiShowDebugLog.Size" type="System.Drawing.Size, System.Drawing">
<value>172, 22</value>
</data>
@ -864,18 +930,6 @@
<data name="tsmiTestURLSharing.Text" xml:space="preserve">
<value>Test URL sharing</value>
</data>
<data name="tsddbDebug.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
<data name="tsddbDebug.ImageTransparentColor" type="System.Drawing.Color, System.Drawing">
<value>Magenta</value>
</data>
<data name="tsddbDebug.Size" type="System.Drawing.Size, System.Drawing">
<value>147, 20</value>
</data>
<data name="tsddbDebug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="tsbDonate.ImageAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleLeft</value>
</data>
@ -900,33 +954,18 @@
<data name="tsbAbout.Text" xml:space="preserve">
<value>About...</value>
</data>
<data name="tsMain.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="tsMain.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>6, 6, 6, 6</value>
</data>
<data name="tsMain.Size" type="System.Drawing.Size, System.Drawing">
<value>160, 429</value>
</data>
<data name="tsMain.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="&gt;&gt;tsMain.Name" xml:space="preserve">
<value>tsMain</value>
</data>
<data name="&gt;&gt;tsMain.Type" xml:space="preserve">
<value>ShareX.HelpersLib.ToolStripBorderRight, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tsMain.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;tsMain.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<metadata name="cmsTaskInfo.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>286, 17</value>
</metadata>
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>229, 450</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Name" xml:space="preserve">
<value>cmsTaskInfo</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="tsmiShowErrors.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
@ -939,6 +978,12 @@
<data name="tsmiStopUpload.Text" xml:space="preserve">
<value>Stop upload</value>
</data>
<data name="tsmiOpen.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
<data name="tsmiOpen.Text" xml:space="preserve">
<value>Open</value>
</data>
<data name="tsmiOpenURL.ShortcutKeyDisplayString" xml:space="preserve">
<value>Enter</value>
</data>
@ -993,11 +1038,11 @@
<data name="tsmiOpenThumbnailFile.Text" xml:space="preserve">
<value>Thumbnail file</value>
</data>
<data name="tsmiOpen.Size" type="System.Drawing.Size, System.Drawing">
<data name="tsmiCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
<data name="tsmiOpen.Text" xml:space="preserve">
<value>Open</value>
<data name="tsmiCopy.Text" xml:space="preserve">
<value>Copy</value>
</data>
<data name="tsmiCopyURL.ShortcutKeyDisplayString" xml:space="preserve">
<value>Ctrl+C</value>
@ -1164,12 +1209,6 @@
<data name="tssCopy6.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="tsmiCopy.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
<data name="tsmiCopy.Text" xml:space="preserve">
<value>Copy</value>
</data>
<data name="tsmiUploadSelectedFile.ShortcutKeyDisplayString" xml:space="preserve">
<value>Ctrl+U</value>
</data>
@ -1278,6 +1317,12 @@
<data name="tsmiHideColumns.Text" xml:space="preserve">
<value>Hide columns</value>
</data>
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
<data name="tsmiImagePreview.Text" xml:space="preserve">
<value>Image preview</value>
</data>
<data name="tsmiImagePreviewShow.Size" type="System.Drawing.Size, System.Drawing">
<value>130, 22</value>
</data>
@ -1311,27 +1356,30 @@
<data name="tsmiImagePreviewBottom.Text" xml:space="preserve">
<value>Bottom</value>
</data>
<data name="tsmiImagePreview.Size" type="System.Drawing.Size, System.Drawing">
<value>228, 22</value>
</data>
<data name="tsmiImagePreview.Text" xml:space="preserve">
<value>Image preview</value>
</data>
<data name="cmsTaskInfo.Size" type="System.Drawing.Size, System.Drawing">
<value>229, 450</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Name" xml:space="preserve">
<value>cmsTaskInfo</value>
</data>
<data name="&gt;&gt;cmsTaskInfo.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<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=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>190, 17</value>
</metadata>
<data name="cmsTray.Size" type="System.Drawing.Size, System.Drawing">
<value>193, 484</value>
</data>
<data name="&gt;&gt;cmsTray.Name" xml:space="preserve">
<value>cmsTray</value>
</data>
<data name="&gt;&gt;cmsTray.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="niTray.Text" xml:space="preserve">
<value>ShareX</value>
</data>
<data name="tsmiTrayCapture.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayCapture.Text" xml:space="preserve">
<value>Capture</value>
</data>
<data name="tsmiTrayFullscreen.Size" type="System.Drawing.Size, System.Drawing">
<value>191, 22</value>
</data>
@ -1419,11 +1467,11 @@
<data name="tsmiTrayShowCursor.Text" xml:space="preserve">
<value>Show cursor</value>
</data>
<data name="tsmiTrayCapture.Size" type="System.Drawing.Size, System.Drawing">
<data name="tsmiTrayUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayCapture.Text" xml:space="preserve">
<value>Capture</value>
<data name="tsmiTrayUpload.Text" xml:space="preserve">
<value>Upload</value>
</data>
<data name="tsmiTrayUploadFile.Size" type="System.Drawing.Size, System.Drawing">
<value>203, 22</value>
@ -1467,18 +1515,18 @@
<data name="tsmiTrayShortenURL.Text" xml:space="preserve">
<value>Shorten URL...</value>
</data>
<data name="tsmiTrayUpload.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayUpload.Text" xml:space="preserve">
<value>Upload</value>
</data>
<data name="tsmiTrayWorkflows.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayWorkflows.Text" xml:space="preserve">
<value>Workflows</value>
</data>
<data name="tsmiTrayTools.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayTools.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="tsmiTrayColorPicker.Size" type="System.Drawing.Size, System.Drawing">
<value>184, 22</value>
</data>
@ -1569,12 +1617,6 @@
<data name="tsmiTrayMonitorTest.Text" xml:space="preserve">
<value>Monitor test...</value>
</data>
<data name="tsmiTrayTools.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayTools.Text" xml:space="preserve">
<value>Tools</value>
</data>
<data name="tssTray1.Size" type="System.Drawing.Size, System.Drawing">
<value>189, 6</value>
</data>
@ -1590,6 +1632,12 @@
<data name="tsmiTrayAfterUploadTasks.Text" xml:space="preserve">
<value>After upload tasks</value>
</data>
<data name="tsmiTrayDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayDestinations.Text" xml:space="preserve">
<value>Destinations</value>
</data>
<data name="tsmiTrayImageUploaders.Size" type="System.Drawing.Size, System.Drawing">
<value>187, 22</value>
</data>
@ -1629,12 +1677,6 @@
<data name="tsmiTrayDestinationSettings.Text" xml:space="preserve">
<value>Destination settings...</value>
</data>
<data name="tsmiTrayDestinations.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayDestinations.Text" xml:space="preserve">
<value>Destinations</value>
</data>
<data name="tsmiTrayTaskSettings.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
@ -1680,6 +1722,12 @@
<data name="tsmiTrayImageHistory.Text" xml:space="preserve">
<value>Image history...</value>
</data>
<data name="tsmiTrayDebug.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayDebug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="tsmiTrayShowDebugLog.Size" type="System.Drawing.Size, System.Drawing">
<value>172, 22</value>
</data>
@ -1716,12 +1764,6 @@
<data name="tsmiTrayTestURLSharing.Text" xml:space="preserve">
<value>Test URL sharing</value>
</data>
<data name="tsmiTrayDebug.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
<data name="tsmiTrayDebug.Text" xml:space="preserve">
<value>Debug</value>
</data>
<data name="tsmiTrayDonate.Size" type="System.Drawing.Size, System.Drawing">
<value>192, 22</value>
</data>
@ -1764,21 +1806,12 @@
<data name="tsmiTrayExit.Text" xml:space="preserve">
<value>Exit</value>
</data>
<data name="cmsTray.Size" type="System.Drawing.Size, System.Drawing">
<value>193, 484</value>
</data>
<data name="&gt;&gt;cmsTray.Name" xml:space="preserve">
<value>cmsTray</value>
</data>
<data name="&gt;&gt;cmsTray.Type" xml:space="preserve">
<value>System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="niTray.Text" xml:space="preserve">
<value>ShareX</value>
</data>
<metadata name="timerTraySingleClick.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>405, 17</value>
</metadata>
<metadata name="ttMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>567, 17</value>
</metadata>
<data name="pbDiscordOpen.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
@ -1845,36 +1878,12 @@
<data name="&gt;&gt;pbDiscordHide.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="ucNews.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="ucNews.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="ucNews.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>0, 0, 0, 0</value>
</data>
<data name="ucNews.Size" type="System.Drawing.Size, System.Drawing">
<value>674, 429</value>
</data>
<data name="ucNews.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="&gt;&gt;ucNews.Name" xml:space="preserve">
<value>ucNews</value>
</data>
<data name="&gt;&gt;ucNews.Type" xml:space="preserve">
<value>ShareX.NewsListControl, ShareX, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;ucNews.Parent" xml:space="preserve">
<value>pNews</value>
</data>
<data name="&gt;&gt;ucNews.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="btnCloseNews.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
<value>Bottom, Right</value>
</data>
<data name="btnCloseNews.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="btnCloseNews.Location" type="System.Drawing.Point, System.Drawing">
<value>560, 400</value>
</data>
@ -1899,6 +1908,30 @@
<data name="&gt;&gt;btnCloseNews.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="ucNews.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="ucNews.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="ucNews.Size" type="System.Drawing.Size, System.Drawing">
<value>674, 429</value>
</data>
<data name="ucNews.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="&gt;&gt;ucNews.Name" xml:space="preserve">
<value>ucNews</value>
</data>
<data name="&gt;&gt;ucNews.Type" xml:space="preserve">
<value>ShareX.Controls.NewsListControl, ShareX, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;ucNews.Parent" xml:space="preserve">
<value>pNews</value>
</data>
<data name="&gt;&gt;ucNews.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="pNews.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
@ -1935,24 +1968,6 @@
<data name="flpCommunity.AutoSizeMode" type="System.Windows.Forms.AutoSizeMode, System.Windows.Forms">
<value>GrowAndShrink</value>
</data>
<data name="flpDiscord.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="flpDiscord.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="flpDiscord.Size" type="System.Drawing.Size, System.Drawing">
<value>215, 45</value>
</data>
<data name="flpDiscord.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="flpDiscord.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="flpDiscord.WrapContents" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;flpDiscord.Name" xml:space="preserve">
<value>flpDiscord</value>
</data>
@ -1989,6 +2004,36 @@
<data name="&gt;&gt;flpCommunity.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="flpDiscord.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="flpDiscord.Location" type="System.Drawing.Point, System.Drawing">
<value>3, 3</value>
</data>
<data name="flpDiscord.Size" type="System.Drawing.Size, System.Drawing">
<value>215, 45</value>
</data>
<data name="flpDiscord.TabIndex" type="System.Int32, mscorlib">
<value>4</value>
</data>
<data name="flpDiscord.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="flpDiscord.WrapContents" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;flpDiscord.Name" xml:space="preserve">
<value>flpDiscord</value>
</data>
<data name="&gt;&gt;flpDiscord.Type" xml:space="preserve">
<value>System.Windows.Forms.FlowLayoutPanel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;flpDiscord.Parent" xml:space="preserve">
<value>flpCommunity</value>
</data>
<data name="&gt;&gt;flpDiscord.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
@ -2407,7 +2452,7 @@
<value>tsbNews</value>
</data>
<data name="&gt;&gt;tsbNews.Type" xml:space="preserve">
<value>ShareX.HelpersLib.ToolStripButtonCounter, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.ToolStripButtonCounter, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tsddbDebug.Name" xml:space="preserve">
<value>tsddbDebug</value>
@ -2455,7 +2500,7 @@
<value>tsbDonate</value>
</data>
<data name="&gt;&gt;tsbDonate.Type" xml:space="preserve">
<value>ShareX.HelpersLib.ToolStripButtonColorAnimation, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.ToolStripButtonColorAnimation, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
<data name="&gt;&gt;tsbAbout.Name" xml:space="preserve">
<value>tsbAbout</value>
@ -3307,6 +3352,6 @@
<value>MainForm</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>ShareX.HelpersLib.HotkeyForm, ShareX.HelpersLib, Version=12.3.0.0, Culture=neutral, PublicKeyToken=null</value>
<value>ShareX.HelpersLib.HotkeyForm, ShareX.HelpersLib, Version=12.3.1.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View file

@ -388,6 +388,9 @@
<EmbeddedResource Include="Controls\HotkeySelectionControl.zh-TW.resx">
<DependentUpon>HotkeySelectionControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\NewsListControl.resx">
<DependentUpon>NewsListControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms\AboutForm.de.resx">
<DependentUpon>AboutForm.cs</DependentUpon>
</EmbeddedResource>