1 |
using System; |
2 |
using System.Collections.Generic; |
3 |
using System.Linq; |
4 |
using System.Text; |
5 |
|
6 |
namespace NexusPowerControl |
7 |
{ |
8 |
|
9 |
|
10 |
|
11 |
public interface IThemeLoader |
12 |
{ |
13 |
bool LoadThemeOrDefault(string ThemeName); |
14 |
//bool LoadCustomTheme(string ThemeName, string ThemeXml); |
15 |
ThemeLoader.ThemeDefinition GetLoadedTheme(); |
16 |
} |
17 |
public class ThemeLoader : IThemeLoader |
18 |
{ |
19 |
|
20 |
private ThemeLoader.ThemeDefinition LoadedTheme; |
21 |
public ThemeLoader() |
22 |
{ |
23 |
this.LoadedTheme = new ThemeDefinition(); |
24 |
this.LoadThemeOrDefault(ThemeDefinition.DefaultTheme); |
25 |
} |
26 |
#region IThemeLoader Members |
27 |
public bool LoadThemeOrDefault(string ThemeName) |
28 |
{ |
29 |
this.LoadedTheme = new ThemeDefinition(ThemeName); |
30 |
return LoadedTheme.ThemeLoaded; |
31 |
} |
32 |
public ThemeLoader.ThemeDefinition GetLoadedTheme() |
33 |
{ |
34 |
return (this.LoadedTheme == null) ? new ThemeDefinition() : this.LoadedTheme; |
35 |
} |
36 |
#endregion |
37 |
|
38 |
#region sub-classes |
39 |
public class ThemeDefinition |
40 |
{ |
41 |
private const string ThemeDirectory = "theme"; |
42 |
|
43 |
public const string DefaultTheme = "AeroLowRes"; |
44 |
public ThemeDefinition() : this(ThemeDefinition.DefaultTheme) { } |
45 |
public ThemeDefinition(string ThemeXml) { this.LoadTheme(ThemeXml); } |
46 |
|
47 |
private void LoadTheme(string theme) { if (theme.ToLower().Contains(".xml")) { this.LoadCustomTheme(theme); } else { this.LoadStandardTheme(theme); } } |
48 |
|
49 |
private void LoadStandardTheme(string theme) |
50 |
{ |
51 |
// load theme in format: theme/<themname>/theme.xml : will throw file not found excetion (use default) |
52 |
} |
53 |
private void LoadCustomTheme(string theme) |
54 |
{ |
55 |
// load theme in format: <theme xml file>: will throw file not found excetion (use default) |
56 |
} |
57 |
public bool ThemeLoaded { get; set; } |
58 |
} |
59 |
#endregion |
60 |
} |
61 |
} |