Skip to content

Commit c475f52

Browse files
committed
#47 Allow User to select Krypton Theme
- Add new form - Wire up events to performs immediate redraw
1 parent 376c56b commit c475f52

8 files changed

Lines changed: 2232 additions & 4 deletions

File tree

Elucidate/Elucidate/Elucidate.csproj

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
</AssemblyInfoVersionSettings>
3333
<PrimaryVersionType>AssemblyVersionAttribute</PrimaryVersionType>
3434
<AssemblyInfoFilePath>Properties\AssemblyInfo.cs</AssemblyInfoFilePath>
35-
<AssemblyVersion>19.2.948.17</AssemblyVersion>
35+
<AssemblyVersion>19.2.952.17</AssemblyVersion>
3636
<UpdatePackageVersion>False</UpdatePackageVersion>
3737
<AssemblyInfoVersionType>SettingsVersion</AssemblyInfoVersionType>
3838
<InheritWinAppVersionFrom>None</InheritWinAppVersionFrom>
@@ -131,6 +131,12 @@
131131
<Compile Include="ExtendedToolkit\KryptonCommandLinkButtonDesigner.cs" />
132132
<Compile Include="ExtendedToolkit\KryptonCommandLinkVersion1.cs" />
133133
<Compile Include="ExtendedToolkit\ViewDrawCommandLinkButton.cs" />
134+
<Compile Include="Forms\ThemeSelector.cs">
135+
<SubType>Form</SubType>
136+
</Compile>
137+
<Compile Include="Forms\ThemeSelector.designer.cs">
138+
<DependentUpon>ThemeSelector.cs</DependentUpon>
139+
</Compile>
134140
<Compile Include="HelperClasses\AdvancedSettingsHelper.cs" />
135141
<Compile Include="CmdLine\CheckVerb.cs" />
136142
<Compile Include="CmdLine\DiffVerb.cs" />
@@ -223,6 +229,9 @@
223229
<EmbeddedResource Include="Controls\LiveRunLogControl.resx">
224230
<DependentUpon>LiveRunLogControl.cs</DependentUpon>
225231
</EmbeddedResource>
232+
<EmbeddedResource Include="Forms\ThemeSelector.resx">
233+
<DependentUpon>ThemeSelector.cs</DependentUpon>
234+
</EmbeddedResource>
226235
<EmbeddedResource Include="TabPages\CommonTab.resx">
227236
<DependentUpon>CommonTab.cs</DependentUpon>
228237
</EmbeddedResource>

Elucidate/Elucidate/Forms/ElucidateForm.Designer.cs

Lines changed: 14 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Elucidate/Elucidate/Forms/ElucidateForm.cs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,15 @@ public ElucidateForm()
6363
Properties.Settings.Default.Save();
6464
}
6565
WindowLocation.GeometryFromString(Properties.Settings.Default.WindowLocation, this);
66+
if (Enum.TryParse(Properties.Settings.Default.Theme, out PaletteModeManager value))
67+
{
68+
RecalcNonClient();
69+
kryptonManager1.GlobalPaletteMode = value;
70+
}
71+
72+
// Hook into changes in the global palette
73+
KryptonManager.GlobalPaletteChanged += OnPaletteChanged;
74+
6675
}
6776

6877
private void ElucidateForm_Load(object sender, EventArgs e)
@@ -239,6 +248,15 @@ private void showMeTheLatestReleaseStatsToolStripMenuItem_Click(object sender, E
239248
}
240249
#endregion Menu Handlers
241250

251+
private void OnPaletteChanged(object sender, EventArgs e)
252+
{
253+
// persist our geometry string.
254+
RecalcNonClient();
255+
Properties.Settings.Default.Theme = kryptonManager1.GlobalPaletteMode.ToString();
256+
Properties.Settings.Default.Save();
257+
}
258+
259+
242260
private void ElucidateForm_ResizeEnd(object sender, EventArgs e)
243261
{
244262
// persist our geometry string.
@@ -326,5 +344,13 @@ private void tabControl_SelectedPageChanged(object sender, EventArgs e)
326344
}
327345
Log.Trace("tabControl_SelectedPageChanged - OUT");
328346
}
347+
348+
private void changeTheThemeToolStripMenuItem_Click(object sender, EventArgs e)
349+
{
350+
using (ThemeSelector ts = new ThemeSelector())
351+
{
352+
ts.ShowDialog(this);
353+
}
354+
}
329355
}
330356
}

Elucidate/Elucidate/Forms/ElucidateForm.resx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,9 @@
123123
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
124124
<value>17, 17</value>
125125
</metadata>
126+
<metadata name="kryptonManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
127+
<value>229, 15</value>
128+
</metadata>
126129
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
127130
<value>57</value>
128131
</metadata>
Lines changed: 182 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,182 @@
1+
// *****************************************************************************
2+
//
3+
// © Component Factory Pty Ltd 2012 - 2019 - 2019. All rights reserved.
4+
// The software and associated documentation supplied hereunder are the
5+
// proprietary information of Component Factory Pty Ltd, PO Box 1504,
6+
// Glen Waverley, Vic 3150, Australia and are supplied subject to licence terms.
7+
//
8+
// Version 5.470.0.0 www.ComponentFactory.com
9+
// *****************************************************************************
10+
11+
using System;
12+
using ComponentFactory.Krypton.Toolkit;
13+
14+
namespace Elucidate.Forms
15+
{
16+
public partial class ThemeSelector : KryptonForm
17+
{
18+
public ThemeSelector()
19+
{
20+
InitializeComponent();
21+
}
22+
23+
protected override void Dispose(bool disposing)
24+
{
25+
if (disposing)
26+
{
27+
// Remember to unhook from static event, otherwise
28+
// this object cannot be garbage collected later on
29+
KryptonManager.GlobalPaletteChanged -= OnPaletteChanged;
30+
31+
if (components != null)
32+
{
33+
components.Dispose();
34+
}
35+
}
36+
base.Dispose(disposing);
37+
}
38+
39+
private void Form2_Load(object sender, EventArgs e)
40+
{
41+
// Set correct initial radio button setting
42+
UpdateRadioButtons();
43+
44+
// Hook into changes in the global palette
45+
KryptonManager.GlobalPaletteChanged += OnPaletteChanged;
46+
}
47+
48+
private void radio2010Blue_CheckedChanged(object sender, EventArgs e)
49+
{
50+
if (radio2010Blue.Checked)
51+
{
52+
kryptonManager.GlobalPaletteMode = PaletteModeManager.Office2010Blue;
53+
}
54+
}
55+
56+
private void radio2010Silver_CheckedChanged(object sender, EventArgs e)
57+
{
58+
if (radio2010Silver.Checked)
59+
{
60+
kryptonManager.GlobalPaletteMode = PaletteModeManager.Office2010Silver;
61+
}
62+
}
63+
64+
private void radio2010Black_CheckedChanged(object sender, EventArgs e)
65+
{
66+
if (radio2010Black.Checked)
67+
{
68+
kryptonManager.GlobalPaletteMode = PaletteModeManager.Office2010Black;
69+
}
70+
}
71+
72+
private void radio2007Blue_CheckedChanged(object sender, EventArgs e)
73+
{
74+
if (radio2007Blue.Checked)
75+
{
76+
kryptonManager.GlobalPaletteMode = PaletteModeManager.Office2007Blue;
77+
}
78+
}
79+
80+
private void radio2007Silver_CheckedChanged(object sender, EventArgs e)
81+
{
82+
if (radio2007Silver.Checked)
83+
{
84+
kryptonManager.GlobalPaletteMode = PaletteModeManager.Office2007Silver;
85+
}
86+
}
87+
88+
private void radio2007Black_CheckedChanged(object sender, EventArgs e)
89+
{
90+
if (radio2007Black.Checked)
91+
{
92+
kryptonManager.GlobalPaletteMode = PaletteModeManager.Office2007Black;
93+
}
94+
}
95+
96+
private void radioSparkleBlue_CheckedChanged(object sender, EventArgs e)
97+
{
98+
if (radioSparkleBlue.Checked)
99+
{
100+
kryptonManager.GlobalPaletteMode = PaletteModeManager.SparkleBlue;
101+
}
102+
}
103+
104+
private void radioSparkleOrange_CheckedChanged(object sender, EventArgs e)
105+
{
106+
if (radioSparkleOrange.Checked)
107+
{
108+
kryptonManager.GlobalPaletteMode = PaletteModeManager.SparkleOrange;
109+
}
110+
}
111+
112+
private void radioSparklePurple_CheckedChanged(object sender, EventArgs e)
113+
{
114+
if (radioSparklePurple.Checked)
115+
{
116+
kryptonManager.GlobalPaletteMode = PaletteModeManager.SparklePurple;
117+
}
118+
}
119+
120+
private void radioOffice2003_CheckedChanged(object sender, EventArgs e)
121+
{
122+
if (radioOffice2003.Checked)
123+
{
124+
kryptonManager.GlobalPaletteMode = PaletteModeManager.ProfessionalOffice2003;
125+
}
126+
}
127+
128+
private void radioSystem_CheckedChanged(object sender, EventArgs e)
129+
{
130+
if (radioSystem.Checked)
131+
{
132+
kryptonManager.GlobalPaletteMode = PaletteModeManager.ProfessionalSystem;
133+
}
134+
}
135+
136+
private void OnPaletteChanged(object sender, EventArgs e)
137+
{
138+
// Update buttons to reflect the new palette setting
139+
UpdateRadioButtons();
140+
}
141+
142+
private void UpdateRadioButtons()
143+
{
144+
switch (kryptonManager.GlobalPaletteMode)
145+
{
146+
case PaletteModeManager.Office2010Blue:
147+
radio2010Blue.Checked = true;
148+
break;
149+
case PaletteModeManager.Office2010Silver:
150+
radio2010Silver.Checked = true;
151+
break;
152+
case PaletteModeManager.Office2010Black:
153+
radio2010Black.Checked = true;
154+
break;
155+
case PaletteModeManager.Office2007Blue:
156+
radio2007Blue.Checked = true;
157+
break;
158+
case PaletteModeManager.Office2007Silver:
159+
radio2007Silver.Checked = true;
160+
break;
161+
case PaletteModeManager.Office2007Black:
162+
radio2007Black.Checked = true;
163+
break;
164+
case PaletteModeManager.SparkleBlue:
165+
radioSparkleBlue.Checked = true;
166+
break;
167+
case PaletteModeManager.SparkleOrange:
168+
radioSparkleOrange.Checked = true;
169+
break;
170+
case PaletteModeManager.SparklePurple:
171+
radioSparklePurple.Checked = true;
172+
break;
173+
case PaletteModeManager.ProfessionalOffice2003:
174+
radioOffice2003.Checked = true;
175+
break;
176+
case PaletteModeManager.ProfessionalSystem:
177+
radioSystem.Checked = true;
178+
break;
179+
}
180+
}
181+
}
182+
}

0 commit comments

Comments
 (0)