diff --git a/ShareX.HelpersLib/ShareXTheme.cs b/ShareX.HelpersLib/ShareXTheme.cs
index b8fee5d23..36067b77d 100644
--- a/ShareX.HelpersLib/ShareXTheme.cs
+++ b/ShareX.HelpersLib/ShareXTheme.cs
@@ -23,7 +23,9 @@ You should have received a copy of the GNU General Public License
#endregion License Information (GPL v3)
+using System.ComponentModel;
using System.Drawing;
+using System.Drawing.Design;
using System.Windows.Forms;
namespace ShareX.HelpersLib
@@ -31,13 +33,28 @@ namespace ShareX.HelpersLib
public class ShareXTheme
{
public string Name { get; set; }
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color BackgroundColor { get; set; }
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color BackgroundColor2 { get; set; }
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color TextColor { get; set; }
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color BorderColor { get; set; }
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color CheckerColor { get; set; }
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color CheckerColor2 { get; set; }
+
public int CheckerSize { get; set; } = 15;
+
+ [Editor(typeof(MyColorEditor), typeof(UITypeEditor)), TypeConverter(typeof(MyColorConverter))]
public Color LinkColor { get; set; }
public ShareXTheme()
diff --git a/ShareX/ApplicationConfig.cs b/ShareX/ApplicationConfig.cs
index ff637dcfb..c4f608e91 100644
--- a/ShareX/ApplicationConfig.cs
+++ b/ShareX/ApplicationConfig.cs
@@ -88,6 +88,12 @@ public ApplicationConfig()
#endregion General
+ #region Theme
+
+ public ShareXTheme Theme = new ShareXTheme();
+
+ #endregion
+
#region Paths
public bool UseCustomScreenshotsPath = false;
@@ -149,9 +155,6 @@ public ApplicationConfig()
#endif
public bool AutoCheckUpdate { get; set; }
- [Category("Application"), Description("Customize theme colors."), TypeConverter(typeof(ExpandableObjectConverter))]
- public ShareXTheme Theme { get; set; } = new ShareXTheme();
-
[Category("Application"), DefaultValue(false), Description("Calculate and show file sizes in binary units (KiB, MiB etc.)")]
public bool BinaryUnits { get; set; }
diff --git a/ShareX/Forms/ApplicationSettingsForm.Designer.cs b/ShareX/Forms/ApplicationSettingsForm.Designer.cs
index 08d1ca34e..b6bf1ba40 100644
--- a/ShareX/Forms/ApplicationSettingsForm.Designer.cs
+++ b/ShareX/Forms/ApplicationSettingsForm.Designer.cs
@@ -33,6 +33,7 @@ private void InitializeComponent()
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ApplicationSettingsForm));
this.tcSettings = new System.Windows.Forms.TabControl();
this.tpGeneral = new System.Windows.Forms.TabPage();
+ this.cbExperimentalDarkTheme = new System.Windows.Forms.CheckBox();
this.cbUseWhiteShareXIcon = new System.Windows.Forms.CheckBox();
this.cbUseDarkTheme = new System.Windows.Forms.CheckBox();
this.btnCheckDevBuild = new System.Windows.Forms.Button();
@@ -46,7 +47,6 @@ private void InitializeComponent()
this.btnEditQuickTaskMenu = new System.Windows.Forms.Button();
this.cbShowTray = new System.Windows.Forms.CheckBox();
this.cbTrayIconProgressEnabled = new System.Windows.Forms.CheckBox();
- this.btnLanguages = new ShareX.HelpersLib.MenuButton();
this.cmsLanguages = new System.Windows.Forms.ContextMenuStrip(this.components);
this.cbRememberMainFormPosition = new System.Windows.Forms.CheckBox();
this.cbSilentRun = new System.Windows.Forms.CheckBox();
@@ -99,19 +99,10 @@ private void InitializeComponent()
this.btnClipboardFormatEdit = new System.Windows.Forms.Button();
this.btnClipboardFormatRemove = new System.Windows.Forms.Button();
this.btnClipboardFormatAdd = new System.Windows.Forms.Button();
- this.lvClipboardFormats = new ShareX.HelpersLib.MyListView();
- this.chDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
- this.chFormat = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.tpUploadRetry = new System.Windows.Forms.TabPage();
this.gbSecondaryFileUploaders = new System.Windows.Forms.GroupBox();
- this.lvSecondaryFileUploaders = new ShareX.HelpersLib.MyListView();
- this.chSecondaryFileUploaders = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.gbSecondaryImageUploaders = new System.Windows.Forms.GroupBox();
- this.lvSecondaryImageUploaders = new ShareX.HelpersLib.MyListView();
- this.chSecondaryImageUploaders = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.gbSecondaryTextUploaders = new System.Windows.Forms.GroupBox();
- this.lvSecondaryTextUploaders = new ShareX.HelpersLib.MyListView();
- this.chSecondaryTextUploaders = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.chkUseSecondaryUploaders = new System.Windows.Forms.CheckBox();
this.cbIfUploadFailRetryOnce = new System.Windows.Forms.Label();
this.nudRetryUpload = new System.Windows.Forms.NumericUpDown();
@@ -143,8 +134,20 @@ private void InitializeComponent()
this.txtProxyUsername = new System.Windows.Forms.TextBox();
this.tpAdvanced = new System.Windows.Forms.TabPage();
this.pgSettings = new System.Windows.Forms.PropertyGrid();
+ this.tpTheme = new System.Windows.Forms.TabPage();
+ this.pgTheme = new System.Windows.Forms.PropertyGrid();
+ this.btnApplyTheme = new System.Windows.Forms.Button();
+ this.btnLanguages = new ShareX.HelpersLib.MenuButton();
+ this.lvClipboardFormats = new ShareX.HelpersLib.MyListView();
+ this.chDescription = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.chFormat = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.lvSecondaryFileUploaders = new ShareX.HelpersLib.MyListView();
+ this.chSecondaryFileUploaders = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.lvSecondaryImageUploaders = new ShareX.HelpersLib.MyListView();
+ this.chSecondaryImageUploaders = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
+ this.lvSecondaryTextUploaders = new ShareX.HelpersLib.MyListView();
+ this.chSecondaryTextUploaders = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader()));
this.tttvMain = new ShareX.HelpersLib.TabToTreeView();
- this.cbExperimentalDarkTheme = new System.Windows.Forms.CheckBox();
this.tcSettings.SuspendLayout();
this.tpGeneral.SuspendLayout();
this.tpIntegration.SuspendLayout();
@@ -173,12 +176,14 @@ private void InitializeComponent()
this.tpProxy.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.nudProxyPort)).BeginInit();
this.tpAdvanced.SuspendLayout();
+ this.tpTheme.SuspendLayout();
this.SuspendLayout();
//
// tcSettings
//
resources.ApplyResources(this.tcSettings, "tcSettings");
this.tcSettings.Controls.Add(this.tpGeneral);
+ this.tcSettings.Controls.Add(this.tpTheme);
this.tcSettings.Controls.Add(this.tpIntegration);
this.tcSettings.Controls.Add(this.tpPaths);
this.tcSettings.Controls.Add(this.tpExportImport);
@@ -216,6 +221,13 @@ private void InitializeComponent()
resources.ApplyResources(this.tpGeneral, "tpGeneral");
this.tpGeneral.Name = "tpGeneral";
//
+ // cbExperimentalDarkTheme
+ //
+ resources.ApplyResources(this.cbExperimentalDarkTheme, "cbExperimentalDarkTheme");
+ this.cbExperimentalDarkTheme.Name = "cbExperimentalDarkTheme";
+ this.cbExperimentalDarkTheme.UseVisualStyleBackColor = true;
+ this.cbExperimentalDarkTheme.CheckedChanged += new System.EventHandler(this.CbExperimentalDarkTheme_CheckedChanged);
+ //
// cbUseWhiteShareXIcon
//
resources.ApplyResources(this.cbUseWhiteShareXIcon, "cbUseWhiteShareXIcon");
@@ -304,13 +316,6 @@ private void InitializeComponent()
this.cbTrayIconProgressEnabled.UseVisualStyleBackColor = true;
this.cbTrayIconProgressEnabled.CheckedChanged += new System.EventHandler(this.cbTrayIconProgressEnabled_CheckedChanged);
//
- // btnLanguages
- //
- resources.ApplyResources(this.btnLanguages, "btnLanguages");
- this.btnLanguages.Menu = this.cmsLanguages;
- this.btnLanguages.Name = "btnLanguages";
- this.btnLanguages.UseVisualStyleBackColor = true;
- //
// cmsLanguages
//
this.cmsLanguages.Name = "cmsLanguages";
@@ -696,28 +701,6 @@ private void InitializeComponent()
this.btnClipboardFormatAdd.UseVisualStyleBackColor = true;
this.btnClipboardFormatAdd.Click += new System.EventHandler(this.btnAddClipboardFormat_Click);
//
- // lvClipboardFormats
- //
- resources.ApplyResources(this.lvClipboardFormats, "lvClipboardFormats");
- this.lvClipboardFormats.AutoFillColumn = true;
- this.lvClipboardFormats.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.chDescription,
- this.chFormat});
- this.lvClipboardFormats.FullRowSelect = true;
- this.lvClipboardFormats.HideSelection = false;
- this.lvClipboardFormats.Name = "lvClipboardFormats";
- this.lvClipboardFormats.UseCompatibleStateImageBehavior = false;
- this.lvClipboardFormats.View = System.Windows.Forms.View.Details;
- this.lvClipboardFormats.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lvClipboardFormats_MouseDoubleClick);
- //
- // chDescription
- //
- resources.ApplyResources(this.chDescription, "chDescription");
- //
- // chFormat
- //
- resources.ApplyResources(this.chFormat, "chFormat");
- //
// tpUploadRetry
//
this.tpUploadRetry.BackColor = System.Drawing.SystemColors.Window;
@@ -737,24 +720,6 @@ private void InitializeComponent()
this.gbSecondaryFileUploaders.Name = "gbSecondaryFileUploaders";
this.gbSecondaryFileUploaders.TabStop = false;
//
- // lvSecondaryFileUploaders
- //
- this.lvSecondaryFileUploaders.AllowDrop = true;
- this.lvSecondaryFileUploaders.AllowItemDrag = true;
- this.lvSecondaryFileUploaders.AutoFillColumn = true;
- this.lvSecondaryFileUploaders.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lvSecondaryFileUploaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.chSecondaryFileUploaders});
- resources.ApplyResources(this.lvSecondaryFileUploaders, "lvSecondaryFileUploaders");
- this.lvSecondaryFileUploaders.FullRowSelect = true;
- this.lvSecondaryFileUploaders.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
- this.lvSecondaryFileUploaders.HideSelection = false;
- this.lvSecondaryFileUploaders.MultiSelect = false;
- this.lvSecondaryFileUploaders.Name = "lvSecondaryFileUploaders";
- this.lvSecondaryFileUploaders.UseCompatibleStateImageBehavior = false;
- this.lvSecondaryFileUploaders.View = System.Windows.Forms.View.Details;
- this.lvSecondaryFileUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
- //
// gbSecondaryImageUploaders
//
this.gbSecondaryImageUploaders.Controls.Add(this.lvSecondaryImageUploaders);
@@ -762,24 +727,6 @@ private void InitializeComponent()
this.gbSecondaryImageUploaders.Name = "gbSecondaryImageUploaders";
this.gbSecondaryImageUploaders.TabStop = false;
//
- // lvSecondaryImageUploaders
- //
- this.lvSecondaryImageUploaders.AllowDrop = true;
- this.lvSecondaryImageUploaders.AllowItemDrag = true;
- this.lvSecondaryImageUploaders.AutoFillColumn = true;
- this.lvSecondaryImageUploaders.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lvSecondaryImageUploaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.chSecondaryImageUploaders});
- resources.ApplyResources(this.lvSecondaryImageUploaders, "lvSecondaryImageUploaders");
- this.lvSecondaryImageUploaders.FullRowSelect = true;
- this.lvSecondaryImageUploaders.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
- this.lvSecondaryImageUploaders.HideSelection = false;
- this.lvSecondaryImageUploaders.MultiSelect = false;
- this.lvSecondaryImageUploaders.Name = "lvSecondaryImageUploaders";
- this.lvSecondaryImageUploaders.UseCompatibleStateImageBehavior = false;
- this.lvSecondaryImageUploaders.View = System.Windows.Forms.View.Details;
- this.lvSecondaryImageUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
- //
// gbSecondaryTextUploaders
//
this.gbSecondaryTextUploaders.Controls.Add(this.lvSecondaryTextUploaders);
@@ -787,24 +734,6 @@ private void InitializeComponent()
this.gbSecondaryTextUploaders.Name = "gbSecondaryTextUploaders";
this.gbSecondaryTextUploaders.TabStop = false;
//
- // lvSecondaryTextUploaders
- //
- this.lvSecondaryTextUploaders.AllowDrop = true;
- this.lvSecondaryTextUploaders.AllowItemDrag = true;
- this.lvSecondaryTextUploaders.AutoFillColumn = true;
- this.lvSecondaryTextUploaders.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.lvSecondaryTextUploaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
- this.chSecondaryTextUploaders});
- resources.ApplyResources(this.lvSecondaryTextUploaders, "lvSecondaryTextUploaders");
- this.lvSecondaryTextUploaders.FullRowSelect = true;
- this.lvSecondaryTextUploaders.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
- this.lvSecondaryTextUploaders.HideSelection = false;
- this.lvSecondaryTextUploaders.MultiSelect = false;
- this.lvSecondaryTextUploaders.Name = "lvSecondaryTextUploaders";
- this.lvSecondaryTextUploaders.UseCompatibleStateImageBehavior = false;
- this.lvSecondaryTextUploaders.View = System.Windows.Forms.View.Details;
- this.lvSecondaryTextUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
- //
// chkUseSecondaryUploaders
//
resources.ApplyResources(this.chkUseSecondaryUploaders, "chkUseSecondaryUploaders");
@@ -1042,6 +971,111 @@ private void InitializeComponent()
this.pgSettings.PropertySort = System.Windows.Forms.PropertySort.Categorized;
this.pgSettings.ToolbarVisible = false;
//
+ // tpTheme
+ //
+ this.tpTheme.Controls.Add(this.btnApplyTheme);
+ this.tpTheme.Controls.Add(this.pgTheme);
+ resources.ApplyResources(this.tpTheme, "tpTheme");
+ this.tpTheme.Name = "tpTheme";
+ this.tpTheme.UseVisualStyleBackColor = true;
+ //
+ // pgTheme
+ //
+ resources.ApplyResources(this.pgTheme, "pgTheme");
+ this.pgTheme.Name = "pgTheme";
+ this.pgTheme.PropertySort = System.Windows.Forms.PropertySort.NoSort;
+ this.pgTheme.ToolbarVisible = false;
+ //
+ // btnApplyTheme
+ //
+ resources.ApplyResources(this.btnApplyTheme, "btnApplyTheme");
+ this.btnApplyTheme.Name = "btnApplyTheme";
+ this.btnApplyTheme.UseVisualStyleBackColor = true;
+ this.btnApplyTheme.Click += new System.EventHandler(this.BtnApplyTheme_Click);
+ //
+ // btnLanguages
+ //
+ resources.ApplyResources(this.btnLanguages, "btnLanguages");
+ this.btnLanguages.Menu = this.cmsLanguages;
+ this.btnLanguages.Name = "btnLanguages";
+ this.btnLanguages.UseVisualStyleBackColor = true;
+ //
+ // lvClipboardFormats
+ //
+ resources.ApplyResources(this.lvClipboardFormats, "lvClipboardFormats");
+ this.lvClipboardFormats.AutoFillColumn = true;
+ this.lvClipboardFormats.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chDescription,
+ this.chFormat});
+ this.lvClipboardFormats.FullRowSelect = true;
+ this.lvClipboardFormats.HideSelection = false;
+ this.lvClipboardFormats.Name = "lvClipboardFormats";
+ this.lvClipboardFormats.UseCompatibleStateImageBehavior = false;
+ this.lvClipboardFormats.View = System.Windows.Forms.View.Details;
+ this.lvClipboardFormats.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.lvClipboardFormats_MouseDoubleClick);
+ //
+ // chDescription
+ //
+ resources.ApplyResources(this.chDescription, "chDescription");
+ //
+ // chFormat
+ //
+ resources.ApplyResources(this.chFormat, "chFormat");
+ //
+ // lvSecondaryFileUploaders
+ //
+ this.lvSecondaryFileUploaders.AllowDrop = true;
+ this.lvSecondaryFileUploaders.AllowItemDrag = true;
+ this.lvSecondaryFileUploaders.AutoFillColumn = true;
+ this.lvSecondaryFileUploaders.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.lvSecondaryFileUploaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chSecondaryFileUploaders});
+ resources.ApplyResources(this.lvSecondaryFileUploaders, "lvSecondaryFileUploaders");
+ this.lvSecondaryFileUploaders.FullRowSelect = true;
+ this.lvSecondaryFileUploaders.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.lvSecondaryFileUploaders.HideSelection = false;
+ this.lvSecondaryFileUploaders.MultiSelect = false;
+ this.lvSecondaryFileUploaders.Name = "lvSecondaryFileUploaders";
+ this.lvSecondaryFileUploaders.UseCompatibleStateImageBehavior = false;
+ this.lvSecondaryFileUploaders.View = System.Windows.Forms.View.Details;
+ this.lvSecondaryFileUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
+ //
+ // lvSecondaryImageUploaders
+ //
+ this.lvSecondaryImageUploaders.AllowDrop = true;
+ this.lvSecondaryImageUploaders.AllowItemDrag = true;
+ this.lvSecondaryImageUploaders.AutoFillColumn = true;
+ this.lvSecondaryImageUploaders.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.lvSecondaryImageUploaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chSecondaryImageUploaders});
+ resources.ApplyResources(this.lvSecondaryImageUploaders, "lvSecondaryImageUploaders");
+ this.lvSecondaryImageUploaders.FullRowSelect = true;
+ this.lvSecondaryImageUploaders.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.lvSecondaryImageUploaders.HideSelection = false;
+ this.lvSecondaryImageUploaders.MultiSelect = false;
+ this.lvSecondaryImageUploaders.Name = "lvSecondaryImageUploaders";
+ this.lvSecondaryImageUploaders.UseCompatibleStateImageBehavior = false;
+ this.lvSecondaryImageUploaders.View = System.Windows.Forms.View.Details;
+ this.lvSecondaryImageUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
+ //
+ // lvSecondaryTextUploaders
+ //
+ this.lvSecondaryTextUploaders.AllowDrop = true;
+ this.lvSecondaryTextUploaders.AllowItemDrag = true;
+ this.lvSecondaryTextUploaders.AutoFillColumn = true;
+ this.lvSecondaryTextUploaders.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.lvSecondaryTextUploaders.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] {
+ this.chSecondaryTextUploaders});
+ resources.ApplyResources(this.lvSecondaryTextUploaders, "lvSecondaryTextUploaders");
+ this.lvSecondaryTextUploaders.FullRowSelect = true;
+ this.lvSecondaryTextUploaders.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None;
+ this.lvSecondaryTextUploaders.HideSelection = false;
+ this.lvSecondaryTextUploaders.MultiSelect = false;
+ this.lvSecondaryTextUploaders.Name = "lvSecondaryTextUploaders";
+ this.lvSecondaryTextUploaders.UseCompatibleStateImageBehavior = false;
+ this.lvSecondaryTextUploaders.View = System.Windows.Forms.View.Details;
+ this.lvSecondaryTextUploaders.MouseUp += new System.Windows.Forms.MouseEventHandler(this.lvSecondaryUploaders_MouseUp);
+ //
// tttvMain
//
resources.ApplyResources(this.tttvMain, "tttvMain");
@@ -1052,13 +1086,6 @@ private void InitializeComponent()
this.tttvMain.TreeViewSize = 175;
this.tttvMain.TabChanged += new ShareX.HelpersLib.TabToTreeView.TabChangedEventHandler(this.tttvMain_TabChanged);
//
- // cbExperimentalDarkTheme
- //
- resources.ApplyResources(this.cbExperimentalDarkTheme, "cbExperimentalDarkTheme");
- this.cbExperimentalDarkTheme.Name = "cbExperimentalDarkTheme";
- this.cbExperimentalDarkTheme.UseVisualStyleBackColor = true;
- this.cbExperimentalDarkTheme.CheckedChanged += new System.EventHandler(this.CbExperimentalDarkTheme_CheckedChanged);
- //
// ApplicationSettingsForm
//
resources.ApplyResources(this, "$this");
@@ -1110,6 +1137,7 @@ private void InitializeComponent()
this.tpProxy.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.nudProxyPort)).EndInit();
this.tpAdvanced.ResumeLayout(false);
+ this.tpTheme.ResumeLayout(false);
this.ResumeLayout(false);
}
@@ -1232,5 +1260,8 @@ private void InitializeComponent()
private System.Windows.Forms.CheckBox cbUseDarkTheme;
private System.Windows.Forms.CheckBox cbUseWhiteShareXIcon;
private System.Windows.Forms.CheckBox cbExperimentalDarkTheme;
+ private System.Windows.Forms.TabPage tpTheme;
+ private System.Windows.Forms.Button btnApplyTheme;
+ private System.Windows.Forms.PropertyGrid pgTheme;
}
}
\ No newline at end of file
diff --git a/ShareX/Forms/ApplicationSettingsForm.cs b/ShareX/Forms/ApplicationSettingsForm.cs
index 5a6b9006f..7ea3a83cc 100644
--- a/ShareX/Forms/ApplicationSettingsForm.cs
+++ b/ShareX/Forms/ApplicationSettingsForm.cs
@@ -119,6 +119,9 @@ private void UpdateControls()
cbCheckPreReleaseUpdates.Checked = Program.Settings.CheckPreReleaseUpdates;
#endif
+ // Theme
+ pgTheme.SelectedObject = Program.Settings.Theme;
+
// Integration
#if WindowsStore
cbShellContextMenu.Visible = false;
@@ -433,6 +436,16 @@ private void btnCheckDevBuild_Click(object sender, EventArgs e)
#endregion General
+ #region Theme
+
+ private void BtnApplyTheme_Click(object sender, EventArgs e)
+ {
+ ShareXResources.ApplyTheme(this);
+ Program.MainForm.UpdateTheme();
+ }
+
+ #endregion
+
#region Integration
private void cbStartWithWindows_CheckedChanged(object sender, EventArgs e)
diff --git a/ShareX/Forms/ApplicationSettingsForm.resx b/ShareX/Forms/ApplicationSettingsForm.resx
index 6cb339af0..5d71aa9ec 100644
--- a/ShareX/Forms/ApplicationSettingsForm.resx
+++ b/ShareX/Forms/ApplicationSettingsForm.resx
@@ -125,6 +125,9 @@
True
+
+ NoControl
+
248, 96
@@ -153,6 +156,9 @@
True
+
+ NoControl
+
16, 120
@@ -180,6 +186,9 @@
True
+
+ NoControl
+
16, 96
@@ -204,6 +213,9 @@
2
+
+ NoControl
+
16, 304
@@ -231,6 +243,9 @@
True
+
+ NoControl
+
16, 280
@@ -279,6 +294,9 @@
True
+
+ NoControl
+
13, 224
@@ -327,6 +345,9 @@
True
+
+ NoControl
+
13, 200
@@ -375,6 +396,9 @@
True
+
+ NoControl
+
13, 176
@@ -399,6 +423,9 @@
10
+
+ NoControl
+
16, 248
@@ -520,7 +547,7 @@
btnLanguages
- ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=13.0.0.0, Culture=neutral, PublicKeyToken=null
+ ShareX.HelpersLib.MenuButton, ShareX.HelpersLib, Version=13.0.2.0, Culture=neutral, PublicKeyToken=null
tpGeneral
@@ -705,9 +732,90 @@
0
+
+ NoControl
+
+
+ 8, 336
+
+
+ 128, 24
+
+
+ 1
+
+
+ Apply theme
+
+
+ btnApplyTheme
+
+
+ System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpTheme
+
+
+ 0
+
+
+ False
+
+
+ 8, 8
+
+
+ 360, 320
+
+
+ 0
+
+
+ pgTheme
+
+
+ System.Windows.Forms.PropertyGrid, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tpTheme
+
+
+ 1
+
+
+ 4, 22
+
+
+ 3, 3, 3, 3
+
+
+ 550, 370
+
+
+ 9
+
+
+ Theme
+
+
+ tpTheme
+
+
+ System.Windows.Forms.TabPage, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ tcSettings
+
+
+ 1
+
True
+
+ NoControl
+
16, 24
@@ -786,6 +894,9 @@
True
+
+ NoControl
+
16, 24
@@ -837,6 +948,9 @@
True
+
+ NoControl
+
16, 24
@@ -861,6 +975,9 @@
0
+
+ NoControl
+
16, 48
@@ -1075,7 +1192,10 @@
tcSettings
- 1
+ 2
+
+
+ NoControl
16, 56
@@ -1447,7 +1567,10 @@
tcSettings
- 2
+ 3
+
+
+ NoControl
16, 80
@@ -1473,6 +1596,9 @@
0
+
+ NoControl
+
208, 16
@@ -1497,6 +1623,9 @@
1
+
+ NoControl
+
16, 16
@@ -1573,7 +1702,7 @@
tcSettings
- 3
+ 4
True
@@ -1846,7 +1975,7 @@
lvClipboardFormats
- ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.0.0, Culture=neutral, PublicKeyToken=null
+ ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.2.0, Culture=neutral, PublicKeyToken=null
gbClipboardFormats
@@ -1921,7 +2050,7 @@
lvSecondaryFileUploaders
- ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.0.0, Culture=neutral, PublicKeyToken=null
+ ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.2.0, Culture=neutral, PublicKeyToken=null
gbSecondaryFileUploaders
@@ -1972,7 +2101,7 @@
lvSecondaryImageUploaders
- ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.0.0, Culture=neutral, PublicKeyToken=null
+ ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.2.0, Culture=neutral, PublicKeyToken=null
gbSecondaryImageUploaders
@@ -2023,7 +2152,7 @@
lvSecondaryTextUploaders
- ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.0.0, Culture=neutral, PublicKeyToken=null
+ ShareX.HelpersLib.MyListView, ShareX.HelpersLib, Version=13.0.2.0, Culture=neutral, PublicKeyToken=null
gbSecondaryTextUploaders
@@ -2218,11 +2347,14 @@
tcSettings
- 4
+ 5
True
+
+ NoControl
+
16, 48
@@ -2250,6 +2382,9 @@
True
+
+ NoControl
+
16, 24
@@ -2301,6 +2436,9 @@
True
+
+ NoControl
+
16, 144
@@ -2328,6 +2466,9 @@
True
+
+ NoControl
+
13, 48
@@ -2409,6 +2550,9 @@
True
+
+ NoControl
+
16, 96
@@ -2436,6 +2580,9 @@
True
+
+ NoControl
+
16, 24
@@ -2509,7 +2656,7 @@
tcSettings
- 5
+ 6
True
@@ -2623,7 +2770,7 @@
tcSettings
- 6
+ 7
16, 32
@@ -2908,7 +3055,7 @@
tcSettings
- 7
+ 8
Fill
@@ -2959,7 +3106,7 @@
tcSettings
- 8
+ 9
176, 3
@@ -3004,7 +3151,7 @@
tttvMain
- ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=13.0.0.0, Culture=neutral, PublicKeyToken=null
+ ShareX.HelpersLib.TabToTreeView, ShareX.HelpersLib, Version=13.0.2.0, Culture=neutral, PublicKeyToken=null
$this
@@ -3021,6 +3168,9 @@
737, 402
+
+ NoControl
+
640, 440
diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs
index c0cbea1bd..64745c70f 100644
--- a/ShareX/Forms/MainForm.cs
+++ b/ShareX/Forms/MainForm.cs
@@ -780,7 +780,7 @@ private void UpdateTaskViewMode()
}
}
- private void UpdateTheme()
+ public void UpdateTheme()
{
if (IsHandleCreated)
{