Theme list ui improvements

This commit is contained in:
Jaex 2019-09-07 14:39:58 +03:00
parent 2d92d9e338
commit f82cabfab1
4 changed files with 154 additions and 9 deletions

View file

@ -41,7 +41,19 @@ public static string UserAgent
}
}
public static bool UseDarkTheme { get; set; }
private static bool useDarkTheme;
public static bool UseDarkTheme
{
get
{
return useDarkTheme && Theme != null;
}
set
{
useDarkTheme = value;
}
}
private static bool experimentalDarkTheme;

View file

@ -149,6 +149,8 @@ private void InitializeComponent()
this.tpAdvanced = new System.Windows.Forms.TabPage();
this.pgSettings = new System.Windows.Forms.PropertyGrid();
this.tttvMain = new ShareX.HelpersLib.TabToTreeView();
this.btnThemeAdd = new System.Windows.Forms.Button();
this.btnThemeRemove = new System.Windows.Forms.Button();
this.tcSettings.SuspendLayout();
this.tpGeneral.SuspendLayout();
this.tpTheme.SuspendLayout();
@ -348,6 +350,8 @@ private void InitializeComponent()
//
// tpTheme
//
this.tpTheme.Controls.Add(this.btnThemeRemove);
this.tpTheme.Controls.Add(this.btnThemeAdd);
this.tpTheme.Controls.Add(this.cbThemes);
this.tpTheme.Controls.Add(this.cbExperimentalDarkTheme);
this.tpTheme.Controls.Add(this.btnApplyTheme);
@ -363,6 +367,7 @@ private void InitializeComponent()
this.cbThemes.FormattingEnabled = true;
resources.ApplyResources(this.cbThemes, "cbThemes");
this.cbThemes.Name = "cbThemes";
this.cbThemes.SelectedIndexChanged += new System.EventHandler(this.CbThemes_SelectedIndexChanged);
//
// cbExperimentalDarkTheme
//
@ -1095,6 +1100,20 @@ private void InitializeComponent()
this.tttvMain.TreeViewSize = 175;
this.tttvMain.TabChanged += new ShareX.HelpersLib.TabToTreeView.TabChangedEventHandler(this.tttvMain_TabChanged);
//
// btnThemeAdd
//
resources.ApplyResources(this.btnThemeAdd, "btnThemeAdd");
this.btnThemeAdd.Name = "btnThemeAdd";
this.btnThemeAdd.UseVisualStyleBackColor = true;
this.btnThemeAdd.Click += new System.EventHandler(this.BtnThemeAdd_Click);
//
// btnThemeRemove
//
resources.ApplyResources(this.btnThemeRemove, "btnThemeRemove");
this.btnThemeRemove.Name = "btnThemeRemove";
this.btnThemeRemove.UseVisualStyleBackColor = true;
this.btnThemeRemove.Click += new System.EventHandler(this.BtnThemeRemove_Click);
//
// ApplicationSettingsForm
//
resources.ApplyResources(this, "$this");
@ -1274,5 +1293,7 @@ private void InitializeComponent()
private System.Windows.Forms.Button btnApplyTheme;
private System.Windows.Forms.PropertyGrid pgTheme;
private System.Windows.Forms.ComboBox cbThemes;
private System.Windows.Forms.Button btnThemeRemove;
private System.Windows.Forms.Button btnThemeAdd;
}
}

View file

@ -123,6 +123,7 @@ private void UpdateControls()
cbThemes.Items.AddRange(Program.Settings.Themes.ToArray());
cbThemes.SelectedIndex = Program.Settings.SelectedTheme;
pgTheme.SelectedObject = Program.Settings.Themes[Program.Settings.SelectedTheme];
UpdateThemeControls();
// Integration
#if WindowsStore
@ -440,10 +441,73 @@ private void btnCheckDevBuild_Click(object sender, EventArgs e)
#region Theme
private void UpdateThemeControls()
{
cbThemes.Enabled = btnThemeRemove.Enabled = btnApplyTheme.Enabled = cbThemes.Items.Count > 0;
}
private void CbThemes_SelectedIndexChanged(object sender, EventArgs e)
{
Program.Settings.SelectedTheme = cbThemes.SelectedIndex;
if (cbThemes.SelectedItem != null)
{
pgTheme.SelectedObject = cbThemes.SelectedItem.Copy();
}
else
{
pgTheme.SelectedObject = null;
}
UpdateThemeControls();
}
private void BtnThemeAdd_Click(object sender, EventArgs e)
{
ShareXTheme theme = new ShareXTheme();
theme.ApplyDarkColors();
Program.Settings.Themes.Add(theme);
cbThemes.Items.Add(theme);
int index = Program.Settings.Themes.Count - 1;
Program.Settings.SelectedTheme = index;
cbThemes.SelectedIndex = index;
UpdateThemeControls();
}
private void BtnThemeRemove_Click(object sender, EventArgs e)
{
int index = cbThemes.SelectedIndex;
if (index > -1)
{
Program.Settings.Themes.RemoveAt(index);
cbThemes.Items.RemoveAt(index);
if (Program.Settings.Themes.Count > 0)
{
index = 0;
}
else
{
index = -1;
}
Program.Settings.SelectedTheme = index;
cbThemes.SelectedIndex = index;
pgTheme.SelectedObject = cbThemes.SelectedItem;
UpdateThemeControls();
}
}
private void BtnApplyTheme_Click(object sender, EventArgs e)
{
ShareXResources.ApplyTheme(this);
Program.MainForm.UpdateTheme();
int index = cbThemes.SelectedIndex;
if (index > -1)
{
Program.Settings.SelectedTheme = index;
Program.Settings.Themes[index] = (ShareXTheme)pgTheme.SelectedObject;
cbThemes.Items[index] = Program.Settings.Themes[index];
UpdateThemeControls();
ShareXResources.ApplyTheme(this);
Program.MainForm.UpdateTheme();
}
}
#endregion

View file

@ -672,11 +672,59 @@
<data name="&gt;&gt;tpGeneral.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnThemeRemove.Location" type="System.Drawing.Point, System.Drawing">
<value>296, 64</value>
</data>
<data name="btnThemeRemove.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="btnThemeRemove.TabIndex" type="System.Int32, mscorlib">
<value>23</value>
</data>
<data name="btnThemeRemove.Text" xml:space="preserve">
<value>Remove</value>
</data>
<data name="&gt;&gt;btnThemeRemove.Name" xml:space="preserve">
<value>btnThemeRemove</value>
</data>
<data name="&gt;&gt;btnThemeRemove.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnThemeRemove.Parent" xml:space="preserve">
<value>tpTheme</value>
</data>
<data name="&gt;&gt;btnThemeRemove.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="btnThemeAdd.Location" type="System.Drawing.Point, System.Drawing">
<value>208, 64</value>
</data>
<data name="btnThemeAdd.Size" type="System.Drawing.Size, System.Drawing">
<value>80, 23</value>
</data>
<data name="btnThemeAdd.TabIndex" type="System.Int32, mscorlib">
<value>22</value>
</data>
<data name="btnThemeAdd.Text" xml:space="preserve">
<value>Add</value>
</data>
<data name="&gt;&gt;btnThemeAdd.Name" xml:space="preserve">
<value>btnThemeAdd</value>
</data>
<data name="&gt;&gt;btnThemeAdd.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;btnThemeAdd.Parent" xml:space="preserve">
<value>tpTheme</value>
</data>
<data name="&gt;&gt;btnThemeAdd.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="cbThemes.Location" type="System.Drawing.Point, System.Drawing">
<value>16, 64</value>
</data>
<data name="cbThemes.Size" type="System.Drawing.Size, System.Drawing">
<value>224, 21</value>
<value>184, 21</value>
</data>
<data name="cbThemes.TabIndex" type="System.Int32, mscorlib">
<value>21</value>
@ -691,7 +739,7 @@
<value>tpTheme</value>
</data>
<data name="&gt;&gt;cbThemes.ZOrder" xml:space="preserve">
<value>0</value>
<value>2</value>
</data>
<data name="cbExperimentalDarkTheme.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -721,7 +769,7 @@
<value>tpTheme</value>
</data>
<data name="&gt;&gt;cbExperimentalDarkTheme.ZOrder" xml:space="preserve">
<value>1</value>
<value>3</value>
</data>
<data name="btnApplyTheme.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
@ -748,7 +796,7 @@
<value>tpTheme</value>
</data>
<data name="&gt;&gt;btnApplyTheme.ZOrder" xml:space="preserve">
<value>2</value>
<value>4</value>
</data>
<data name="pgTheme.HelpVisible" type="System.Boolean, mscorlib">
<value>False</value>
@ -772,7 +820,7 @@
<value>tpTheme</value>
</data>
<data name="&gt;&gt;pgTheme.ZOrder" xml:space="preserve">
<value>3</value>
<value>5</value>
</data>
<data name="cbUseDarkTheme.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
@ -802,7 +850,7 @@
<value>tpTheme</value>
</data>
<data name="&gt;&gt;cbUseDarkTheme.ZOrder" xml:space="preserve">
<value>4</value>
<value>6</value>
</data>
<data name="tpTheme.Location" type="System.Drawing.Point, System.Drawing">
<value>4, 22</value>