private static void LoadColors(XPathNavigator navigator, int SkinIndex) { Skin skin = _Skins[SkinIndex]; List <SColorF> PlayerColors = new List <SColorF>(); float value = 0f; int i = 1; while (CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/R", navigator, ref value)) { SColorF color = new SColorF(); color.R = value; CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/G", navigator, ref color.G); CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/B", navigator, ref color.B); CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/A", navigator, ref color.A); PlayerColors.Add(color); i++; } skin.ThemeColors.Player = PlayerColors.ToArray(); List <SColorScheme> ColorScheme = new List <SColorScheme>(); List <string> names = CHelper.GetValuesFromXML("ColorSchemes", navigator); foreach (string str in names) { SColorScheme scheme = new SColorScheme(); scheme.Name = str; CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/R", navigator, ref scheme.Color.R); CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/G", navigator, ref scheme.Color.G); CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/B", navigator, ref scheme.Color.B); CHelper.TryGetFloatValueFromXML("//root/ColorSchemes/" + str + "/A", navigator, ref scheme.Color.A); ColorScheme.Add(scheme); } skin.ThemeColors.ColorSchemes = ColorScheme.ToArray(); _Skins[SkinIndex] = skin; }
/// <summary> /// Loads all cover which are defined in the cover config file. /// </summary> private static void LoadCover(string coverThemeName) { SCoverTheme coverTheme = new SCoverTheme(); coverTheme = CoverTheme(coverThemeName); if (coverTheme.Name != String.Empty) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; try { xPathDoc = new XPathDocument(Path.Combine(CSettings.sFolderCover, coverTheme.File)); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception) { loaded = false; if (navigator != null) { navigator = null; } if (xPathDoc != null) { xPathDoc = null; } } if (loaded) { lock (_MutexCover) { _Cover.Clear(); List <string> cover = CHelper.GetValuesFromXML("Cover", navigator); for (int i = 0; i < cover.Count; i++) { SCover sk = new SCover(); string name = String.Empty; string value = String.Empty; CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Name", navigator, ref name, String.Empty); CHelper.GetValueFromXML("//root/Cover/" + cover[i] + "/Path", navigator, ref value, String.Empty); sk.Name = name; sk.Value = Path.Combine(coverTheme.Folder, value); if (File.Exists(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value)))) { sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.sFolderCover, Path.Combine(coverTheme.Folder, value))); } else { sk.Texture = _NoCover; } _Cover.Add(sk); if (sk.Name == "NoCover") { _NoCover = sk.Texture; } } } } CHelper Helper = new CHelper(); List <string> files = new List <string>(); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.png", true, true)); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.jpg", true, true)); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.jpeg", true, true)); files.AddRange(Helper.ListFiles(Path.Combine(CSettings.sFolderCover, coverTheme.Folder), "*.bmp", true, true)); foreach (string file in files) { string name = Path.GetFileNameWithoutExtension(file); if (!CoverExists(name)) { SCover sk = new SCover(); string value = String.Empty; sk.Name = name; sk.Value = Path.Combine(coverTheme.Folder, Path.GetFileName(file)); sk.Texture = CDraw.AddTexture(Path.Combine(CSettings.sFolderCover, sk.Value)); _Cover.Add(sk); } } } }
private static void LoadLanguageFile(string FileName) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; SLanguage lang = new SLanguage(); lang.LanguageFilePath = Path.Combine(CSettings.sFolderLanguages, FileName); try { xPathDoc = new XPathDocument(lang.LanguageFilePath); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception e) { loaded = false; if (navigator != null) { navigator = null; } if (xPathDoc != null) { xPathDoc = null; } CLog.LogError("Error opening Language File " + FileName + ": " + e.Message); } if (loaded) { string value = string.Empty; if (CHelper.GetValueFromXML("//root/Info/Name", navigator, ref value, value)) { lang.Name = value; if (lang.Name == CSettings.FallbackLanguage) { _FallbackLanguage = _Languages.Count; } lang.Texts = new Hashtable(); List <string> texts = CHelper.GetValuesFromXML("Texts", navigator); for (int i = 0; i < texts.Count; i++) { if (CHelper.GetValueFromXML("//root/Texts/" + texts[i], navigator, ref value, value)) { try { lang.Texts.Add(texts[i], value); } catch (Exception e) { CLog.LogError("Error reading Language File " + FileName + ": " + e.Message); } } } _Languages.Add(lang); } } }
public static void ListSkins() { CHelper Helper = new CHelper(); int themeIndex = GetThemeIndex(); _Skins.Clear(); if (themeIndex < 0) { CLog.LogError("Error List Skins. Can't find Theme: " + CConfig.Theme); return; } Theme theme = _Themes[themeIndex]; string path = Path.Combine(theme.Path, theme.SkinFolder); List <string> files = Helper.ListFiles(path, "*.xml", false); foreach (string file in files) { bool loaded = false; XPathDocument xPathDoc = null; XPathNavigator navigator = null; try { xPathDoc = new XPathDocument(Path.Combine(path, file)); navigator = xPathDoc.CreateNavigator(); loaded = true; } catch (Exception e) { CLog.LogError("Error loading skin " + file + ": " + e.Message); loaded = false; if (navigator != null) { navigator = null; } if (xPathDoc != null) { xPathDoc = null; } } if (loaded) { Skin skin = new Skin(); int version = 0; CHelper.TryGetIntValueFromXML("//root/SkinSystemVersion", navigator, ref version); if (version == SkinSystemVersion) { CHelper.GetValueFromXML("//root/Info/Name", navigator, ref skin.Name, String.Empty); if (skin.Name != String.Empty) { CHelper.GetValueFromXML("//root/Info/Author", navigator, ref skin.Author, String.Empty); CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMajor", navigator, ref skin.SkinVersionMajor); CHelper.TryGetIntValueFromXML("//root/Info/SkinVersionMinor", navigator, ref skin.SkinVersionMinor); skin.Path = path; skin.FileName = file; skin.SkinList = new Dictionary <string, SkinElement>(); List <string> names = CHelper.GetValuesFromXML("Skins", navigator); foreach (string str in names) { SkinElement sk = new SkinElement(); sk.Name = str; sk.Value = String.Empty; skin.SkinList[str] = sk; } skin.VideoList = new List <SkinElement>(); names = CHelper.GetValuesFromXML("Videos", navigator); foreach (string str in names) { SkinElement sk = new SkinElement(); sk.Name = str; sk.Value = String.Empty; skin.VideoList.Add(sk); } _Skins.Add(skin); } } else { string msg = "Can't load Skin \"" + file + "\", "; if (version < SkinSystemVersion) { msg += "the file ist outdated! "; } else { msg += "the file is for newer program versions! "; } msg += "Current SkinSystemVersion is " + SkinSystemVersion.ToString(); CLog.LogError(msg); } } } }