Added CXMLReader for all XML-reading operations

Added GetIntValueRange to force a value to be in a specific range
This commit is contained in:
Flamefire committed 2013-02-21 17:07:09 +01:00
1 parent 1a644ab22c
commit 506d98bd3c
30 files changed
+1107 -1302

No files matched your search

+141 -179
View File
@@ -6,7 +6,6 @@ using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using OpenTK.Platform;
@@ -123,196 +122,159 @@ namespace Vocaluxe.Base
public static bool LoadConfig()
{
#region Inits
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(CSettings.sFileConfig);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(CSettings.sFileConfig);
}
catch (Exception)
catch (Exception e)
{
CLog.LogError("Error opening Config.xml (FileName: " + CSettings.sFileConfig);
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Config.xml " + CSettings.sFileConfig + ": " + e.Message);
return false;
}
#endregion Inits
if (loaded)
string value = string.Empty;
#region Debug
xPathHelper.TryGetEnumValue<EDebugLevel>("//root/Debug/DebugLevel", ref DebugLevel);
#endregion Debug
#region Graphics
xPathHelper.TryGetEnumValue<ERenderer>("//root/Graphics/Renderer", ref Renderer);
xPathHelper.TryGetEnumValue<ETextureQuality>("//root/Graphics/TextureQuality", ref TextureQuality);
xPathHelper.TryGetIntValueRange("//root/Graphics/CoverSize", ref CoverSize, 32, 1024);
xPathHelper.TryGetIntValue("//root/Graphics/ScreenW", ref ScreenW);
xPathHelper.TryGetIntValue("//root/Graphics/ScreenH", ref ScreenH);
xPathHelper.TryGetEnumValue<EAntiAliasingModes>("//root/Graphics/AAMode", ref AAMode);
xPathHelper.TryGetEnumValue<EColorDeep>("//root/Graphics/Colors", ref Colors);
xPathHelper.TryGetFloatValue("//root/Graphics/MaxFPS", ref MaxFPS);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Graphics/VSync", ref VSync);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Graphics/FullScreen", ref FullScreen);
xPathHelper.TryGetFloatValue("//root/Graphics/FadeTime", ref FadeTime);
#endregion Graphics
#region Theme
xPathHelper.GetValue("//root/Theme/Name", ref Theme, Theme);
xPathHelper.GetValue("//root/Theme/Skin", ref Skin, Skin);
xPathHelper.GetValue("//root/Theme/Cover", ref CoverTheme, CoverTheme);
xPathHelper.TryGetEnumValue("//root/Theme/DrawNoteLines", ref DrawNoteLines);
xPathHelper.TryGetEnumValue("//root/Theme/DrawToneHelper", ref DrawToneHelper);
xPathHelper.TryGetEnumValue("//root/Theme/TimerLook", ref TimerLook);
xPathHelper.TryGetEnumValue("//root/Theme/PlayerInfo", ref PlayerInfo);
xPathHelper.TryGetEnumValue("//root/Theme/FadePlayerInfo", ref FadePlayerInfo);
xPathHelper.TryGetEnumValue("//root/Theme/CoverLoading", ref CoverLoading);
xPathHelper.TryGetEnumValue("//root/Theme/LyricStyle", ref LyricStyle);
#endregion Theme
#region Sound
xPathHelper.TryGetEnumValue<EPlaybackLib>("//root/Sound/PlayBackLib", ref PlayBackLib);
xPathHelper.TryGetEnumValue<ERecordLib>("//root/Sound/RecordLib", ref RecordLib);
xPathHelper.TryGetEnumValue<EBufferSize>("//root/Sound/AudioBufferSize", ref AudioBufferSize);
xPathHelper.TryGetIntValueRange("//root/Sound/AudioLatency", ref AudioLatency, -500, 500);
xPathHelper.TryGetEnumValue("//root/Sound/BackgroundMusic", ref BackgroundMusic);
xPathHelper.TryGetIntValueRange("//root/Sound/BackgroundMusicVolume", ref BackgroundMusicVolume);
xPathHelper.TryGetEnumValue("//root/Sound/BackgroundMusicSource", ref BackgroundMusicSource);
xPathHelper.TryGetIntValueRange("//root/Sound/PreviewMusicVolume", ref PreviewMusicVolume);
xPathHelper.TryGetIntValueRange("//root/Sound/GameMusicVolume", ref GameMusicVolume);
#endregion Sound
#region Game
// Songfolder
value = string.Empty;
int i = 1;
while (xPathHelper.GetValue("//root/Game/SongFolder" + i.ToString(), ref value, value))
{
string value = string.Empty;
if (i == 1)
SongFolder.Clear();
#region Debug
CHelper.TryGetEnumValueFromXML<EDebugLevel>("//root/Debug/DebugLevel", navigator, ref DebugLevel);
#endregion Debug
#region Graphics
CHelper.TryGetEnumValueFromXML<ERenderer>("//root/Graphics/Renderer", navigator, ref Renderer);
CHelper.TryGetEnumValueFromXML<ETextureQuality>("//root/Graphics/TextureQuality", navigator, ref TextureQuality);
CHelper.TryGetIntValueFromXML("//root/Graphics/CoverSize", navigator, ref CoverSize);
if (CoverSize > 1024)
CoverSize = 1024;
if (CoverSize < 32)
CoverSize = 32;
CHelper.TryGetIntValueFromXML("//root/Graphics/ScreenW", navigator, ref ScreenW);
CHelper.TryGetIntValueFromXML("//root/Graphics/ScreenH", navigator, ref ScreenH);
CHelper.TryGetEnumValueFromXML<EAntiAliasingModes>("//root/Graphics/AAMode", navigator, ref AAMode);
CHelper.TryGetEnumValueFromXML<EColorDeep>("//root/Graphics/Colors", navigator, ref Colors);
CHelper.TryGetFloatValueFromXML("//root/Graphics/MaxFPS", navigator, ref MaxFPS);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Graphics/VSync", navigator, ref VSync);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Graphics/FullScreen", navigator, ref FullScreen);
CHelper.TryGetFloatValueFromXML("//root/Graphics/FadeTime", navigator, ref FadeTime);
#endregion Graphics
#region Theme
CHelper.GetValueFromXML("//root/Theme/Name", navigator, ref Theme, Theme);
CHelper.GetValueFromXML("//root/Theme/Skin", navigator, ref Skin, Skin);
CHelper.GetValueFromXML("//root/Theme/Cover", navigator, ref CoverTheme, CoverTheme);
CHelper.TryGetEnumValueFromXML("//root/Theme/DrawNoteLines", navigator, ref DrawNoteLines);
CHelper.TryGetEnumValueFromXML("//root/Theme/DrawToneHelper", navigator, ref DrawToneHelper);
CHelper.TryGetEnumValueFromXML("//root/Theme/TimerLook", navigator, ref TimerLook);
CHelper.TryGetEnumValueFromXML("//root/Theme/PlayerInfo", navigator, ref PlayerInfo);
CHelper.TryGetEnumValueFromXML("//root/Theme/FadePlayerInfo", navigator, ref FadePlayerInfo);
CHelper.TryGetEnumValueFromXML("//root/Theme/CoverLoading", navigator, ref CoverLoading);
CHelper.TryGetEnumValueFromXML("//root/Theme/LyricStyle", navigator, ref LyricStyle);
#endregion Theme
#region Sound
CHelper.TryGetEnumValueFromXML<EPlaybackLib>("//root/Sound/PlayBackLib", navigator, ref PlayBackLib);
CHelper.TryGetEnumValueFromXML<ERecordLib>("//root/Sound/RecordLib", navigator, ref RecordLib);
CHelper.TryGetEnumValueFromXML<EBufferSize>("//root/Sound/AudioBufferSize", navigator, ref AudioBufferSize);
CHelper.TryGetIntValueFromXML("//root/Sound/AudioLatency", navigator, ref AudioLatency);
if (AudioLatency < -500)
AudioLatency = -500;
if (AudioLatency > 500)
AudioLatency = 500;
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusic", navigator, ref BackgroundMusic);
CHelper.TryGetIntValueFromXML("//root/Sound/BackgroundMusicVolume", navigator, ref BackgroundMusicVolume);
if (BackgroundMusicVolume < 0)
BackgroundMusicVolume = 0;
if (BackgroundMusicVolume > 100)
BackgroundMusicVolume = 100;
CHelper.TryGetEnumValueFromXML("//root/Sound/BackgroundMusicSource", navigator, ref BackgroundMusicSource);
CHelper.TryGetIntValueFromXML("//root/Sound/PreviewMusicVolume", navigator, ref PreviewMusicVolume);
if (PreviewMusicVolume < 0)
PreviewMusicVolume = 0;
if (PreviewMusicVolume > 100)
PreviewMusicVolume = 100;
CHelper.TryGetIntValueFromXML("//root/Sound/GameMusicVolume", navigator, ref GameMusicVolume);
if (GameMusicVolume < 0)
GameMusicVolume = 0;
if (GameMusicVolume > 100)
GameMusicVolume = 100;
#endregion Sound
#region Game
// Songfolder
SongFolder.Add(value);
value = string.Empty;
int i = 1;
while(CHelper.GetValueFromXML("//root/Game/SongFolder" + i.ToString(), navigator, ref value, value))
{
if (i == 1)
SongFolder.Clear();
SongFolder.Add(value);
value = string.Empty;
i++;
}
CHelper.TryGetEnumValueFromXML<ESongMenu>("//root/Game/SongMenu", navigator, ref SongMenu);
CHelper.TryGetEnumValueFromXML<ESongSorting>("//root/Game/SongSorting", navigator, ref SongSorting);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Game/IgnoreArticles", navigator, ref IgnoreArticles);
CHelper.TryGetFloatValueFromXML("//root/Game/ScoreAnimationTime", navigator, ref ScoreAnimationTime);
CHelper.TryGetEnumValueFromXML<ETimerMode>("//root/Game/TimerMode", navigator, ref TimerMode);
CHelper.TryGetIntValueFromXML("//root/Game/NumPlayer", navigator, ref NumPlayer);
CHelper.TryGetEnumValueFromXML("//root/Game/Tabs", navigator, ref Tabs);
CHelper.GetValueFromXML("//root/Game/Language", navigator, ref Language, Language);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Game/LyricsOnTop", navigator, ref LyricsOnTop);
if ((ScoreAnimationTime > 0 && ScoreAnimationTime < 1) || ScoreAnimationTime < 0)
{
ScoreAnimationTime = 1;
}
if (NumPlayer < 1 || NumPlayer > CSettings.MaxNumPlayer)
NumPlayer = 2;
List<string> _Languages = new List<string>();
_Languages = CLanguage.GetLanguages();
bool _LangExists = false;
for (i = 0; i < _Languages.Count; i++)
{
if (_Languages[i] == Language)
{
_LangExists = true;
}
}
//TODO: What should we do, if English not exists?
if(_LangExists == false){
Language = "English";
}
CLanguage.SetLanguage(Language);
//Read players from config
for (i = 1; i <= CSettings.MaxNumPlayer; i++)
{
CHelper.GetValueFromXML("//root/Game/Players/Player" + i.ToString(), navigator, ref Players[i-1], string.Empty);
}
#endregion Game
#region Video
CHelper.TryGetEnumValueFromXML<EVideoDecoder>("//root/Video/VideoDecoder", navigator, ref VideoDecoder);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideoBackgrounds", navigator, ref VideoBackgrounds);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideoPreview", navigator, ref VideoPreview);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideosInSongs", navigator, ref VideosInSongs);
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Video/VideosToBackground", navigator, ref VideosToBackground);
CHelper.TryGetEnumValueFromXML<EWebcamLib>("//root/Video/WebcamLib", navigator, ref WebcamLib);
WebcamConfig = new SWebcamConfig();
CHelper.GetValueFromXML("//root/Video/WebcamConfig/MonikerString", navigator, ref WebcamConfig.MonikerString, String.Empty);
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Framerate", navigator, ref WebcamConfig.Framerate);
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Width", navigator, ref WebcamConfig.Width);
CHelper.TryGetIntValueFromXML("//root/Video/WebcamConfig/Height", navigator, ref WebcamConfig.Height);
#endregion Video
#region Record
MicConfig = new SMicConfig[CSettings.MaxNumPlayer];
value = string.Empty;
for (int p = 1; p <= CSettings.MaxNumPlayer; p++)
{
MicConfig[p - 1] = new SMicConfig(0);
CHelper.GetValueFromXML("//root/Record/MicConfig" + p.ToString() + "/DeviceName", navigator, ref MicConfig[p - 1].DeviceName, String.Empty);
CHelper.GetValueFromXML("//root/Record/MicConfig" + p.ToString() + "/DeviceDriver", navigator, ref MicConfig[p - 1].DeviceDriver, String.Empty);
CHelper.GetValueFromXML("//root/Record/MicConfig" + p.ToString() + "/InputName", navigator, ref MicConfig[p - 1].InputName, String.Empty);
CHelper.TryGetIntValueFromXML("//root/Record/MicConfig" + p.ToString() + "/Channel", navigator, ref MicConfig[p - 1].Channel);
}
CHelper.TryGetIntValueFromXML("//root/Record/MicDelay", navigator, ref MicDelay);
MicDelay = (int)(20 * Math.Round(MicDelay / 20.0));
if (MicDelay < 0)
MicDelay = 0;
if (MicDelay > 500)
MicDelay = 500;
#endregion Record
return true;
i++;
}
else return false;
xPathHelper.TryGetEnumValue<ESongMenu>("//root/Game/SongMenu", ref SongMenu);
xPathHelper.TryGetEnumValue<ESongSorting>("//root/Game/SongSorting", ref SongSorting);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Game/IgnoreArticles", ref IgnoreArticles);
xPathHelper.TryGetFloatValue("//root/Game/ScoreAnimationTime", ref ScoreAnimationTime);
xPathHelper.TryGetEnumValue<ETimerMode>("//root/Game/TimerMode", ref TimerMode);
xPathHelper.TryGetIntValue("//root/Game/NumPlayer", ref NumPlayer);
xPathHelper.TryGetEnumValue("//root/Game/Tabs", ref Tabs);
xPathHelper.GetValue("//root/Game/Language", ref Language, Language);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Game/LyricsOnTop", ref LyricsOnTop);
if ((ScoreAnimationTime > 0 && ScoreAnimationTime < 1) || ScoreAnimationTime < 0)
{
ScoreAnimationTime = 1;
}
if (NumPlayer < 1 || NumPlayer > CSettings.MaxNumPlayer)
NumPlayer = 2;
List<string> _Languages = new List<string>();
_Languages = CLanguage.GetLanguages();
bool _LangExists = false;
for (i = 0; i < _Languages.Count; i++)
{
if (_Languages[i] == Language)
{
_LangExists = true;
}
}
//TODO: What should we do, if English not exists?
if(_LangExists == false){
Language = "English";
}
CLanguage.SetLanguage(Language);
//Read players from config
for (i = 1; i <= CSettings.MaxNumPlayer; i++)
{
xPathHelper.GetValue("//root/Game/Players/Player" + i.ToString(), ref Players[i - 1], string.Empty);
}
#endregion Game
#region Video
xPathHelper.TryGetEnumValue<EVideoDecoder>("//root/Video/VideoDecoder", ref VideoDecoder);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Video/VideoBackgrounds", ref VideoBackgrounds);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Video/VideoPreview", ref VideoPreview);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Video/VideosInSongs", ref VideosInSongs);
xPathHelper.TryGetEnumValue<EOffOn>("//root/Video/VideosToBackground", ref VideosToBackground);
xPathHelper.TryGetEnumValue<EWebcamLib>("//root/Video/WebcamLib", ref WebcamLib);
WebcamConfig = new SWebcamConfig();
xPathHelper.GetValue("//root/Video/WebcamConfig/MonikerString", ref WebcamConfig.MonikerString, String.Empty);
xPathHelper.TryGetIntValue("//root/Video/WebcamConfig/Framerate", ref WebcamConfig.Framerate);
xPathHelper.TryGetIntValue("//root/Video/WebcamConfig/Width", ref WebcamConfig.Width);
xPathHelper.TryGetIntValue("//root/Video/WebcamConfig/Height", ref WebcamConfig.Height);
#endregion Video
#region Record
MicConfig = new SMicConfig[CSettings.MaxNumPlayer];
value = string.Empty;
for (int p = 1; p <= CSettings.MaxNumPlayer; p++)
{
MicConfig[p - 1] = new SMicConfig(0);
xPathHelper.GetValue("//root/Record/MicConfig" + p.ToString() + "/DeviceName", ref MicConfig[p - 1].DeviceName, String.Empty);
xPathHelper.GetValue("//root/Record/MicConfig" + p.ToString() + "/DeviceDriver", ref MicConfig[p - 1].DeviceDriver, String.Empty);
xPathHelper.GetValue("//root/Record/MicConfig" + p.ToString() + "/InputName", ref MicConfig[p - 1].InputName, String.Empty);
xPathHelper.TryGetIntValue("//root/Record/MicConfig" + p.ToString() + "/Channel", ref MicConfig[p - 1].Channel);
}
xPathHelper.TryGetIntValueRange("//root/Record/MicDelay", ref MicDelay, 0, 500);
MicDelay = (int)(20 * Math.Round(MicDelay / 20.0));
#endregion Record
return true;
}
public static bool SaveConfig()
+9 -46
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu;
@@ -164,32 +163,14 @@ namespace Vocaluxe.Base
foreach (string file in files)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper = CXMLReader.OpenFile(Path.Combine(path, file));
try
{
xPathDoc = new XPathDocument(Path.Combine(path, file));
navigator = xPathDoc.CreateNavigator();
loaded = true;
}
catch (Exception)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
}
if (loaded)
if (xPathHelper != null)
{
SCoverTheme coverTheme = new SCoverTheme();
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref coverTheme.Name, String.Empty);
CHelper.GetValueFromXML("//root/Info/Folder", navigator, ref coverTheme.Folder, String.Empty);
xPathHelper.GetValue("//root/Info/Name", ref coverTheme.Name, String.Empty);
xPathHelper.GetValue("//root/Info/Folder", ref coverTheme.Folder, String.Empty);
if (coverTheme.Folder != String.Empty && coverTheme.Name != String.Empty)
{
@@ -213,39 +194,21 @@ namespace Vocaluxe.Base
if (coverTheme.Name != String.Empty)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper = CXMLReader.OpenFile(Path.Combine(CSettings.sFolderCover, coverTheme.File));
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)
if (xPathHelper != null)
{
lock (_MutexCover)
{
_Cover.Clear();
List<string> cover = CHelper.GetValuesFromXML("Cover", navigator);
List<string> cover = xPathHelper.GetValues("Cover");
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);
xPathHelper.GetValue("//root/Cover/" + cover[i] + "/Name", ref name, String.Empty);
xPathHelper.GetValue("//root/Cover/" + cover[i] + "/Path", 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))))
+68 -81
View File
@@ -9,7 +9,6 @@ using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu;
@@ -674,92 +673,80 @@ namespace Vocaluxe.Base
/// <returns></returns>
private static bool LoadFontList()
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(System.IO.Path.Combine(CSettings.sFolderFonts, CSettings.sFileFonts));
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(System.IO.Path.Combine(CSettings.sFolderFonts, CSettings.sFileFonts));
}
catch (Exception e)
{
CLog.LogError("Error loading default fonts: " + e.Message);
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
return false;
}
_Fonts.Clear();
if (loaded)
string value = string.Empty;
int i = 1;
while (xPathHelper.GetValue("//root/Font" + i.ToString() + "/Folder", ref value, value))
{
string value = string.Empty;
int i = 1;
while (CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/Folder", navigator, ref value, value))
{
string Folder = value;
string Folder = value;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileNormal", navigator, ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
CFont f = new CFont(value);
SFont sf = new SFont();
sf.Normal = f;
xPathHelper.GetValue("//root/Font" + i.ToString() + "/FileNormal", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
CFont f = new CFont(value);
SFont sf = new SFont();
sf.Normal = f;
string name = String.Empty;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/Name", navigator, ref name, value);
sf.Name = name;
sf.IsThemeFont = false;
sf.ThemeName = String.Empty;
sf.PartyModeID = -1;
string name = String.Empty;
xPathHelper.GetValue("//root/Font" + i.ToString() + "/Name", ref name, value);
sf.Name = name;
sf.IsThemeFont = false;
sf.ThemeName = String.Empty;
sf.PartyModeID = -1;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileItalic", navigator, ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value);
sf.Italic = f;
xPathHelper.GetValue("//root/Font" + i.ToString() + "/FileItalic", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value);
sf.Italic = f;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileBold", navigator, ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value);
sf.Bold = f;
xPathHelper.GetValue("//root/Font" + i.ToString() + "/FileBold", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value);
sf.Bold = f;
CHelper.GetValueFromXML("//root/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value);
sf.BoldItalic = f;
xPathHelper.GetValue("//root/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
value = Path.Combine(Directory.GetCurrentDirectory(),
Path.Combine(CSettings.sFolderFonts, Path.Combine(Folder, value)));
f = new CFont(value);
sf.BoldItalic = f;
sf.Outline = 0f;
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
sf.Outline = 0f;
xPathHelper.TryGetFloatValue("//root/Font" + i.ToString() + "/Outline", ref sf.Outline);
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
CHelper.TryGetFloatValueFromXML("//root/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
xPathHelper.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
xPathHelper.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
xPathHelper.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
xPathHelper.TryGetFloatValue("//root/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
_Fonts.Add(sf);
i++;
}
_Fonts.Add(sf);
i++;
}
return loaded;
return true;
}
/// <summary>
/// Loads theme fonts from skin file
/// </summary>
public static void LoadThemeFonts(string ThemeName, string FontFolder, XPathNavigator navigator)
public static void LoadThemeFonts(string ThemeName, string FontFolder, CXMLReader xPathHelper)
{
string value = string.Empty;
int i = 1;
while (CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Folder", navigator, ref value, value))
while (xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/Folder", ref value, value))
{
SFont sf = new SFont();
sf.Folder = value;
@@ -770,42 +757,42 @@ namespace Vocaluxe.Base
bool ok = true;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileNormal", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileNormal", ref value, value);
sf.FileNormal = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
CFont f = new CFont(value);
sf.Normal = f;
string name = String.Empty;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Name", navigator, ref name, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/Name", ref name, value);
sf.Name = name;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileItalic", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileItalic", ref value, value);
sf.FileItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value);
sf.Italic = f;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBold", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBold", ref value, value);
sf.FileBold = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value);
sf.Bold = f;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
sf.FileBoldItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value);
sf.BoldItalic = f;
sf.Outline = 0f;
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/Outline", ref sf.Outline);
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
if (ok)
_Fonts.Add(sf);
@@ -890,11 +877,11 @@ namespace Vocaluxe.Base
/// <summary>
/// Loads party mode fonts from skin file
/// </summary>
public static void LoadPartyModeFonts(int PartyModeID, string FontFolder, XPathNavigator navigator)
public static void LoadPartyModeFonts(int PartyModeID, string FontFolder, CXMLReader xPathHelper)
{
string value = string.Empty;
int i = 1;
while (CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Folder", navigator, ref value, value))
while (xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/Folder", ref value, value))
{
SFont sf = new SFont();
sf.Folder = value;
@@ -905,42 +892,42 @@ namespace Vocaluxe.Base
bool ok = true;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileNormal", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileNormal", ref value, value);
sf.FileNormal = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
CFont f = new CFont(value);
sf.Normal = f;
string name = String.Empty;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/Name", navigator, ref name, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/Name", ref name, value);
sf.Name = name;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileItalic", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileItalic", ref value, value);
sf.FileItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value);
sf.Italic = f;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBold", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBold", ref value, value);
sf.FileBold = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value);
sf.Bold = f;
ok &= CHelper.GetValueFromXML("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", navigator, ref value, value);
ok &= xPathHelper.GetValue("//root/Fonts/Font" + i.ToString() + "/FileBoldItalic", ref value, value);
sf.FileBoldItalic = value;
value = Path.Combine(FontFolder, Path.Combine(sf.Folder, value));
f = new CFont(value);
sf.BoldItalic = f;
sf.Outline = 0f;
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/Outline", navigator, ref sf.Outline);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/Outline", ref sf.Outline);
sf.OutlineColor = new SColorF(0f, 0f, 0f, 1f);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", navigator, ref sf.OutlineColor.R);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", navigator, ref sf.OutlineColor.G);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", navigator, ref sf.OutlineColor.B);
ok &= CHelper.TryGetFloatValueFromXML("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", navigator, ref sf.OutlineColor.A);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorR", ref sf.OutlineColor.R);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorG", ref sf.OutlineColor.G);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorB", ref sf.OutlineColor.B);
ok &= xPathHelper.TryGetFloatValue("//root/Fonts/Font" + i.ToString() + "/OutlineColorA", ref sf.OutlineColor.A);
if (ok)
_Fonts.Add(sf);
+62 -85
View File
@@ -4,7 +4,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu;
@@ -241,125 +240,103 @@ namespace Vocaluxe.Base
private static bool LoadPartyLanguageFile(int PartyModeID, string file)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(file);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(file);
}
catch (Exception e)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Party Language File " + file + ": " + e.Message);
return false;
}
if (loaded)
string value = string.Empty;
if (xPathHelper.GetValue("//resources/string[@name='language']", ref value, value))
{
string value = string.Empty;
if (loaded == CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value))
{
int nr = GetLanguageNr(value);
int nr = GetLanguageNr(value);
if (nr == -1)
return true;
SPartyLanguage lang = new SPartyLanguage();
lang.PartyModeID = PartyModeID;
lang.Texts = new Hashtable();
List<string> texts = CHelper.GetAttributesFromXML("resources", navigator, "name");
for (int i = 0; i < texts.Count; i++)
{
if (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value))
{
try
{
lang.Texts.Add(texts[i], value);
}
catch (Exception e)
{
CLog.LogError("Error reading Party Language File " + file + ": " + e.Message);
return false;
}
}
}
_Languages[nr].PartyModeTexts.Add(lang);
if (nr == -1)
return true;
SPartyLanguage lang = new SPartyLanguage();
lang.PartyModeID = PartyModeID;
lang.Texts = new Hashtable();
List<string> texts = xPathHelper.GetAttributes("resources", "name");
for (int i = 0; i < texts.Count; i++)
{
if (xPathHelper.GetValue("//resources/string[@name='" + texts[i] + "']", ref value, value))
{
try
{
lang.Texts.Add(texts[i], value);
}
catch (Exception e)
{
CLog.LogError("Error reading Party Language File " + file + ": " + e.Message);
return false;
}
}
}
_Languages[nr].PartyModeTexts.Add(lang);
return true;
}
else
{
CLog.LogError("Error reading Party Language File " + file);
return false;
}
CLog.LogError("Error reading Party Language File " + file);
return false;
}
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);
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(lang.LanguageFilePath);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(lang.LanguageFilePath);
}
catch (Exception e)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Language File " + FileName + ": " + e.Message);
CLog.LogError("Error opening Language File " + FileName + ": " + e.Message);
return;
}
if (loaded)
string value = string.Empty;
if (xPathHelper.GetValue("//resources/string[@name='language']", ref value, value))
{
string value = string.Empty;
if (CHelper.GetValueFromXML("//resources/string[@name='language']", navigator, ref value, value))
lang.Name = value;
if (lang.Name == CSettings.FallbackLanguage)
_FallbackLanguage = _Languages.Count;
lang.Texts = new Hashtable();
lang.PartyModeTexts = new List<SPartyLanguage>();
List<string> texts = xPathHelper.GetAttributes("resources", "name");
for (int i = 0; i < texts.Count; i++)
{
lang.Name = value;
if (lang.Name == CSettings.FallbackLanguage)
_FallbackLanguage = _Languages.Count;
lang.Texts = new Hashtable();
lang.PartyModeTexts = new List<SPartyLanguage>();
List<string> texts = CHelper.GetAttributesFromXML("resources", navigator, "name");
for (int i = 0; i < texts.Count; i++)
if (xPathHelper.GetValue("//resources/string[@name='" + texts[i] + "']", ref value, value))
{
if (CHelper.GetValueFromXML("//resources/string[@name='" + texts[i] + "']", navigator, ref value, value))
try
{
try
{
lang.Texts.Add(texts[i], value);
}
catch (Exception e)
{
CLog.LogError("Error reading Language File " + FileName + ": " + e.Message);
}
lang.Texts.Add(texts[i], value);
}
catch (Exception e)
{
CLog.LogError("Error reading Language File " + FileName + ": " + e.Message);
}
}
_Languages.Add(lang);
}
_Languages.Add(lang);
}
}
+27 -39
View File
@@ -4,8 +4,6 @@ using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu;
using Vocaluxe.PartyModes;
@@ -224,53 +222,31 @@ namespace Vocaluxe.Base
pm.ScreenFiles = new List<string>();
pm.NoErrors = false;
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(file);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(file);
}
catch (Exception e)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening party mode file " + file + ": " + e.Message);
return pm;
}
if (loaded)
{
loaded &= CHelper.TryGetIntValueFromXML("//root/PartyModeSystemVersion", navigator, ref pm.PartyModeSystemVersion);
loaded &= CHelper.GetValueFromXML("//root/Info/Name", navigator, ref pm.Name, "ERROR Name");
loaded &= CHelper.GetValueFromXML("//root/Info/Description", navigator, ref pm.Description, "ERROR Description");
loaded &= CHelper.GetValueFromXML("//root/Info/Author", navigator, ref pm.Author, "ERROR Author");
loaded &= CHelper.GetValueFromXML("//root/Info/Folder", navigator, ref pm.Folder, "ERROR Folder");
loaded &= CHelper.GetValueFromXML("//root/Info/PartyModeFile", navigator, ref pm.PartyModeFile, "ERROR PartyModeFile");
loaded &= CHelper.GetInnerValuesFromXML("PartyScreens", navigator, ref pm.ScreenFiles);
loaded &= CHelper.TryGetIntValueFromXML("//root/Info/PartyModeVersionMajor", navigator, ref pm.PartyModeVersionMajor);
loaded &= CHelper.TryGetIntValueFromXML("//root/Info/PartyModeVersionMinor", navigator, ref pm.PartyModeVersionMinor);
loaded &= CHelper.GetValueFromXML("//root/Info/TargetAudience", navigator, ref pm.TargetAudience, "ERROR TargetAudience");
bool loaded = true;
if (pm.PartyModeSystemVersion != PartyModeSystemVersion)
{
CLog.LogError("Error loading PartyMode file (wrong PartyModeSystemVersion): " + file);
return pm;
}
if (pm.ScreenFiles.Count == 0)
{
CLog.LogError("Error loading PartyMode file (no ScreenFiles found): " + file);
return pm;
}
}
loaded &= xPathHelper.TryGetIntValue("//root/PartyModeSystemVersion", ref pm.PartyModeSystemVersion);
loaded &= xPathHelper.GetValue("//root/Info/Name", ref pm.Name, "ERROR Name");
loaded &= xPathHelper.GetValue("//root/Info/Description", ref pm.Description, "ERROR Description");
loaded &= xPathHelper.GetValue("//root/Info/Author", ref pm.Author, "ERROR Author");
loaded &= xPathHelper.GetValue("//root/Info/Folder", ref pm.Folder, "ERROR Folder");
loaded &= xPathHelper.GetValue("//root/Info/PartyModeFile", ref pm.PartyModeFile, "ERROR PartyModeFile");
loaded &= xPathHelper.GetInnerValues("PartyScreens", ref pm.ScreenFiles);
loaded &= xPathHelper.TryGetIntValue("//root/Info/PartyModeVersionMajor", ref pm.PartyModeVersionMajor);
loaded &= xPathHelper.TryGetIntValue("//root/Info/PartyModeVersionMinor", ref pm.PartyModeVersionMinor);
loaded &= xPathHelper.GetValue("//root/Info/TargetAudience", ref pm.TargetAudience, "ERROR TargetAudience");
if (!loaded)
{
@@ -278,6 +254,18 @@ namespace Vocaluxe.Base
return pm;
}
if (pm.PartyModeSystemVersion != PartyModeSystemVersion)
{
CLog.LogError("Error loading PartyMode file (wrong PartyModeSystemVersion): " + file);
return pm;
}
if (pm.ScreenFiles.Count == 0)
{
CLog.LogError("Error loading PartyMode file (no ScreenFiles found): " + file);
return pm;
}
string PathToCode = Path.Combine(Path.Combine(CSettings.sFolderPartyModes, pm.Folder), CSettings.sFolderPartyModeCode);
List<string> FilesToCompile = new List<string>();
-2
View File
@@ -3,8 +3,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Text.RegularExpressions;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Playlist;
using Vocaluxe.GameModes;
+27 -41
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu;
@@ -359,59 +358,46 @@ namespace Vocaluxe.Base
private static void LoadProfile(string FileName)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
SProfile profile = new SProfile();
profile.ProfileFile = Path.Combine(CSettings.sFolderProfiles, FileName);
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(profile.ProfileFile);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(profile.ProfileFile);
}
catch (Exception e)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Profile File " + FileName + ": " + e.Message);
CLog.LogError("Error opening Profile File " + FileName + ": " + e.Message);
return;
}
if (loaded)
string value = String.Empty;
if (xPathHelper.GetValue("//root/Info/PlayerName", ref value, value))
{
string value = String.Empty;
if (CHelper.GetValueFromXML("//root/Info/PlayerName", navigator, ref value, value))
profile.PlayerName = value;
profile.Difficulty = EGameDifficulty.TR_CONFIG_EASY;
xPathHelper.TryGetEnumValue<EGameDifficulty>("//root/Info/Difficulty", ref profile.Difficulty);
profile.Avatar = new SAvatar(-1);
if (xPathHelper.GetValue("//root/Info/Avatar", ref value, value))
{
profile.PlayerName = value;
profile.Difficulty = EGameDifficulty.TR_CONFIG_EASY;
CHelper.TryGetEnumValueFromXML<EGameDifficulty>("//root/Info/Difficulty", navigator, ref profile.Difficulty);
profile.Avatar = new SAvatar(-1);
if (CHelper.GetValueFromXML("//root/Info/Avatar", navigator, ref value, value))
{
profile.Avatar = GetAvatar(value);
}
profile.GuestProfile = EOffOn.TR_CONFIG_OFF;
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Info/GuestProfile", navigator, ref profile.GuestProfile);
profile.Active = EOffOn.TR_CONFIG_ON;
CHelper.TryGetEnumValueFromXML<EOffOn>("//root/Info/Active", navigator, ref profile.Active);
_Profiles.Add(profile);
}
else
{
CLog.LogError("Can't find PlayerName in Profile File: " + FileName);
profile.Avatar = GetAvatar(value);
}
profile.GuestProfile = EOffOn.TR_CONFIG_OFF;
xPathHelper.TryGetEnumValue<EOffOn>("//root/Info/GuestProfile", ref profile.GuestProfile);
profile.Active = EOffOn.TR_CONFIG_ON;
xPathHelper.TryGetEnumValue<EOffOn>("//root/Info/Active", ref profile.Active);
_Profiles.Add(profile);
}
else
{
CLog.LogError("Can't find PlayerName in Profile File: " + FileName);
}
}
#endregion private methods
+168 -218
View File
@@ -4,7 +4,6 @@ using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu;
@@ -148,80 +147,68 @@ namespace Vocaluxe.Base
public static bool LoadSkin(int SkinIndex)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName));
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(Path.Combine(_Skins[SkinIndex].Path, _Skins[SkinIndex].FileName));
}
catch (Exception e)
{
CLog.LogError("Error loading skin " + _Skins[SkinIndex].FileName + ": " + e.Message);
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
return false;
}
if (loaded)
string value = String.Empty;
// load skins/textures
List<string> keys = new List<string>(_Skins[SkinIndex].SkinList.Keys);
foreach (string name in keys)
{
string value = String.Empty;
// load skins/textures
List<string> keys = new List<string>(_Skins[SkinIndex].SkinList.Keys);
foreach (string name in keys)
try
{
try
{
CHelper.GetValueFromXML("//root/Skins/" + name, navigator, ref value, String.Empty);
SkinElement sk = _Skins[SkinIndex].SkinList[name];
sk.Value = value;
sk.VideoIndex = -1;
sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
_Skins[SkinIndex].SkinList[name] = sk;
}
catch (Exception e)
{
MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
}
xPathHelper.GetValue("//root/Skins/" + name, ref value, String.Empty);
SkinElement sk = _Skins[SkinIndex].SkinList[name];
sk.Value = value;
sk.VideoIndex = -1;
sk.Texture = CDraw.AddTexture(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
_Skins[SkinIndex].SkinList[name] = sk;
}
// load videos
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
catch (Exception e)
{
try
{
CHelper.GetValueFromXML("//root/Videos/" + _Skins[SkinIndex].VideoList[i].Name, navigator, ref value, String.Empty);
SkinElement sk = new SkinElement();
sk.Name = _Skins[SkinIndex].VideoList[i].Name;
sk.Value = value;
sk.VideoIndex = CVideo.VdLoad(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
CVideo.VdSetLoop(sk.VideoIndex, true);
CVideo.VdPause(sk.VideoIndex);
sk.Texture = new STexture(-1);
_Skins[SkinIndex].VideoList[i] = sk;
}
catch (Exception e)
{
MessageBox.Show("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
CLog.LogError("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
}
MessageBox.Show("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
CLog.LogError("Error on loading texture \"" + name + "\": " + e.Message + e.StackTrace);
}
// load colors
LoadColors(navigator, SkinIndex);
}
return loaded;
// load videos
for (int i = 0; i < _Skins[SkinIndex].VideoList.Count; i++)
{
try
{
xPathHelper.GetValue("//root/Videos/" + _Skins[SkinIndex].VideoList[i].Name, ref value, String.Empty);
SkinElement sk = new SkinElement();
sk.Name = _Skins[SkinIndex].VideoList[i].Name;
sk.Value = value;
sk.VideoIndex = CVideo.VdLoad(Path.Combine(_Skins[SkinIndex].Path, sk.Value));
CVideo.VdSetLoop(sk.VideoIndex, true);
CVideo.VdPause(sk.VideoIndex);
sk.Texture = new STexture(-1);
_Skins[SkinIndex].VideoList[i] = sk;
}
catch (Exception e)
{
MessageBox.Show("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
CLog.LogError("Error on loading video \"" + _Skins[SkinIndex].VideoList[i].Name + "\": " + e.Message + e.StackTrace);
}
}
// load colors
LoadColors(xPathHelper, SkinIndex);
return true;
}
public static void UnloadSkins()
@@ -271,57 +258,45 @@ namespace Vocaluxe.Base
public static bool LoadTheme(int ThemeIndex)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
if (ThemeIndex < 0 || ThemeIndex >= _Themes.Count)
{
CLog.LogError("Can't find Theme Index " + ThemeIndex.ToString());
return false;
}
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName));
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].FileName));
}
catch (Exception e)
{
CLog.LogError("Error loading theme " + _Themes[ThemeIndex].FileName + ": " + e.Message);
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
return false;
}
if (loaded)
int skinIndex = GetSkinIndex(_Themes[ThemeIndex].PartyModeID);
// Load Cursor
if (_Themes[ThemeIndex].PartyModeID == -1)
LoadCursor(xPathHelper, skinIndex);
// load fonts
if (_Themes[ThemeIndex].PartyModeID == -1)
{
int skinIndex = GetSkinIndex(_Themes[ThemeIndex].PartyModeID);
// Load Cursor
if (_Themes[ThemeIndex].PartyModeID == -1)
LoadCursor(navigator, skinIndex);
// load fonts
if (_Themes[ThemeIndex].PartyModeID == -1)
{
CFonts.LoadThemeFonts(
_Themes[ThemeIndex].Name,
Path.Combine(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].SkinFolder), CSettings.sFolderThemeFonts),
navigator);
}
else
{
CFonts.LoadPartyModeFonts(_Themes[ThemeIndex].PartyModeID,
Path.Combine(_Themes[ThemeIndex].Path, CSettings.sFolderPartyModeFonts),
navigator);
}
CFonts.LoadThemeFonts(
_Themes[ThemeIndex].Name,
Path.Combine(Path.Combine(_Themes[ThemeIndex].Path, _Themes[ThemeIndex].SkinFolder), CSettings.sFolderThemeFonts),
xPathHelper);
}
return loaded;
else
{
CFonts.LoadPartyModeFonts(_Themes[ThemeIndex].PartyModeID,
Path.Combine(_Themes[ThemeIndex].Path, CSettings.sFolderPartyModeFonts),
xPathHelper);
}
return true;
}
public static void SaveTheme()
@@ -445,64 +420,51 @@ namespace Vocaluxe.Base
public static bool AddTheme(string FilePath, int PartyModeID)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(FilePath);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(FilePath);
}
catch (Exception e)
{
CLog.LogError("Error loading theme " + FilePath + ": " + e.Message);
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
return false;
}
if (loaded)
Theme theme = new Theme();
int version = 0;
xPathHelper.TryGetIntValue("//root/ThemeSystemVersion", ref version);
if (version == ThemeSystemVersion)
{
Theme theme = new Theme();
int version = 0;
CHelper.TryGetIntValueFromXML("//root/ThemeSystemVersion", navigator, ref version);
if (version == ThemeSystemVersion)
xPathHelper.GetValue("//root/Info/Name", ref theme.Name, String.Empty);
if (theme.Name != String.Empty)
{
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref theme.Name, String.Empty);
if (theme.Name != String.Empty)
{
CHelper.GetValueFromXML("//root/Info/Author", navigator, ref theme.Author, String.Empty);
CHelper.GetValueFromXML("//root/Info/SkinFolder", navigator, ref theme.SkinFolder, String.Empty);
CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMajor", navigator, ref theme.ThemeVersionMajor);
CHelper.TryGetIntValueFromXML("//root/Info/ThemeVersionMinor", navigator, ref theme.ThemeVersionMinor);
theme.Path = Path.GetDirectoryName(FilePath);
theme.FileName = Path.GetFileName(FilePath);
theme.PartyModeID = PartyModeID;
xPathHelper.GetValue("//root/Info/Author", ref theme.Author, String.Empty);
xPathHelper.GetValue("//root/Info/SkinFolder", ref theme.SkinFolder, String.Empty);
xPathHelper.TryGetIntValue("//root/Info/ThemeVersionMajor", ref theme.ThemeVersionMajor);
xPathHelper.TryGetIntValue("//root/Info/ThemeVersionMinor", ref theme.ThemeVersionMinor);
theme.Path = Path.GetDirectoryName(FilePath);
theme.FileName = Path.GetFileName(FilePath);
theme.PartyModeID = PartyModeID;
_Themes.Add(theme);
}
}
else
{
string msg = "Can't load Theme \"" + FilePath + "\", ";
if (version < ThemeSystemVersion)
msg += "the file ist outdated! ";
else
msg += "the file is for newer program versions! ";
msg += "Current ThemeSystemVersion is " + ThemeSystemVersion.ToString();
CLog.LogError(msg);
loaded = false;
_Themes.Add(theme);
}
}
return loaded;
else
{
string msg = "Can't load Theme \"" + FilePath + "\", ";
if (version < ThemeSystemVersion)
msg += "the file is outdated! ";
else
msg += "the file is for newer program versions! ";
msg += "Current ThemeSystemVersion is " + ThemeSystemVersion.ToString();
CLog.LogError(msg);
}
return true;
}
public static void ListSkins()
@@ -536,82 +498,70 @@ namespace Vocaluxe.Base
foreach (string file in files)
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(Path.Combine(path, file));
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(Path.Combine(path, file));
}
catch (Exception e)
{
CLog.LogError("Error loading skin " + file + ": " + e.Message);
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
continue;
}
if (loaded)
Skin skin = new Skin();
int version = 0;
xPathHelper.TryGetIntValue("//root/SkinSystemVersion", ref version);
if (version == SkinSystemVersion)
{
Skin skin = new Skin();
int version = 0;
CHelper.TryGetIntValueFromXML("//root/SkinSystemVersion", navigator, ref version);
if (version == SkinSystemVersion)
xPathHelper.GetValue("//root/Info/Name", ref skin.Name, String.Empty);
if (skin.Name != String.Empty)
{
CHelper.GetValueFromXML("//root/Info/Name", navigator, ref skin.Name, String.Empty);
if (skin.Name != String.Empty)
xPathHelper.GetValue("//root/Info/Author", ref skin.Author, String.Empty);
xPathHelper.TryGetIntValue("//root/Info/SkinVersionMajor", ref skin.SkinVersionMajor);
xPathHelper.TryGetIntValue("//root/Info/SkinVersionMinor", ref skin.SkinVersionMinor);
skin.Path = path;
skin.FileName = file;
skin.PartyModeID = theme.PartyModeID;
skin.SkinList = new Dictionary<string, SkinElement>();
List<string> names = xPathHelper.GetValues("Skins");
foreach (string str in names)
{
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.PartyModeID = theme.PartyModeID;
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);
SkinElement sk = new SkinElement();
sk.Name = str;
sk.Value = String.Empty;
skin.SkinList[str] = sk;
}
}
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);
skin.VideoList = new List<SkinElement>();
names = xPathHelper.GetValues("Videos");
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);
}
}
}
#endregion Theme and Skin loading and writing
@@ -804,7 +754,7 @@ namespace Vocaluxe.Base
#endregion Theme and Skin index handling
#region Element loading
private static void LoadColors(XPathNavigator navigator, int SkinIndex)
private static void LoadColors(CXMLReader xPathHelper, int SkinIndex)
{
Skin skin = _Skins[SkinIndex];
@@ -814,14 +764,14 @@ namespace Vocaluxe.Base
float value = 0f;
int i = 1;
while (CHelper.TryGetFloatValueFromXML("//root/Colors/Player" + i.ToString() + "/R", navigator, ref value))
while (xPathHelper.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/R", 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);
xPathHelper.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/G", ref color.G);
xPathHelper.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/B", ref color.B);
xPathHelper.TryGetFloatValue("//root/Colors/Player" + i.ToString() + "/A", ref color.A);
PlayerColors.Add(color);
i++;
@@ -830,16 +780,16 @@ namespace Vocaluxe.Base
}
List<SColorScheme> ColorScheme = new List<SColorScheme>();
List<string> names = CHelper.GetValuesFromXML("ColorSchemes", navigator);
List<string> names = xPathHelper.GetValues("ColorSchemes");
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);
xPathHelper.TryGetFloatValue("//root/ColorSchemes/" + str + "/R", ref scheme.Color.R);
xPathHelper.TryGetFloatValue("//root/ColorSchemes/" + str + "/G", ref scheme.Color.G);
xPathHelper.TryGetFloatValue("//root/ColorSchemes/" + str + "/B", ref scheme.Color.B);
xPathHelper.TryGetFloatValue("//root/ColorSchemes/" + str + "/A", ref scheme.Color.A);
ColorScheme.Add(scheme);
}
@@ -848,15 +798,15 @@ namespace Vocaluxe.Base
_Skins[SkinIndex] = skin;
}
private static void LoadCursor(XPathNavigator navigator, int SkinIndex)
private static void LoadCursor(CXMLReader xPathHelper, int SkinIndex)
{
string value = String.Empty;
CHelper.GetValueFromXML("//root/Cursor/Skin", navigator, ref Cursor.SkinName, value);
xPathHelper.GetValue("//root/Cursor/Skin", ref Cursor.SkinName, value);
CHelper.TryGetFloatValueFromXML("//root/Cursor/W", navigator, ref Cursor.w);
CHelper.TryGetFloatValueFromXML("//root/Cursor/H", navigator, ref Cursor.h);
xPathHelper.TryGetFloatValue("//root/Cursor/W", ref Cursor.w);
xPathHelper.TryGetFloatValue("//root/Cursor/H", ref Cursor.h);
if (CHelper.GetValueFromXML("//root/Cursor/Color", navigator, ref value, value))
if (xPathHelper.GetValue("//root/Cursor/Color", ref value, value))
{
SColorF color = GetColor(value, _Skins[SkinIndex].PartyModeID);
Cursor.r = color.R;
@@ -868,10 +818,10 @@ namespace Vocaluxe.Base
else
{
Cursor.color = String.Empty;
CHelper.TryGetFloatValueFromXML("//root/Cursor/R", navigator, ref Cursor.r);
CHelper.TryGetFloatValueFromXML("//root/Cursor/G", navigator, ref Cursor.g);
CHelper.TryGetFloatValueFromXML("//root/Cursor/B", navigator, ref Cursor.b);
CHelper.TryGetFloatValueFromXML("//root/Cursor/A", navigator, ref Cursor.a);
xPathHelper.TryGetFloatValue("//root/Cursor/R", ref Cursor.r);
xPathHelper.TryGetFloatValue("//root/Cursor/G", ref Cursor.g);
xPathHelper.TryGetFloatValue("//root/Cursor/B", ref Cursor.b);
xPathHelper.TryGetFloatValue("//root/Cursor/A", ref Cursor.a);
}
}
#endregion Element loading
-2
View File
@@ -6,8 +6,6 @@ using System.Globalization;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Lib.Draw;
using Vocaluxe.Menu;
+39 -53
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Base;
using Vocaluxe.GameModes;
@@ -122,76 +121,63 @@ namespace Vocaluxe.Lib.Playlist
private void LoadPlaylist()
{
bool loaded = false;
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper;
try
{
xPathDoc = new XPathDocument(PlaylistFile);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(PlaylistFile);
}
catch (Exception e)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
CLog.LogError("Error opening Playlist File " + PlaylistFile + ": " + e.Message);
return;
}
if (loaded)
string value = String.Empty;
if (xPathHelper.GetValue("//root/Info/PlaylistName", ref value, value))
{
string value = String.Empty;
if (CHelper.GetValueFromXML("//root/Info/PlaylistName", navigator, ref value, value))
PlaylistName = value;
Songs = new List<CPlaylistSong>();
List<string> songs = xPathHelper.GetValues("Songs");
string artist = String.Empty;
string title = String.Empty;
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
for (int i = 0; i < songs.Count; i++)
{
PlaylistName = value;
xPathHelper.GetValue("//root/Songs/" + songs[i] + "/Artist", ref artist, String.Empty);
xPathHelper.GetValue("//root/Songs/" + songs[i] + "/Title", ref title, String.Empty);
xPathHelper.TryGetEnumValue<EGameMode>("//root/Songs/" + songs[i] + "/GameMode", ref gm);
Songs = new List<CPlaylistSong>();
CPlaylistSong song = new CPlaylistSong();
song.SongID = -1;
CSong[] AllSongs = CSongs.AllSongs;
List<string> songs = CHelper.GetValuesFromXML("Songs", navigator);
string artist = String.Empty;
string title = String.Empty;
EGameMode gm = EGameMode.TR_GAMEMODE_NORMAL;
for (int i = 0; i < songs.Count; i++)
for (int s = 0; s < AllSongs.Length; s++)
{
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Artist", navigator, ref artist, String.Empty);
CHelper.GetValueFromXML("//root/Songs/" + songs[i] + "/Title", navigator, ref title, String.Empty);
CHelper.TryGetEnumValueFromXML<EGameMode>("//root/Songs/" + songs[i] + "/GameMode", navigator, ref gm);
CPlaylistSong song = new CPlaylistSong();
song.SongID = -1;
CSong[] AllSongs = CSongs.AllSongs;
for (int s = 0; s < AllSongs.Length; s++)
if (AllSongs[s].Artist == artist && AllSongs[s].Title == title)
{
if (AllSongs[s].Artist == artist && AllSongs[s].Title == title)
{
song.SongID = AllSongs[s].ID;
break;
}
}
if (song.SongID != -1)
{
song.GameMode = gm;
Songs.Add(song);
}
else
{
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + PlaylistFile);
song.SongID = AllSongs[s].ID;
break;
}
}
if (song.SongID != -1)
{
song.GameMode = gm;
Songs.Add(song);
}
else
{
CLog.LogError("Can't find song '" + title + "' from '" + artist + "' in playlist file: " + PlaylistFile);
}
}
else
{
CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile);
}
}
else
{
CLog.LogError("Can't find PlaylistName in Playlist File: " + PlaylistFile);
}
}
+9 -10
View File
@@ -4,7 +4,6 @@ using System.Diagnostics;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -55,28 +54,28 @@ namespace Vocaluxe.Menu
#endregion Constructors
#region public
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EBackgroundTypes>(item + "/Type", navigator, ref _Theme.Type);
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EBackgroundTypes>(item + "/Type", ref _Theme.Type);
bool vid = CHelper.GetValueFromXML(item + "/Video", navigator, ref _Theme.VideoName, String.Empty);
bool tex = CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
bool vid = xPathHelper.GetValue(item + "/Video", ref _Theme.VideoName, String.Empty);
bool tex = xPathHelper.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None;
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
bool success = true;
success &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
success &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
success &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
success &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
success &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
success &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
success &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
success &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
if (_Theme.Type != EBackgroundTypes.None)
_ThemeLoaded &= success;
+27 -28
View File
@@ -3,7 +3,6 @@ using System.Drawing;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -135,69 +134,69 @@ namespace Vocaluxe.Menu
SReflectionSpace = button.SReflectionSpace;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinSelected", navigator, ref _Theme.STextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinSelected", ref _Theme.STextureName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
if (xPathHelper.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SR", ref SColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SG", ref SColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SB", ref SColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SA", ref SColor.A);
}
_ThemeLoaded &= Text.LoadTheme(item, "Text", navigator, SkinIndex, true);
_ThemeLoaded &= Text.LoadTheme(item, "Text", xPathHelper, SkinIndex, true);
Text.Z = Rect.Z;
if (CHelper.ItemExistsInXML(item + "/SText", navigator))
if (xPathHelper.ItemExists(item + "/SText"))
{
SelText = true;
_ThemeLoaded &= SText.LoadTheme(item, "SText", navigator, SkinIndex, true);
_ThemeLoaded &= SText.LoadTheme(item, "SText", xPathHelper, SkinIndex, true);
SText.Z = Rect.Z;
}
//Reflections
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
if (xPathHelper.ItemExists(item + "/Reflection"))
{
Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
}
else
Reflection = false;
if (CHelper.ItemExistsInXML(item + "/SReflection", navigator))
if (xPathHelper.ItemExists(item + "/SReflection"))
{
SReflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SReflection/Space", navigator, ref SReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SReflection/Height", navigator, ref SReflectionHeight);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SReflection/Space", ref SReflectionSpace);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SReflection/Height", ref SReflectionHeight);
}
else
SReflection = false;
+24 -25
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -73,57 +72,57 @@ namespace Vocaluxe.Menu
ReflectionHeight = 0f;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/NumBars", navigator, ref _Theme.NumBars);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/NumBars", ref _Theme.NumBars);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Space", navigator, ref Space);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Space", ref Space);
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EEqualizerStyle>(item + "/Style", navigator, ref _Theme.Style);
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EEqualizerStyle>(item + "/Style", ref _Theme.Style);
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EOffOn>(item + "/DrawNegative", navigator, ref _Theme.DrawNegative);
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EOffOn>(item + "/DrawNegative", ref _Theme.DrawNegative);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
if (CHelper.GetValueFromXML(item + "/MaxColor", navigator, ref _Theme.MaxColorName, String.Empty))
if (xPathHelper.GetValue(item + "/MaxColor", ref _Theme.MaxColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxR", navigator, ref MaxColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxG", navigator, ref MaxColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxB", navigator, ref MaxColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/MaxA", navigator, ref MaxColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/MaxR", ref MaxColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/MaxG", ref MaxColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/MaxB", ref MaxColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/MaxA", ref MaxColor.A);
}
//Reflection
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
if (xPathHelper.ItemExists(item + "/Reflection"))
{
Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
}
else
Reflection = false;
-182
View File
@@ -4,8 +4,6 @@ using System.Drawing;
using System.Globalization;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -127,187 +125,7 @@ namespace Vocaluxe.Menu
Rect = new RectangleF(Left, Upper, Rigth - Left, Lower - Upper);
}
public static bool TryGetEnumValueFromXML<T>(string Cast, XPathNavigator Navigator, ref T value)
where T : struct
{
string val = String.Empty;
if (GetValueFromXML(Cast, Navigator, ref val, Enum.GetName(typeof(T), value)))
{
TryParse<T>(val, out value, true);
return true;
}
return false;
}
public static bool TryGetIntValueFromXML(string Cast, XPathNavigator Navigator, ref int value)
{
string val = String.Empty;
if (GetValueFromXML(Cast, Navigator, ref val, value.ToString()))
{
int res = 0;
if (int.TryParse(val, out res))
{
value = res;
return true;
}
}
return false;
}
public static bool TryGetFloatValueFromXML(string Cast, XPathNavigator Navigator, ref float value)
{
string val = String.Empty;
if (GetValueFromXML(Cast, Navigator, ref val, value.ToString()))
{
float res = 0;
if (TryParse(val, out res))
{
value = res;
return true;
}
}
return false;
}
public static bool GetValueFromXML(string Cast, XPathNavigator Navigator, ref string Value, string DefaultValue)
{
XPathNodeIterator iterator;
int results = 0;
string val = string.Empty;
try
{
Navigator.MoveToFirstChild();
iterator = Navigator.Select(Cast);
while (iterator.MoveNext())
{
val = iterator.Current.Value;
results++;
}
}
catch (Exception)
{
results = 0;
}
if ((results == 0) || (results > 1))
{
Value = DefaultValue;
return false;
}
else
{
Value = val;
return true;
}
}
public static List<string> GetValuesFromXML(string Cast, XPathNavigator Navigator)
{
List<string> values = new List<string>();
try
{
Navigator.MoveToRoot();
Navigator.MoveToFirstChild();
Navigator.MoveToFirstChild();
while (Navigator.Name != Cast)
Navigator.MoveToNext();
Navigator.MoveToFirstChild();
values.Add(Navigator.LocalName);
while (Navigator.MoveToNext())
values.Add(Navigator.LocalName);
}
catch (Exception)
{
}
return values;
}
public static List<string> GetAttributesFromXML(string Cast, XPathNavigator Navigator, string attribute)
{
List<string> values = new List<string>();
try
{
Navigator.MoveToRoot();
Navigator.MoveToFirstChild();
while (Navigator.Name != Cast)
Navigator.MoveToNext();
Navigator.MoveToFirstChild();
values.Add(Navigator.LocalName);
while (Navigator.MoveToNext())
values.Add(Navigator.GetAttribute(attribute, ""));
}
catch (Exception)
{
}
return values;
}
public static bool GetInnerValuesFromXML(string Cast, XPathNavigator Navigator, ref List<string> Values)
{
try
{
Navigator.MoveToRoot();
Navigator.MoveToFirstChild();
Navigator.MoveToFirstChild();
while (Navigator.Name != Cast)
Navigator.MoveToNext();
Navigator.MoveToFirstChild();
Values.Add(Navigator.Value);
while (Navigator.MoveToNext())
Values.Add(Navigator.Value);
}
catch
{
return false;
}
return true;
}
public static bool ItemExistsInXML(string Cast, XPathNavigator Navigator)
{
XPathNodeIterator iterator;
int results = 0;
try
{
Navigator.MoveToFirstChild();
iterator = Navigator.Select(Cast);
while (iterator.MoveNext())
results++;
}
catch (Exception)
{
results = 0;
}
if (results == 0)
return false;
return true;
}
public List<string> ListFiles(string path, string cast)
{
+16 -17
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu.SingNotes;
@@ -108,39 +107,39 @@ namespace Vocaluxe.Menu
_Style = ELyricStyle.Fill;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref _X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref _Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref _Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref _MaxW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref _H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref _X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref _Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref _Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref _MaxW);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref _H);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
if (xPathHelper.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref ColorProcessed);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref ColorProcessed.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref ColorProcessed.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref ColorProcessed.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref ColorProcessed.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SR", ref ColorProcessed.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SG", ref ColorProcessed.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SB", ref ColorProcessed.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SA", ref ColorProcessed.A);
}
if (_ThemeLoaded)
+28 -41
View File
@@ -6,7 +6,6 @@ using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu;
using Vocaluxe.Menu.SingNotes;
@@ -176,45 +175,37 @@ namespace Vocaluxe.Menu
{
string file = Path.Combine(XmlPath, _ThemeName + ".xml");
XPathDocument xPathDoc = null;
XPathNavigator navigator = null;
CXMLReader xPathHelper = null;
bool loaded = false;
try
{
xPathDoc = new XPathDocument(file);
navigator = xPathDoc.CreateNavigator();
loaded = true;
xPathHelper = new CXMLReader(file);
}
catch (Exception e)
{
loaded = false;
if (navigator != null)
navigator = null;
if (xPathDoc != null)
xPathDoc = null;
if (xPathHelper != null)
xPathHelper = null;
_Base.Log.LogError("Error loading theme file " + file + ": " + e.Message);
}
bool VersionCheck = false;
if (loaded)
VersionCheck = CheckVersion(_ScreenVersion, navigator);
if (xPathHelper != null)
VersionCheck = CheckVersion(_ScreenVersion, xPathHelper);
int SkinIndex = _Base.Theme.GetSkinIndex(_PartyModeID);
if (loaded && VersionCheck && SkinIndex != -1)
if (xPathHelper != null && VersionCheck && SkinIndex != -1)
{
_ThemePath = XmlPath;
LoadThemeBasics(navigator, SkinIndex);
LoadThemeBasics(xPathHelper, SkinIndex);
if (_ThemeBackgrounds != null)
{
for (int i = 0; i < _ThemeBackgrounds.Length; i++)
{
CBackground background = new CBackground(_Base, _PartyModeID);
if (background.LoadTheme("//root/" + _ThemeName, _ThemeBackgrounds[i], navigator, SkinIndex))
if (background.LoadTheme("//root/" + _ThemeName, _ThemeBackgrounds[i], xPathHelper, SkinIndex))
{
_htBackgrounds.Add(_ThemeBackgrounds[i], AddBackground(background));
}
@@ -230,7 +221,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeStatics.Length; i++)
{
CStatic stat = new CStatic(_Base, _PartyModeID);
if (stat.LoadTheme("//root/" + _ThemeName, _ThemeStatics[i], navigator, SkinIndex))
if (stat.LoadTheme("//root/" + _ThemeName, _ThemeStatics[i], xPathHelper, SkinIndex))
{
_htStatics.Add(_ThemeStatics[i], AddStatic(stat));
}
@@ -246,7 +237,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeTexts.Length; i++)
{
CText text = new CText(_Base, _PartyModeID);
if (text.LoadTheme("//root/" + _ThemeName, _ThemeTexts[i], navigator, SkinIndex))
if (text.LoadTheme("//root/" + _ThemeName, _ThemeTexts[i], xPathHelper, SkinIndex))
{
_htTexts.Add(_ThemeTexts[i], AddText(text));
}
@@ -262,7 +253,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeButtons.Length; i++)
{
CButton button = new CButton(_Base, _PartyModeID);
if (button.LoadTheme("//root/" + _ThemeName, _ThemeButtons[i], navigator, SkinIndex))
if (button.LoadTheme("//root/" + _ThemeName, _ThemeButtons[i], xPathHelper, SkinIndex))
{
_htButtons.Add(_ThemeButtons[i], AddButton(button));
}
@@ -278,7 +269,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeSelectSlides.Length; i++)
{
CSelectSlide slide = new CSelectSlide(_Base, _PartyModeID);
if (slide.LoadTheme("//root/" + _ThemeName, _ThemeSelectSlides[i], navigator, SkinIndex))
if (slide.LoadTheme("//root/" + _ThemeName, _ThemeSelectSlides[i], xPathHelper, SkinIndex))
{
_htSelectSlides.Add(_ThemeSelectSlides[i], AddSelectSlide(slide));
}
@@ -294,7 +285,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeSongMenus.Length; i++)
{
CSongMenu sm = new CSongMenu(_Base, _PartyModeID);
if (sm.LoadTheme("//root/" + _ThemeName, _ThemeSongMenus[i], navigator, SkinIndex))
if (sm.LoadTheme("//root/" + _ThemeName, _ThemeSongMenus[i], xPathHelper, SkinIndex))
{
_htSongMenus.Add(_ThemeSongMenus[i], AddSongMenu(sm));
}
@@ -310,7 +301,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeLyrics.Length; i++)
{
CLyric lyric = new CLyric(_Base, _PartyModeID);
if (lyric.LoadTheme("//root/" + _ThemeName, _ThemeLyrics[i], navigator, SkinIndex))
if (lyric.LoadTheme("//root/" + _ThemeName, _ThemeLyrics[i], xPathHelper, SkinIndex))
{
_htLyrics.Add(_ThemeLyrics[i], AddLyric(lyric));
}
@@ -326,7 +317,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeSingNotes.Length; i++)
{
CSingNotes notes = new CSingNotesClassic(_Base, _PartyModeID);
if (notes.LoadTheme("//root/" + _ThemeName, _ThemeSingNotes[i], navigator, SkinIndex))
if (notes.LoadTheme("//root/" + _ThemeName, _ThemeSingNotes[i], xPathHelper, SkinIndex))
{
_htSingNotes.Add(_ThemeSingNotes[i], AddSingNote(notes));
}
@@ -342,7 +333,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeNameSelections.Length; i++)
{
CNameSelection nsel = new CNameSelection(_Base, _PartyModeID);
if (nsel.LoadTheme("//root/" + _ThemeName, _ThemeNameSelections[i], navigator, SkinIndex))
if (nsel.LoadTheme("//root/" + _ThemeName, _ThemeNameSelections[i], xPathHelper, SkinIndex))
{
_htNameSelections.Add(_ThemeNameSelections[i], AddNameSelection(nsel));
}
@@ -358,7 +349,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeEqualizers.Length; i++)
{
CEqualizer eq = new CEqualizer(_Base, _PartyModeID);
if (eq.LoadTheme("//root/" + _ThemeName, _ThemeEqualizers[i], navigator, SkinIndex))
if (eq.LoadTheme("//root/" + _ThemeName, _ThemeEqualizers[i], xPathHelper, SkinIndex))
{
_htEqualizers.Add(_ThemeEqualizers[i], AddEqualizer(eq));
}
@@ -374,7 +365,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemePlaylists.Length; i++)
{
CPlaylist pls = new CPlaylist(_Base, _PartyModeID);
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], navigator, SkinIndex))
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], xPathHelper, SkinIndex))
{
_htPlaylists.Add(_ThemePlaylists[i], AddPlaylist(pls));
}
@@ -390,7 +381,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeParticleEffects.Length; i++)
{
CParticleEffect pe = new CParticleEffect(_Base, _PartyModeID);
if (pe.LoadTheme("//root/" + _ThemeName, _ThemeParticleEffects[i], navigator, SkinIndex))
if (pe.LoadTheme("//root/" + _ThemeName, _ThemeParticleEffects[i], xPathHelper, SkinIndex))
{
_htParticleEffects.Add(_ThemeParticleEffects[i], AddParticleEffect(pe));
}
@@ -406,7 +397,7 @@ namespace Vocaluxe.Menu
for (int i = 0; i < _ThemeScreenSettings.Length; i++)
{
CScreenSetting se = new CScreenSetting(_Base, _PartyModeID);
if (se.LoadTheme("//root/" + _ThemeName, _ThemeScreenSettings[i], navigator, SkinIndex))
if (se.LoadTheme("//root/" + _ThemeName, _ThemeScreenSettings[i], xPathHelper, SkinIndex))
{
_htScreenSettings.Add(_ThemeScreenSettings[i], AddScreenSetting(se));
}
@@ -417,10 +408,6 @@ namespace Vocaluxe.Menu
}
}
}
else
{
}
}
public virtual void SaveTheme()
@@ -2516,10 +2503,10 @@ namespace Vocaluxe.Menu
}
}
private bool CheckVersion(int Version, XPathNavigator navigator)
private bool CheckVersion(int Version, CXMLReader xPathHelper)
{
int version = 0;
CHelper.TryGetIntValueFromXML("//root/" + _ThemeName + "/ScreenVersion", navigator, ref version);
xPathHelper.TryGetIntValue("//root/" + _ThemeName + "/ScreenVersion", ref version);
if (version == Version)
return true;
@@ -2537,14 +2524,14 @@ namespace Vocaluxe.Menu
return false;
}
private void LoadThemeBasics(XPathNavigator navigator, int SkinIndex)
private void LoadThemeBasics(CXMLReader xPathHelper, int SkinIndex)
{
string value = String.Empty;
// Backgrounds
CBackground background = new CBackground(_Base, _PartyModeID);
int i = 1;
while (background.LoadTheme("//root/" + _ThemeName, "Background" + i.ToString(), navigator, SkinIndex))
while (background.LoadTheme("//root/" + _ThemeName, "Background" + i.ToString(), xPathHelper, SkinIndex))
{
AddBackground(background);
background = new CBackground(_Base, _PartyModeID);
@@ -2554,7 +2541,7 @@ namespace Vocaluxe.Menu
// Statics
CStatic stat = new CStatic(_Base, _PartyModeID);
i = 1;
while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), navigator, SkinIndex))
while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), xPathHelper, SkinIndex))
{
AddStatic(stat);
stat = new CStatic(_Base, _PartyModeID);
@@ -2564,7 +2551,7 @@ namespace Vocaluxe.Menu
// Texts
CText text = new CText(_Base, _PartyModeID);
i = 1;
while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), navigator, SkinIndex))
while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), xPathHelper, SkinIndex))
{
AddText(text);
text = new CText(_Base, _PartyModeID);
@@ -2574,7 +2561,7 @@ namespace Vocaluxe.Menu
// ParticleEffects
CParticleEffect partef = new CParticleEffect(_Base, _PartyModeID);
i = 1;
while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), navigator, SkinIndex))
while (partef.LoadTheme("//root/" + _ThemeName, "ParticleEffect" + i.ToString(), xPathHelper, SkinIndex))
{
AddParticleEffect(partef);
partef = new CParticleEffect(_Base, _PartyModeID);
+29 -30
View File
@@ -2,9 +2,8 @@
using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using System.Windows.Forms;
using System.Xml;
namespace Vocaluxe.Menu
{
@@ -109,54 +108,54 @@ namespace Vocaluxe.Menu
UpdateList(0);
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinEmptyTile", navigator, ref _Theme.TextureEmptyTileName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinEmptyTile", ref _Theme.TextureEmptyTileName, String.Empty);
if (CHelper.GetValueFromXML(item + "/ColorEmptyTile", navigator, ref _Theme.ColorEmptyTileName, String.Empty))
if (xPathHelper.GetValue(item + "/ColorEmptyTile", ref _Theme.ColorEmptyTileName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorEmptyTileName, SkinIndex, ref ColorEmptyTile);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref ColorEmptyTile.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref ColorEmptyTile.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref ColorEmptyTile.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref ColorEmptyTile.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref ColorEmptyTile.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref ColorEmptyTile.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref ColorEmptyTile.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref ColorEmptyTile.A);
}
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinTileSelected", navigator, ref _Theme.TextureTileSelectedName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinTileSelected", ref _Theme.TextureTileSelectedName, String.Empty);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/W", navigator, ref _TileW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/H", navigator, ref _TileH);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumW", navigator, ref _NumW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/Tiles/NumH", navigator, ref _NumH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceW", navigator, ref _SpaceW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/SpaceH", navigator, ref _SpaceH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/Space", navigator, ref _Theme.NameSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/H", navigator, ref _Theme.NameHeight);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Tiles/Name/Font", navigator, ref _Theme.NameFont, "Normal");
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Tiles/Name/Style", navigator, ref _Theme.NameStyle);
if (CHelper.GetValueFromXML(item + "/Tiles/Name/Color", navigator, ref _Theme.NameColorName, String.Empty))
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/Tiles/W", ref _TileW);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/Tiles/H", ref _TileH);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/Tiles/NumW", ref _NumW);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/Tiles/NumH", ref _NumH);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/SpaceW", ref _SpaceW);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/SpaceH", ref _SpaceH);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/Name/Space", ref _Theme.NameSpace);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/Name/H", ref _Theme.NameHeight);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Tiles/Name/Font", ref _Theme.NameFont, "Normal");
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EStyle>(item + "/Tiles/Name/Style", ref _Theme.NameStyle);
if (xPathHelper.GetValue(item + "/Tiles/Name/Color", ref _Theme.NameColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.NameColorName, SkinIndex, ref _Theme.NameColor);
}
else
{
if (CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/R", navigator, ref _Theme.NameColor.R))
if (xPathHelper.TryGetFloatValue(item + "/Tiles/Name/R", ref _Theme.NameColor.R))
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/G", navigator, ref _Theme.NameColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/B", navigator, ref _Theme.NameColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Tiles/Name/A", navigator, ref _Theme.NameColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/Name/G", ref _Theme.NameColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/Name/B", ref _Theme.NameColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Tiles/Name/A", ref _Theme.NameColor.A);
}
}
-2
View File
@@ -5,8 +5,6 @@ using System.Drawing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu;
using Vocaluxe.Menu.SingNotes;
+15 -16
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -381,34 +380,34 @@ namespace Vocaluxe.Menu
Visible = true;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EParticleType>(item + "/Type", navigator, ref _Type);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Size", navigator, ref _Size);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/MaxNumber", navigator, ref _MaxNumber);
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EParticleType>(item + "/Type", ref _Type);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Size", ref _Size);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/MaxNumber", ref _MaxNumber);
if (_ThemeLoaded)
{
+30 -31
View File
@@ -2,9 +2,8 @@
using System.Drawing;
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using System.Windows.Forms;
using System.Xml;
using Vocaluxe.Menu.SongMenu;
@@ -236,57 +235,57 @@ namespace Vocaluxe.Menu
_Interactions.AddButton(_Theme.ButtonPlaylistSing);
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackground", navigator, ref _Theme.TextureBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundSelected", navigator, ref _Theme.STextureBackgroundName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinBackground", ref _Theme.TextureBackgroundName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinBackgroundSelected", ref _Theme.STextureBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
if (CHelper.GetValueFromXML(item + "/ColorBackground", navigator, ref _Theme.ColorBackgroundName, String.Empty))
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
if (xPathHelper.GetValue(item + "/ColorBackground", ref _Theme.ColorBackgroundName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorBackgroundName, SkinIndex, ref BackgroundColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundR", navigator, ref BackgroundColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundG", navigator, ref BackgroundColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundB", navigator, ref BackgroundColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/BackgroundA", navigator, ref BackgroundColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/BackgroundR", ref BackgroundColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/BackgroundG", ref BackgroundColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/BackgroundB", ref BackgroundColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/BackgroundA", ref BackgroundColor.A);
}
if (CHelper.GetValueFromXML(item + "/SColorBackground", navigator, ref _Theme.SColorBackgroundName, String.Empty))
if (xPathHelper.GetValue(item + "/SColorBackground", ref _Theme.SColorBackgroundName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorBackgroundName, SkinIndex, ref BackgroundSColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundR", navigator, ref BackgroundSColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundG", navigator, ref BackgroundSColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundB", navigator, ref BackgroundSColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SBackgroundA", navigator, ref BackgroundSColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SBackgroundR", ref BackgroundSColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SBackgroundG", ref BackgroundSColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SBackgroundB", ref BackgroundSColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SBackgroundA", ref BackgroundSColor.A);
}
_ThemeLoaded &= _Theme.Text1.LoadTheme(item, "TextPart1", navigator, SkinIndex);
_ThemeLoaded &= _Theme.Text1.LoadTheme(item, "TextPart1", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.StaticCover.LoadTheme(item, "StaticCover", navigator, SkinIndex);
_ThemeLoaded &= _Theme.StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", navigator, SkinIndex);
_ThemeLoaded &= _Theme.StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", navigator, SkinIndex);
_ThemeLoaded &= _Theme.StaticCover.LoadTheme(item, "StaticCover", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", navigator, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", navigator, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", navigator, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", navigator, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", navigator, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.SelectSlideGameMode.LoadTheme(item, "SelectSlideGameMode", navigator, SkinIndex);
_ThemeLoaded &= _Theme.SelectSlideGameMode.LoadTheme(item, "SelectSlideGameMode", xPathHelper, SkinIndex);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/EntryHeight", navigator, ref _Theme.EntryHeight);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/EntryHeight", ref _Theme.EntryHeight);
if (_ThemeLoaded)
{
_Theme.Name = ElementName;
+3 -4
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -51,13 +50,13 @@ namespace Vocaluxe.Menu
_ThemeLoaded = ts._ThemeLoaded;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Value", navigator, ref _Theme.Value, String.Empty);
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<ESettingType>(item + "/Type", navigator, ref _Theme.Type);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Value", ref _Theme.Value, String.Empty);
_ThemeLoaded &= xPathHelper.TryGetEnumValue<ESettingType>(item + "/Type", ref _Theme.Type);
if (_ThemeLoaded)
{
+67 -68
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -230,133 +229,133 @@ namespace Vocaluxe.Menu
Visible = slide.Visible;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowLeft", navigator, ref _Theme.TextureArrowLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowRight", navigator, ref _Theme.TextureArrowRightName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinArrowLeft", ref _Theme.TextureArrowLeftName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinArrowRight", ref _Theme.TextureArrowRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinSelected", navigator, ref _Theme.STextureName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowLeftSelected", navigator, ref _Theme.STextureArrowLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinArrowRightSelected", navigator, ref _Theme.STextureArrowRightName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinSelected", ref _Theme.STextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinArrowLeftSelected", ref _Theme.STextureArrowLeftName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinArrowRightSelected", ref _Theme.STextureArrowRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinHighlighted", navigator, ref _Theme.HTextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinHighlighted", ref _Theme.HTextureName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
if (xPathHelper.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SR", ref SColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SG", ref SColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SB", ref SColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SA", ref SColor.A);
}
if (CHelper.GetValueFromXML(item + "/HColor", navigator, ref _Theme.HColorName, String.Empty))
if (xPathHelper.GetValue(item + "/HColor", ref _Theme.HColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.HColorName, SkinIndex, ref HColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HR", navigator, ref HColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HG", navigator, ref HColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HB", navigator, ref HColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/HA", navigator, ref HColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/HR", ref HColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/HG", ref HColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/HB", ref HColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/HA", ref HColor.A);
}
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftX", navigator, ref RectArrowLeft.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftY", navigator, ref RectArrowLeft.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftZ", navigator, ref RectArrowLeft.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftW", navigator, ref RectArrowLeft.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowLeftH", navigator, ref RectArrowLeft.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowLeftX", ref RectArrowLeft.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowLeftY", ref RectArrowLeft.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowLeftZ", ref RectArrowLeft.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowLeftW", ref RectArrowLeft.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowLeftH", ref RectArrowLeft.H);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightX", navigator, ref RectArrowRight.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightY", navigator, ref RectArrowRight.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightZ", navigator, ref RectArrowRight.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightW", navigator, ref RectArrowRight.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowRightH", navigator, ref RectArrowRight.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowRightX", ref RectArrowRight.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowRightY", ref RectArrowRight.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowRightZ", ref RectArrowRight.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowRightW", ref RectArrowRight.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowRightH", ref RectArrowRight.H);
if (CHelper.GetValueFromXML(item + "/ArrowColor", navigator, ref _Theme.ArrowColorName, String.Empty))
if (xPathHelper.GetValue(item + "/ArrowColor", ref _Theme.ArrowColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ArrowColorName, SkinIndex, ref ColorArrow);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowR", navigator, ref ColorArrow.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowG", navigator, ref ColorArrow.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowB", navigator, ref ColorArrow.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowA", navigator, ref ColorArrow.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowR", ref ColorArrow.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowG", ref ColorArrow.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowB", ref ColorArrow.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowA", ref ColorArrow.A);
}
if (CHelper.GetValueFromXML(item + "/ArrowSColor", navigator, ref _Theme.SArrowColorName, String.Empty))
if (xPathHelper.GetValue(item + "/ArrowSColor", ref _Theme.SArrowColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SArrowColorName, SkinIndex, ref SColorArrow);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSR", navigator, ref SColorArrow.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSG", navigator, ref SColorArrow.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSB", navigator, ref SColorArrow.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/ArrowSA", navigator, ref SColorArrow.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowSR", ref SColorArrow.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowSG", ref SColorArrow.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowSB", ref SColorArrow.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/ArrowSA", ref SColorArrow.A);
}
if (CHelper.GetValueFromXML(item + "/TextColor", navigator, ref _Theme.TextColorName, String.Empty))
if (xPathHelper.GetValue(item + "/TextColor", ref _Theme.TextColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.TextColorName, SkinIndex, ref TextColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextR", navigator, ref TextColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextG", navigator, ref TextColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextB", navigator, ref TextColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextA", navigator, ref TextColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextR", ref TextColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextG", ref TextColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextB", ref TextColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextA", ref TextColor.A);
}
if (CHelper.GetValueFromXML(item + "/TextSColor", navigator, ref _Theme.STextColorName, String.Empty))
if (xPathHelper.GetValue(item + "/TextSColor", ref _Theme.STextColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.STextColorName, SkinIndex, ref STextColor);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSR", navigator, ref STextColor.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSG", navigator, ref STextColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSB", navigator, ref STextColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextSA", navigator, ref STextColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextSR", ref STextColor.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextSG", ref STextColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextSB", ref STextColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextSA", ref STextColor.A);
}
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextH", navigator, ref TextH);
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX))
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeX", navigator, ref TextRelativeX);
if(CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY))
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextRelativeY", navigator, ref TextRelativeY);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/TextMaxW", navigator, ref MaxW);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/TextFont", navigator, ref _Theme.TextFont, "Normal");
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/TextStyle", navigator, ref _Theme.TextStyle);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextH", ref TextH);
if(xPathHelper.TryGetFloatValue(item + "/TextRelativeX", ref TextRelativeX))
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextRelativeX", ref TextRelativeX);
if(xPathHelper.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY))
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextRelativeY", ref TextRelativeY);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/TextMaxW", ref MaxW);
_ThemeLoaded &= xPathHelper.GetValue(item + "/TextFont", ref _Theme.TextFont, "Normal");
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EStyle>(item + "/TextStyle", ref _Theme.TextStyle);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/NumVisible", navigator, ref _NumVisible);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/NumVisible", ref _NumVisible);
if (_ThemeLoaded)
{
+15 -16
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -132,36 +131,36 @@ namespace Vocaluxe.Menu
Visible = true;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Skin", navigator, ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Skin", ref _Theme.TextureName, String.Empty);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref Rect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref Rect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref Rect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/W", navigator, ref Rect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref Rect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref Rect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref Rect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref Rect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/W", ref Rect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref Rect.H);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator))
if (xPathHelper.ItemExists(item + "/Reflection"))
{
Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
}
else
Reflection = false;
+26 -27
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -471,63 +470,63 @@ namespace Vocaluxe.Menu
Reflection = false;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
return LoadTheme(XmlPath, ElementName, navigator, SkinIndex, false);
return LoadTheme(XmlPath, ElementName, xPathHelper, SkinIndex, false);
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex, bool ButtonText)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex, bool ButtonText)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/X", navigator, ref _X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Y", navigator, ref _Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/X", ref _X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Y", ref _Y);
if (!ButtonText)
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Z", navigator, ref _Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Z", ref _Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/H", navigator, ref _Height);
CHelper.TryGetFloatValueFromXML(item + "/MaxW", navigator, ref _MaxWidth);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/H", ref _Height);
xPathHelper.TryGetFloatValue(item + "/MaxW", ref _MaxWidth);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref Color.A);
}
if (CHelper.GetValueFromXML(item + "/SColor", navigator, ref _Theme.SColorName, String.Empty))
if (xPathHelper.GetValue(item + "/SColor", ref _Theme.SColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.SColorName, SkinIndex, ref SColor);
}
else
{
if (CHelper.TryGetFloatValueFromXML(item + "/SR", navigator, ref SColor.R))
if (xPathHelper.TryGetFloatValue(item + "/SR", ref SColor.R))
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SG", navigator, ref SColor.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SB", navigator, ref SColor.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SA", navigator, ref SColor.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SG", ref SColor.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SB", ref SColor.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SA", ref SColor.A);
}
}
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EAlignment>(item + "/Align", navigator, ref _Align);
CHelper.TryGetEnumValueFromXML<EHAlignment>(item + "/HAlign", navigator, ref _HAlign);
_ThemeLoaded &= CHelper.TryGetEnumValueFromXML<EStyle>(item + "/Style", navigator, ref _Style);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Font", navigator, ref _Fon, "Normal");
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EAlignment>(item + "/Align", ref _Align);
xPathHelper.TryGetEnumValue<EHAlignment>(item + "/HAlign", ref _HAlign);
_ThemeLoaded &= xPathHelper.TryGetEnumValue<EStyle>(item + "/Style", ref _Style);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Font", ref _Fon, "Normal");
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/Text", navigator, ref _Theme.Text, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/Text", ref _Theme.Text, String.Empty);
if (CHelper.ItemExistsInXML(item + "/Reflection", navigator) && !ButtonText)
if (xPathHelper.ItemExists(item + "/Reflection") && !ButtonText)
{
Reflection = true;
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Space", navigator, ref ReflectionSpace);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/Reflection/Height", navigator, ref ReflectionHeight);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
}
else
Reflection = false;
+221
View File
@@ -0,0 +1,221 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
public class CXMLReader
{
private XPathNavigator _Navigator;
public CXMLReader(string uri)
{
XPathDocument xPathDoc = new XPathDocument(uri);
_Navigator = xPathDoc.CreateNavigator();
}
public XPathNavigator Navigator
{
get { return _Navigator; }
}
public static CXMLReader OpenFile(string sUri)
{
try
{
return new CXMLReader(sUri);
}
catch (Exception)
{
//TODO: How to log from here?
return null;
}
}
public bool TryGetEnumValue<T>(string Cast, ref T value)
where T : struct
{
string val = String.Empty;
if (GetValue(Cast, ref val, Enum.GetName(typeof(T), value)))
{
CHelper.TryParse<T>(val, out value, true);
return true;
}
return false;
}
public bool TryGetIntValue(string Cast, ref int value)
{
string val = String.Empty;
if (GetValue(Cast, ref val, value.ToString()))
{
return int.TryParse(val, out value);
}
return false;
}
public bool TryGetIntValueRange(string Cast,ref int value, int min = 0, int max = 100)
{
bool result = TryGetIntValue(Cast, ref value);
if (result)
{
if (value < min)
value = min;
else if (value > max)
value = max;
}
return result;
}
public bool TryGetFloatValue(string Cast, ref float value)
{
string val = String.Empty;
if (GetValue(Cast, ref val, value.ToString()))
{
return CHelper.TryParse(val, out value);
}
return false;
}
public bool GetValue(string Cast, ref string Value, string DefaultValue)
{
XPathNodeIterator iterator;
int results = 0;
string val = string.Empty;
try
{
_Navigator.MoveToFirstChild();
iterator = _Navigator.Select(Cast);
while (iterator.MoveNext())
{
val = iterator.Current.Value;
results++;
}
}
catch (Exception)
{
results = 0;
}
if ((results == 0) || (results > 1))
{
Value = DefaultValue;
return false;
}
else
{
Value = val;
return true;
}
}
public List<string> GetValues(string Cast)
{
List<string> values = new List<string>();
try
{
_Navigator.MoveToRoot();
_Navigator.MoveToFirstChild();
_Navigator.MoveToFirstChild();
while (_Navigator.Name != Cast)
_Navigator.MoveToNext();
_Navigator.MoveToFirstChild();
values.Add(_Navigator.LocalName);
while (_Navigator.MoveToNext())
values.Add(_Navigator.LocalName);
}
catch (Exception)
{
}
return values;
}
public List<string> GetAttributes(string Cast, string attribute)
{
List<string> values = new List<string>();
try
{
_Navigator.MoveToRoot();
_Navigator.MoveToFirstChild();
while (_Navigator.Name != Cast)
_Navigator.MoveToNext();
_Navigator.MoveToFirstChild();
values.Add(_Navigator.LocalName);
while (_Navigator.MoveToNext())
values.Add(_Navigator.GetAttribute(attribute, ""));
}
catch (Exception)
{
}
return values;
}
public bool GetInnerValues(string Cast, ref List<string> Values)
{
try
{
_Navigator.MoveToRoot();
_Navigator.MoveToFirstChild();
_Navigator.MoveToFirstChild();
while (_Navigator.Name != Cast)
_Navigator.MoveToNext();
_Navigator.MoveToFirstChild();
Values.Add(_Navigator.Value);
while (_Navigator.MoveToNext())
Values.Add(_Navigator.Value);
}
catch
{
return false;
}
return true;
}
public bool ItemExists(string Cast)
{
XPathNodeIterator iterator;
int results = 0;
try
{
_Navigator.MoveToFirstChild();
iterator = _Navigator.Select(Cast);
while (iterator.MoveNext())
results++;
}
catch (Exception)
{
results = 0;
}
if (results == 0)
return false;
return true;
}
}
}
+1 -2
View File
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu
{
@@ -10,7 +9,7 @@ namespace Vocaluxe.Menu
{
string GetThemeName();
bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex);
bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex);
bool SaveTheme(XmlWriter writer);
void UnloadTextures();
+15 -16
View File
@@ -3,7 +3,6 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Xml;
using System.Xml.XPath;
namespace Vocaluxe.Menu.SingNotes
{
@@ -80,22 +79,22 @@ namespace Vocaluxe.Menu.SingNotes
return _Theme.Name;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinLeft", navigator, ref _Theme.SkinLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinMiddle", navigator, ref _Theme.SkinMiddleName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinRight", navigator, ref _Theme.SkinRightName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinLeft", ref _Theme.SkinLeftName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinMiddle", ref _Theme.SkinMiddleName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinRight", ref _Theme.SkinRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundLeft", navigator, ref _Theme.SkinBackgroundLeftName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundMiddle", navigator, ref _Theme.SkinBackgroundMiddleName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinBackgroundRight", navigator, ref _Theme.SkinBackgroundRightName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinBackgroundLeft", ref _Theme.SkinBackgroundLeftName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinBackgroundMiddle", ref _Theme.SkinBackgroundMiddleName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinBackgroundRight", ref _Theme.SkinBackgroundRightName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinGoldenStar", navigator, ref _Theme.SkinGoldenStarName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinToneHelper", navigator, ref _Theme.SkinToneHelperName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/SkinPerfectNoteStar", navigator, ref _Theme.SkinPerfectNoteStarName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinGoldenStar", ref _Theme.SkinGoldenStarName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinToneHelper", ref _Theme.SkinToneHelperName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/SkinPerfectNoteStar", ref _Theme.SkinPerfectNoteStarName, String.Empty);
_BarPos = new SRectF[_Base.Settings.GetMaxNumPlayer(), _Base.Settings.GetMaxNumPlayer()];
for (int numplayer = 0; numplayer < _Base.Settings.GetMaxNumPlayer(); numplayer++)
@@ -106,11 +105,11 @@ namespace Vocaluxe.Menu.SingNotes
{
_BarPos[player, numplayer] = new SRectF();
string target = "/BarPositions/P" + (player + 1).ToString() + "N" + (numplayer + 1).ToString();
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "X", navigator, ref _BarPos[player, numplayer].X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "Y", navigator, ref _BarPos[player, numplayer].Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "Z", navigator, ref _BarPos[player, numplayer].Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "W", navigator, ref _BarPos[player, numplayer].W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + target + "H", navigator, ref _BarPos[player, numplayer].H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + target + "X", ref _BarPos[player, numplayer].X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + target + "Y", ref _BarPos[player, numplayer].Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + target + "Z", ref _BarPos[player, numplayer].Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + target + "W", ref _BarPos[player, numplayer].W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + target + "H", ref _BarPos[player, numplayer].H);
}
}
}
+2 -3
View File
@@ -2,7 +2,6 @@
using System.Collections.Generic;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.Menu;
using Vocaluxe.PartyModes;
@@ -166,9 +165,9 @@ namespace Vocaluxe.Menu.SongMenu
return _SongMenu.GetThemeName();
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
return _SongMenu.LoadTheme(XmlPath, ElementName, navigator, SkinIndex);
return _SongMenu.LoadTheme(XmlPath, ElementName, xPathHelper, SkinIndex);
}
public bool SaveTheme(XmlWriter writer)
+37 -38
View File
@@ -4,7 +4,6 @@ using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Xml;
using System.Xml.XPath;
using Vocaluxe.PartyModes;
@@ -259,61 +258,61 @@ namespace Vocaluxe.Menu.SongMenu
return _Theme.Name;
}
public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex)
public bool LoadTheme(string XmlPath, string ElementName, CXMLReader xPathHelper, int SkinIndex)
{
string item = XmlPath + "/" + ElementName;
_ThemeLoaded = true;
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBackground", navigator, ref _Theme.CoverBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/CoverBigBackground", navigator, ref _Theme.CoverBigBackgroundName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/DuetIcon", navigator, ref _Theme.DuetIconName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/VideoIcon", navigator, ref _Theme.VideoIconName, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyCalcIcon", navigator, ref _Theme.MedleyCalcIcon, String.Empty);
_ThemeLoaded &= CHelper.GetValueFromXML(item + "/MedleyTagIcon", navigator, ref _Theme.MedleyTagIcon, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/CoverBackground", ref _Theme.CoverBackgroundName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/CoverBigBackground", ref _Theme.CoverBigBackgroundName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/DuetIcon", ref _Theme.DuetIconName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/VideoIcon", ref _Theme.VideoIconName, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/MedleyCalcIcon", ref _Theme.MedleyCalcIcon, String.Empty);
_ThemeLoaded &= xPathHelper.GetValue(item + "/MedleyTagIcon", ref _Theme.MedleyTagIcon, String.Empty);
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
if (xPathHelper.GetValue(item + "/Color", ref _Theme.ColorName, String.Empty))
{
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref _Color);
}
else
{
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/R", navigator, ref _Color.R);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/G", navigator, ref _Color.G);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/B", navigator, ref _Color.B);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/A", navigator, ref _Color.A);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/R", ref _Color.R);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/G", ref _Color.G);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/B", ref _Color.B);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/A", ref _Color.A);
}
#region SongMenuTileBoard
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumW", navigator, ref _Theme.songMenuTileBoard.numW);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumH", navigator, ref _Theme.songMenuTileBoard.numH);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceW", navigator, ref _Theme.songMenuTileBoard.spaceW);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/SpaceH", navigator, ref _Theme.songMenuTileBoard.spaceH);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.songMenuTileBoard.numW);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/SongMenuTileBoard/NumH", ref _Theme.songMenuTileBoard.numH);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceW", ref _Theme.songMenuTileBoard.spaceW);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceH", ref _Theme.songMenuTileBoard.spaceH);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumWsmall", navigator, ref _Theme.songMenuTileBoard.numWsmall);
_ThemeLoaded &= CHelper.TryGetIntValueFromXML(item + "/SongMenuTileBoard/NumHsmall", navigator, ref _Theme.songMenuTileBoard.numHsmall);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/SongMenuTileBoard/NumWsmall", ref _Theme.songMenuTileBoard.numWsmall);
_ThemeLoaded &= xPathHelper.TryGetIntValue(item + "/SongMenuTileBoard/NumHsmall", ref _Theme.songMenuTileBoard.numHsmall);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", navigator, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", xPathHelper, SkinIndex);
_ThemeLoaded &= _Theme.songMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", xPathHelper, SkinIndex);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectX", navigator, ref _Theme.songMenuTileBoard.TileRect.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectY", navigator, ref _Theme.songMenuTileBoard.TileRect.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectZ", navigator, ref _Theme.songMenuTileBoard.TileRect.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectW", navigator, ref _Theme.songMenuTileBoard.TileRect.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectH", navigator, ref _Theme.songMenuTileBoard.TileRect.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectX", ref _Theme.songMenuTileBoard.TileRect.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectY", ref _Theme.songMenuTileBoard.TileRect.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectZ", ref _Theme.songMenuTileBoard.TileRect.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectW", ref _Theme.songMenuTileBoard.TileRect.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectH", ref _Theme.songMenuTileBoard.TileRect.H);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallX", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.X);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallY", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Y);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallZ", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.Z);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallW", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.W);
_ThemeLoaded &= CHelper.TryGetFloatValueFromXML(item + "/SongMenuTileBoard/TileRectSmallH", navigator, ref _Theme.songMenuTileBoard.TileRectSmall.H);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallX", ref _Theme.songMenuTileBoard.TileRectSmall.X);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallY", ref _Theme.songMenuTileBoard.TileRectSmall.Y);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallZ", ref _Theme.songMenuTileBoard.TileRectSmall.Z);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallW", ref _Theme.songMenuTileBoard.TileRectSmall.W);
_ThemeLoaded &= xPathHelper.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallH", ref _Theme.songMenuTileBoard.TileRectSmall.H);
#endregion SongMenuTileBoard
+1
View File
@@ -126,6 +126,7 @@
<Compile Include="Menu\CStatic.cs" />
<Compile Include="Menu\CText.cs" />
<Compile Include="Menu\CScreenSetting.cs" />
<Compile Include="Menu\CXMLReader.cs" />
<Compile Include="Menu\IMenu.cs" />
<Compile Include="Menu\IMenuElement.cs" />
<Compile Include="Menu\SingNotes\CNotes.cs" />