From 94425455e31cdbc59b1e263dca0f5c542693a8e4 Mon Sep 17 00:00:00 2001 From: Jaex Date: Fri, 6 Sep 2019 18:11:08 +0300 Subject: [PATCH] Added theme tab to application settings --- ShareX.HelpersLib/ShareXTheme.cs | 17 ++ ShareX/ApplicationConfig.cs | 9 +- .../Forms/ApplicationSettingsForm.Designer.cs | 233 ++++++++++-------- ShareX/Forms/ApplicationSettingsForm.cs | 13 + ShareX/Forms/ApplicationSettingsForm.resx | 178 +++++++++++-- ShareX/Forms/MainForm.cs | 2 +- 6 files changed, 333 insertions(+), 119 deletions(-) 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) {