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

+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);
}
}