/[NexusPowerControl]/trunk/NexusPowerControl/ThemeLoader.cs
ViewVC logotype

Diff of /trunk/NexusPowerControl/ThemeLoader.cs

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 9 by william, Sat Oct 22 09:46:14 2011 UTC revision 21 by william, Tue Oct 25 07:13:09 2011 UTC
# Line 50  namespace NexusPowerControl Line 50  namespace NexusPowerControl
50          }          }
51          public interface IThemeDefinition          public interface IThemeDefinition
52          {          {
53              bool ThemeLoaded { get; set; }              bool ThemeLoaded { get; }
54              string MainImage { get; set; }              string MainImage { get; set; }
55              string ShutdownImage { get; set; }              string ShutdownImage { get; set; }
56              string RestartImage { get; set; }              string RestartImage { get; set; }
# Line 61  namespace NexusPowerControl Line 61  namespace NexusPowerControl
61          }          }
62          public class ThemeDefinition : IThemeDefinition          public class ThemeDefinition : IThemeDefinition
63          {          {
64              private const string MissingImage = "missing.png";              //private const string MissingImage = "missing.png";
65              private const string ThemeDirectory = "theme";              //private const string ThemeDirectory = "theme";
66              private const string ThemeFile = "theme.xml";              //private const string ThemeFile = "theme.xml";
67    
68              public const string DefaultTheme = "AeroLowRes";              public const string DefaultTheme = "AeroLowRes";
69              public ThemeDefinition() : this(ThemeDefinition.DefaultTheme) { }              public ThemeDefinition() : this(ThemeDefinition.DefaultTheme) { }
# Line 71  namespace NexusPowerControl Line 71  namespace NexusPowerControl
71    
72              private void init()              private void init()
73              {              {
74                  this.ThemeLoaded = false;                  //this.ThemeLoaded = false;
75                  this.MainImage = "";                  this.MainImage = "";
76                  this.ShutdownImage = "";                  this.ShutdownImage = "";
77                  this.RestartImage = "";                  this.RestartImage = "";
# Line 86  namespace NexusPowerControl Line 86  namespace NexusPowerControl
86              private void LoadStandardTheme(string theme)              private void LoadStandardTheme(string theme)
87              {              {
88                  // load theme in format: theme/<themname>/theme.xml : will throw file not found excetion (use default)                  // load theme in format: theme/<themname>/theme.xml : will throw file not found excetion (use default)
89                  string xml_file = string.Format(@"{0}\{1}\{2}", ThemeDirectory, theme, ThemeFile);                  string xml_file = string.Format(@"{0}\{1}\{2}", ThemeConstants.ThemeDirectory, theme, ThemeConstants.ThemeFile);
90                  this.LoadCustomTheme(xml_file);                  this.LoadCustomTheme(xml_file);
91              }              }
92              private void LoadCustomTheme(string theme)              private void LoadCustomTheme(string theme)
93              {              {
94                  // load theme in format: <theme xml file>: will throw file not found excetion (use default)                  // load theme in format: <theme xml file>: will throw file not found excetion (use default)
95                  try { if (!File.Exists(theme)) { throw new FileNotFoundException(theme); } else { try { this.ReadThemeXml(theme); } catch { this.ThemeLoaded = false; return; } } this.ThemeLoaded = true; }                  try { if (!File.Exists(theme)) { throw new FileNotFoundException(theme); } else { try { this.ReadThemeXml(theme); } catch {  return; } } }
96                  catch (FileNotFoundException) { this.ThemeLoaded = false; }                  catch (FileNotFoundException) { }//this.ThemeLoaded = false; }
97                  catch (Exception) { this.ThemeLoaded = false; }                  catch (Exception) { }//this.ThemeLoaded = false; }
98              }              }
99    
100              private void ReadThemeXml(string theme_xml)              private void ReadThemeXml(string theme_xml)
# Line 118  namespace NexusPowerControl Line 118  namespace NexusPowerControl
118                                  case ThemeElements.restart: this.RestartImage =BuildThemeImageURI(theme_xml, r.GetAttribute("value")); break;                                  case ThemeElements.restart: this.RestartImage =BuildThemeImageURI(theme_xml, r.GetAttribute("value")); break;
119                                  case ThemeElements.shutdown: this.ShutdownImage =BuildThemeImageURI(theme_xml, r.GetAttribute("value")); break;                                  case ThemeElements.shutdown: this.ShutdownImage =BuildThemeImageURI(theme_xml, r.GetAttribute("value")); break;
120                                  case ThemeElements.sleep: this.SleepImage = BuildThemeImageURI(theme_xml, r.GetAttribute("value")); break;                                  case ThemeElements.sleep: this.SleepImage = BuildThemeImageURI(theme_xml, r.GetAttribute("value")); break;
121                                  default: BuildThemeImageURI(ThemeDirectory,MissingImage); break;                                                                  //default: this.ThemeLoaded = false; break;                                
122                              }                              }
123                          }                          }
124                      }                      }
# Line 133  namespace NexusPowerControl Line 133  namespace NexusPowerControl
133                  fs = new FileInfo(fullpath);                  fs = new FileInfo(fullpath);
134                  if (!fs.Exists)                  if (!fs.Exists)
135                  {                  {
136                      fs = new FileInfo(ThemeDirectory);                      //fs = new FileInfo(ThemeConstants.ThemeDirectory);
137                      fullpath = string.Format(@"{0}\{1}\{2}", fs.DirectoryName, ThemeDirectory, MissingImage);                      //fullpath = string.Format(@"{0}\{1}\{2}", fs.DirectoryName, ThemeConstants.ThemeDirectory, MissingImage);
138                        fullpath = "";
139                        //this.ThemeLoaded = false;
140                  }                  }
141                  return fullpath;                  return fullpath;
142              }              }
143    
144              #region IThemeDefinition Members              #region IThemeDefinition Members
145              public bool ThemeLoaded { get; set; }              public bool ThemeLoaded {
146                    get
147                    {
148                        return (
149                            this.MainImage != "" &&
150                            this.ShutdownImage != "" &&
151                            this.RestartImage != "" &&
152                            this.LogoffImage != "" &&
153                            this.LockScreenImage != "" &&
154                            this.SleepImage != "" &&
155                            this.CloseImage != "");
156                    }
157                }
158              public string MainImage { get; set; }              public string MainImage { get; set; }
159              public string ShutdownImage { get; set; }              public string ShutdownImage { get; set; }
160              public string RestartImage { get; set; }              public string RestartImage { get; set; }

Legend:
Removed from v.9  
changed lines
  Added in v.21

  ViewVC Help
Powered by ViewVC 1.1.22