Fix crashes/assertion failures on theme/skin change
First step of fixing theme saving (still needs some work)
This commit is contained in:
1 parent
a1981804e3
commit
4b0f563a6c
23 files changed
+442
-458
No files matched your search
@@ -108,8 +108,7 @@ namespace VocaluxeLib.PartyModes.Challenge
|
||||
public SData GameData;
|
||||
private EStage _Stage;
|
||||
|
||||
public CPartyModeChallenge(int id, string folder)
|
||||
: base(id, folder)
|
||||
public CPartyModeChallenge(int id, string folder) : base(id, folder)
|
||||
{
|
||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
||||
_ScreenSongOptions.Selection.PartyMode = true;
|
||||
|
||||
@@ -113,8 +113,7 @@ namespace VocaluxeLib.PartyModes.ChallengeMedley
|
||||
public SData GameData;
|
||||
private EStage _Stage;
|
||||
|
||||
public CPartyModeChallengeMedley(int id, string folder)
|
||||
: base(id, folder)
|
||||
public CPartyModeChallengeMedley(int id, string folder) : base(id, folder)
|
||||
{
|
||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
||||
_ScreenSongOptions.Selection.PartyMode = true;
|
||||
|
||||
@@ -114,8 +114,7 @@ namespace VocaluxeLib.PartyModes.TicTacToe
|
||||
public SData GameData;
|
||||
private EStage _Stage;
|
||||
|
||||
public CPartyModeTicTacToe(int id, string folder)
|
||||
: base(id, folder)
|
||||
public CPartyModeTicTacToe(int id, string folder) : base(id, folder)
|
||||
{
|
||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
||||
_ScreenSongOptions.Selection.PartyMode = true;
|
||||
|
||||
@@ -30,7 +30,7 @@ namespace Vocaluxe.Base.ThemeSystem
|
||||
private static readonly List<CTheme> _Themes = new List<CTheme>();
|
||||
public static string[] ThemeNames
|
||||
{
|
||||
get { return _Themes.Select(th => th.Name).ToArray(); }
|
||||
get { return _Themes.Where(th=>th is CBaseTheme).Select(th => th.Name).Distinct().ToArray(); }
|
||||
}
|
||||
|
||||
public static string[] SkinNames
|
||||
@@ -164,7 +164,8 @@ namespace Vocaluxe.Base.ThemeSystem
|
||||
|
||||
public static string GetThemeScreensPath(int partyModeID)
|
||||
{
|
||||
return CurrentThemes[partyModeID].GetScreenPath();
|
||||
CTheme theme;
|
||||
return CurrentThemes.TryGetValue(partyModeID, out theme) ? theme.GetScreenPath() : null;
|
||||
}
|
||||
|
||||
private static void _LogMissingElement(int partyModeID, string elType, string elName)
|
||||
|
||||
@@ -48,7 +48,6 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeBackground _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
private int _SlideShowCurrent;
|
||||
private readonly Stopwatch _SlideShowTimer = new Stopwatch();
|
||||
@@ -62,10 +61,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
|
||||
public SColorF Color;
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
@@ -76,7 +72,7 @@ namespace VocaluxeLib.Menu
|
||||
public CBackground(int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
_Theme = new SThemeBackground {SlideShowTextures = new List<string>()};
|
||||
|
||||
Color = new SColorF(0f, 0f, 0f, 1f);
|
||||
@@ -87,6 +83,7 @@ namespace VocaluxeLib.Menu
|
||||
_Theme = theme;
|
||||
_PartyModeID = partyModeID;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
#endregion Constructors
|
||||
@@ -95,16 +92,16 @@ namespace VocaluxeLib.Menu
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Type", ref _Theme.Type);
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Type", ref _Theme.Type);
|
||||
|
||||
bool vid = xmlReader.GetValue(item + "/Video", out _Theme.VideoName, String.Empty);
|
||||
bool tex = xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
_ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None;
|
||||
ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None;
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
else
|
||||
{
|
||||
bool success = true;
|
||||
@@ -114,7 +111,7 @@ namespace VocaluxeLib.Menu
|
||||
success &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
|
||||
if (_Theme.Type != EBackgroundTypes.None)
|
||||
_ThemeLoaded &= success;
|
||||
ThemeLoaded &= success;
|
||||
}
|
||||
|
||||
_Theme.Color.Color = Color;
|
||||
@@ -130,12 +127,12 @@ namespace VocaluxeLib.Menu
|
||||
i++;
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Resume()
|
||||
@@ -179,12 +176,16 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public void UnloadSkin()
|
||||
{
|
||||
if (!ThemeLoaded)
|
||||
return;
|
||||
_SlideShowTextures.Clear();
|
||||
CBase.Video.Close(ref _VideoStream);
|
||||
}
|
||||
|
||||
public void LoadSkin()
|
||||
{
|
||||
if (!ThemeLoaded)
|
||||
return;
|
||||
_Theme.Color.Get(_PartyModeID, out Color);
|
||||
|
||||
if (_Theme.Type == EBackgroundTypes.SlideShow)
|
||||
@@ -224,7 +225,7 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeBackground GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
+44
-37
@@ -42,7 +42,6 @@ namespace VocaluxeLib.Menu
|
||||
public sealed class CButton : CMenuElementBase, IMenuElement, IThemeable
|
||||
{
|
||||
private SThemeButton _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
private readonly int _PartyModeID;
|
||||
|
||||
public CTextureRef Texture;
|
||||
@@ -100,10 +99,7 @@ namespace VocaluxeLib.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public CButton(int partyModeID)
|
||||
{
|
||||
@@ -125,6 +121,7 @@ namespace VocaluxeLib.Menu
|
||||
Selected = false;
|
||||
EditMode = false;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
@@ -161,42 +158,42 @@ namespace VocaluxeLib.Menu
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", out _Theme.SkinSelected, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", out _Theme.SkinSelected, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.SelColor.Get(_PartyModeID, out SelColor);
|
||||
ThemeLoaded &= _Theme.SelColor.Get(_PartyModeID, out SelColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SelColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SelColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SelColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SelColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SelColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SelColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SelColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SelColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= Text.LoadTheme(item, "Text", xmlReader, true);
|
||||
ThemeLoaded &= Text.LoadTheme(item, "Text", xmlReader, true);
|
||||
Text.Z = Rect.Z;
|
||||
if (xmlReader.ItemExists(item + "/SText"))
|
||||
{
|
||||
_ThemeLoaded &= _SelText.LoadTheme(item, "SText", xmlReader, true);
|
||||
ThemeLoaded &= _SelText.LoadTheme(item, "SText", xmlReader, true);
|
||||
_SelText.Z = Rect.Z;
|
||||
}
|
||||
else
|
||||
@@ -207,8 +204,8 @@ namespace VocaluxeLib.Menu
|
||||
if (xmlReader.ItemExists(item + "/Reflection"))
|
||||
{
|
||||
_Reflection = true;
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref _ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref _ReflectionHeight);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref _ReflectionSpace);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref _ReflectionHeight);
|
||||
|
||||
_Theme.Reflection = new SReflection(_ReflectionHeight, _ReflectionSpace);
|
||||
}
|
||||
@@ -221,8 +218,8 @@ namespace VocaluxeLib.Menu
|
||||
if (xmlReader.ItemExists(item + "/SReflection"))
|
||||
{
|
||||
_SelReflection = true;
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Space", ref _SelReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Height", ref _SelReflectionHeight);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Space", ref _SelReflectionSpace);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SReflection/Height", ref _SelReflectionHeight);
|
||||
|
||||
_Theme.SelReflection = new SReflection(_SelReflectionHeight, _SelReflectionSpace);
|
||||
}
|
||||
@@ -232,20 +229,25 @@ namespace VocaluxeLib.Menu
|
||||
_Theme.SelReflection = null;
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.Color.Color = Color;
|
||||
_Theme.SelColor.Color = SelColor;
|
||||
_Theme.Text = Text.GetTheme();
|
||||
if (_SelText == null)
|
||||
_Theme.SelText = null;
|
||||
else
|
||||
_Theme.SelText = _SelText.GetTheme();
|
||||
_ReadSubThemeElements();
|
||||
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
private void _ReadSubThemeElements()
|
||||
{
|
||||
_Theme.Text = (SThemeText)Text.GetTheme();
|
||||
if (_SelText == null)
|
||||
_Theme.SelText = null;
|
||||
else
|
||||
_Theme.SelText = (SThemeText)_SelText.GetTheme();
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
@@ -306,11 +308,15 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public void UnloadSkin()
|
||||
{
|
||||
if (!ThemeLoaded)
|
||||
return;
|
||||
Text.UnloadSkin();
|
||||
}
|
||||
|
||||
public void LoadSkin()
|
||||
{
|
||||
if (!ThemeLoaded)
|
||||
return;
|
||||
Text = new CText(_Theme.Text, _PartyModeID);
|
||||
Text.LoadSkin();
|
||||
|
||||
@@ -351,8 +357,9 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeButton GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
_ReadSubThemeElements();
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
|
||||
@@ -50,7 +50,6 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeEqualizer _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public SColorF Color;
|
||||
public SColorF MaxColor;
|
||||
@@ -65,10 +64,7 @@ namespace VocaluxeLib.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
private float[] _Bars;
|
||||
private int _MaxBar;
|
||||
@@ -83,7 +79,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SThemeEqualizer();
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
|
||||
Color = new SColorF();
|
||||
MaxColor = new SColorF();
|
||||
@@ -98,56 +94,57 @@ namespace VocaluxeLib.Menu
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = theme;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumBars", ref _Theme.NumBars);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumBars", ref _Theme.NumBars);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Space", ref _Theme.Space);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Space", ref _Theme.Space);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Style", ref _Theme.Style);
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Style", ref _Theme.Style);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/DrawNegative", ref _Theme.DrawNegative);
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/DrawNegative", ref _Theme.DrawNegative);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/MaxColor", out _Theme.MaxColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.MaxColor.Get(_PartyModeID, out MaxColor);
|
||||
ThemeLoaded &= _Theme.MaxColor.Get(_PartyModeID, out MaxColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxR", ref MaxColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxG", ref MaxColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxB", ref MaxColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxA", ref MaxColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxR", ref MaxColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxG", ref MaxColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxB", ref MaxColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxA", ref MaxColor.A);
|
||||
}
|
||||
|
||||
//Reflection
|
||||
if (xmlReader.ItemExists(item + "/Reflection"))
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
|
||||
_Theme.Reflection = new SReflection(ReflectionHeight, ReflectionSpace);
|
||||
}
|
||||
@@ -157,14 +154,14 @@ namespace VocaluxeLib.Menu
|
||||
_Theme.Reflection = null;
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.Color.Color = Color;
|
||||
_Theme.MaxColor.Color = MaxColor;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Update(float[] weights, float volume)
|
||||
@@ -264,7 +261,7 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeEqualizer GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
+22
-25
@@ -37,7 +37,6 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeLyrics _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
/// <summary>
|
||||
/// Holds a reference to Songline. DO NOT MODIFY
|
||||
@@ -61,10 +60,7 @@ namespace VocaluxeLib.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
private SColorF _Color;
|
||||
private SColorF _ColorProcessed;
|
||||
@@ -85,7 +81,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SThemeLyrics();
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
_Color = new SColorF();
|
||||
_ColorProcessed = new SColorF();
|
||||
|
||||
@@ -106,48 +102,49 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
LyricStyle = ELyricStyle.Fill;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out _Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out _Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.ProcessedColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.ProcessedColor.Get(_PartyModeID, out _ColorProcessed);
|
||||
ThemeLoaded &= _Theme.ProcessedColor.Get(_PartyModeID, out _ColorProcessed);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref _ColorProcessed.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref _ColorProcessed.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref _ColorProcessed.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref _ColorProcessed.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref _ColorProcessed.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref _ColorProcessed.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref _ColorProcessed.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref _ColorProcessed.A);
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.Color.Color = _Color;
|
||||
_Theme.ProcessedColor.Color = _ColorProcessed;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void SetLine(CSongLine line)
|
||||
@@ -441,7 +438,7 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeLyrics GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
+34
-37
@@ -18,6 +18,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml.Serialization;
|
||||
using VocaluxeLib.Draw;
|
||||
@@ -49,7 +50,7 @@ namespace VocaluxeLib.Menu
|
||||
[XmlArray("Equalizers")] public List<SThemeEqualizer> Equalizers;
|
||||
[XmlArray("Playlists")] public List<SThemePlaylist> Playlists;
|
||||
[XmlArray("ParticleEffects")] public List<SThemeParticleEffect> ParticleEffects;
|
||||
[XmlArray("ScreenSettings")] public List<SScreenSetting> ScreenSettings;
|
||||
[XmlArray("ScreenSettings")] public List<SThemeScreenSetting> ScreenSettings;
|
||||
}
|
||||
|
||||
struct SZSort
|
||||
@@ -64,7 +65,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
protected abstract int _ScreenVersion { get; }
|
||||
public int PartyModeID { get; protected set; }
|
||||
public string ThemeName { get; set; }
|
||||
public string ThemeName { get; private set; }
|
||||
public SThemeScreen Theme;
|
||||
|
||||
// ReSharper disable MemberCanBePrivate.Global
|
||||
@@ -161,7 +162,7 @@ namespace VocaluxeLib.Menu
|
||||
Theme.Equalizers = new List<SThemeEqualizer>();
|
||||
Theme.Playlists = new List<SThemePlaylist>();
|
||||
Theme.ParticleEffects = new List<SThemeParticleEffect>();
|
||||
Theme.ScreenSettings = new List<SScreenSetting>();
|
||||
Theme.ScreenSettings = new List<SThemeScreenSetting>();
|
||||
|
||||
try
|
||||
{
|
||||
@@ -190,7 +191,7 @@ namespace VocaluxeLib.Menu
|
||||
foreach (SThemePlaylist pl in Theme.Playlists)
|
||||
_AddPlaylist(new CPlaylist(pl, PartyModeID), pl.Name);
|
||||
|
||||
foreach (SScreenSetting ss in Theme.ScreenSettings)
|
||||
foreach (SThemeScreenSetting ss in Theme.ScreenSettings)
|
||||
_AddScreenSetting(new CScreenSetting(ss, PartyModeID), ss.Name);
|
||||
|
||||
foreach (SThemeSelectSlide sl in Theme.SelectSlides)
|
||||
@@ -234,7 +235,7 @@ namespace VocaluxeLib.Menu
|
||||
_ScreenSettings.Add(name, screenSetting);
|
||||
}
|
||||
|
||||
public virtual void LoadThemeOld(string xmlPath)
|
||||
public void LoadThemeOld(string xmlPath)
|
||||
{
|
||||
string file = Path.Combine(xmlPath, ThemeName + ".xml");
|
||||
|
||||
@@ -286,44 +287,21 @@ namespace VocaluxeLib.Menu
|
||||
Theme.Equalizers = new List<SThemeEqualizer>();
|
||||
Theme.Playlists = new List<SThemePlaylist>();
|
||||
Theme.ParticleEffects = new List<SThemeParticleEffect>();
|
||||
Theme.ScreenSettings = new List<SScreenSetting>();
|
||||
Theme.ScreenSettings = new List<SThemeScreenSetting>();
|
||||
}
|
||||
|
||||
private static void _AddThemeablesToList<T, TT>(ICollection<TT> themeList, IEnumerable<T> objects) where T : IThemeable
|
||||
{
|
||||
themeList.Clear();
|
||||
foreach (T el in objects.Where(el => el.ThemeLoaded))
|
||||
themeList.Add((TT)el.GetTheme());
|
||||
}
|
||||
|
||||
public virtual void SaveTheme()
|
||||
{
|
||||
if (CBase.Config.GetLoadOldThemeFiles())
|
||||
{
|
||||
//Have to add theme-stuff manually, later it will be done while de-serialization
|
||||
foreach (CBackground el in _Backgrounds)
|
||||
Theme.Backgrounds.Add(el.GetTheme());
|
||||
foreach (CButton el in _Buttons)
|
||||
Theme.Buttons.Add(el.GetTheme());
|
||||
foreach (CEqualizer el in _Equalizers)
|
||||
Theme.Equalizers.Add(el.GetTheme());
|
||||
foreach (CLyric el in _Lyrics)
|
||||
Theme.Lyrics.Add(el.GetTheme());
|
||||
foreach (CNameSelection el in _NameSelections)
|
||||
Theme.NameSelections.Add(el.GetTheme());
|
||||
foreach (CParticleEffect el in _ParticleEffects)
|
||||
Theme.ParticleEffects.Add(el.GetTheme());
|
||||
foreach (CPlaylist el in _Playlists)
|
||||
Theme.Playlists.Add(el.GetTheme());
|
||||
foreach (CScreenSetting el in _ScreenSettings.Values)
|
||||
Theme.ScreenSettings.Add(el.GetTheme());
|
||||
foreach (CSelectSlide el in _SelectSlides)
|
||||
Theme.SelectSlides.Add(el.GetTheme());
|
||||
foreach (CStatic el in _Statics)
|
||||
Theme.Statics.Add(el.GetTheme());
|
||||
foreach (CText el in _Texts)
|
||||
Theme.Texts.Add(el.GetTheme());
|
||||
foreach (CSongMenuFramework el in _SongMenus)
|
||||
Theme.SongMenus.Add(el.GetTheme());
|
||||
foreach (CSingNotes el in _SingNotes)
|
||||
Theme.SingNotes.Add(el.GetTheme());
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(ThemePath))
|
||||
return;
|
||||
_ReadThemeSubElements();
|
||||
|
||||
try
|
||||
{
|
||||
@@ -340,6 +318,24 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
private void _ReadThemeSubElements()
|
||||
{
|
||||
// Load changed/added theme elements into theme struct
|
||||
_AddThemeablesToList(Theme.Backgrounds, _Backgrounds);
|
||||
_AddThemeablesToList(Theme.Buttons, _Buttons);
|
||||
_AddThemeablesToList(Theme.Equalizers, _Equalizers);
|
||||
_AddThemeablesToList(Theme.Lyrics, _Lyrics);
|
||||
_AddThemeablesToList(Theme.NameSelections, _NameSelections);
|
||||
_AddThemeablesToList(Theme.ParticleEffects, _ParticleEffects);
|
||||
_AddThemeablesToList(Theme.Playlists, _Playlists);
|
||||
_AddThemeablesToList(Theme.ScreenSettings, _ScreenSettings.Values);
|
||||
_AddThemeablesToList(Theme.SelectSlides, _SelectSlides);
|
||||
_AddThemeablesToList(Theme.Statics, _Statics);
|
||||
_AddThemeablesToList(Theme.Texts, _Texts);
|
||||
_AddThemeablesToList(Theme.SongMenus, _SongMenus);
|
||||
_AddThemeablesToList(Theme.SingNotes, _SingNotes);
|
||||
}
|
||||
|
||||
public virtual void ReloadSkin()
|
||||
{
|
||||
foreach (CBackground background in _Backgrounds)
|
||||
@@ -423,6 +419,7 @@ namespace VocaluxeLib.Menu
|
||||
if (ThemePath == "")
|
||||
return;
|
||||
|
||||
_ReadThemeSubElements();
|
||||
UnloadSkin();
|
||||
_ClearElements();
|
||||
LoadTheme(xmlPath);
|
||||
|
||||
@@ -74,17 +74,13 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeNameSelection _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
private readonly List<CTile> _Tiles;
|
||||
|
||||
@@ -139,6 +135,7 @@ namespace VocaluxeLib.Menu
|
||||
_VisibleProfiles = new List<int>();
|
||||
_UsedProfiles = new List<int>();
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
@@ -159,59 +156,59 @@ namespace VocaluxeLib.Menu
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinEmptyTile", out _Theme.SkinEmptyTile, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinEmptyTile", out _Theme.SkinEmptyTile, String.Empty);
|
||||
|
||||
if (xmlReader.GetValue(item + "/ColorEmptyTile", out _Theme.ColorEmptyTile.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.ColorEmptyTile.Get(_PartyModeID, out _ColorEmptyTile);
|
||||
ThemeLoaded &= _Theme.ColorEmptyTile.Get(_PartyModeID, out _ColorEmptyTile);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _ColorEmptyTile.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _ColorEmptyTile.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _ColorEmptyTile.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _ColorEmptyTile.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _ColorEmptyTile.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _ColorEmptyTile.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _ColorEmptyTile.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _ColorEmptyTile.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinTileSelected", out _Theme.SkinTileSelected, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinTileSelected", out _Theme.SkinTileSelected, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/W", ref _Theme.Tiles.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/H", ref _Theme.Tiles.H);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumW", ref _Theme.Tiles.NumW);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumH", ref _Theme.Tiles.NumH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceW", ref _Theme.Tiles.SpaceW);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceH", ref _Theme.Tiles.SpaceH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/Space", ref _Theme.Tiles.Name.Space);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/H", ref _Theme.Tiles.Name.Height);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Tiles/Name/Font", out _Theme.Tiles.Name.Font, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Tiles/Name/Style", ref _Theme.Tiles.Name.Style);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/W", ref _Theme.Tiles.W);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/H", ref _Theme.Tiles.H);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumW", ref _Theme.Tiles.NumW);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/Tiles/NumH", ref _Theme.Tiles.NumH);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceW", ref _Theme.Tiles.SpaceW);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/SpaceH", ref _Theme.Tiles.SpaceH);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/Space", ref _Theme.Tiles.Name.Space);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/H", ref _Theme.Tiles.Name.Height);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Tiles/Name/Font", out _Theme.Tiles.Name.Font, "Normal");
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Tiles/Name/Style", ref _Theme.Tiles.Name.Style);
|
||||
if (xmlReader.GetValue(item + "/Tiles/Name/Color", out _Theme.Tiles.Name.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Tiles.Name.Color.Get(_PartyModeID, out _ColorNameTile);
|
||||
ThemeLoaded &= _Theme.Tiles.Name.Color.Get(_PartyModeID, out _ColorNameTile);
|
||||
else
|
||||
{
|
||||
if (xmlReader.TryGetFloatValue(item + "/Tiles/Name/R", ref _ColorNameTile.R))
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/G", ref _ColorNameTile.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/B", ref _ColorNameTile.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/A", ref _ColorNameTile.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/G", ref _ColorNameTile.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/B", ref _ColorNameTile.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/A", ref _ColorNameTile.A);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.Tiles.Name.Color.Color = _ColorNameTile;
|
||||
_Theme.ColorEmptyTile.Color = _ColorEmptyTile;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
@@ -528,7 +525,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public SThemeNameSelection GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
@@ -50,7 +50,6 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeParticleEffect _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public CTextureRef Texture;
|
||||
public SColorF Color;
|
||||
@@ -66,10 +65,7 @@ namespace VocaluxeLib.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public bool IsAlive
|
||||
{
|
||||
@@ -128,43 +124,44 @@ namespace VocaluxeLib.Menu
|
||||
_NextSpawnTime = 0f;
|
||||
Visible = true;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Type", ref _Theme.Type);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Size", ref _Theme.Size);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/MaxNumber", ref _Theme.MaxNumber);
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Type", ref _Theme.Type);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Size", ref _Theme.Size);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/MaxNumber", ref _Theme.MaxNumber);
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.Color.Color = Color;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Update()
|
||||
@@ -330,7 +327,7 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeParticleEffect GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
@@ -144,17 +144,13 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
private readonly int _PartyModeID;
|
||||
private SThemePlaylist _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
private readonly List<CPlaylistElement> _PlaylistElements = new List<CPlaylistElement>();
|
||||
private readonly List<CPlaylistElementContent> _PlaylistElementContents = new List<CPlaylistElementContent>();
|
||||
@@ -259,6 +255,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
Visible = false;
|
||||
Selected = false;
|
||||
ThemeLoaded = true;
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
@@ -277,69 +274,74 @@ namespace VocaluxeLib.Menu
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackground", out _Theme.SkinBackground, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundSelected", out _Theme.SkinBackgroundSelected, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackground", out _Theme.SkinBackground, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundSelected", out _Theme.SkinBackgroundSelected, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
if (xmlReader.GetValue(item + "/ColorBackground", out _Theme.ColorBackground.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.ColorBackground.Get(_PartyModeID, out _BackgroundColor);
|
||||
ThemeLoaded &= _Theme.ColorBackground.Get(_PartyModeID, out _BackgroundColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundR", ref _BackgroundColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundG", ref _BackgroundColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundB", ref _BackgroundColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundA", ref _BackgroundColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundR", ref _BackgroundColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundG", ref _BackgroundColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundB", ref _BackgroundColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/BackgroundA", ref _BackgroundColor.A);
|
||||
}
|
||||
if (xmlReader.GetValue(item + "/SColorBackground", out _Theme.SelColorBackground.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.SelColorBackground.Get(_PartyModeID, out _BackgroundSelColor);
|
||||
ThemeLoaded &= _Theme.SelColorBackground.Get(_PartyModeID, out _BackgroundSelColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundR", ref _BackgroundSelColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundG", ref _BackgroundSelColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundB", ref _BackgroundSelColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundA", ref _BackgroundSelColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundR", ref _BackgroundSelColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundG", ref _BackgroundSelColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundB", ref _BackgroundSelColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SBackgroundA", ref _BackgroundSelColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= _Text1.LoadTheme(item, "TextPart1", xmlReader);
|
||||
ThemeLoaded &= _Text1.LoadTheme(item, "TextPart1", xmlReader);
|
||||
|
||||
CStatic tmpStatic = new CStatic(_PartyModeID);
|
||||
_ThemeLoaded &= tmpStatic.LoadTheme(item, "StaticCover", xmlReader);
|
||||
_ThemeLoaded &= _StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", xmlReader);
|
||||
_ThemeLoaded &= _StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", xmlReader);
|
||||
ThemeLoaded &= tmpStatic.LoadTheme(item, "StaticCover", xmlReader);
|
||||
ThemeLoaded &= _StaticPlaylistHeader.LoadTheme(item, "StaticPlaylistHeader", xmlReader);
|
||||
ThemeLoaded &= _StaticPlaylistFooter.LoadTheme(item, "StaticPlaylistFooter", xmlReader);
|
||||
|
||||
_ThemeLoaded &= _ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", xmlReader);
|
||||
_ThemeLoaded &= _ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", xmlReader);
|
||||
_ThemeLoaded &= _ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", xmlReader);
|
||||
_ThemeLoaded &= _ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", xmlReader);
|
||||
_ThemeLoaded &= _ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", xmlReader);
|
||||
ThemeLoaded &= _ButtonPlaylistName.LoadTheme(item, "ButtonPlaylistName", xmlReader);
|
||||
ThemeLoaded &= _ButtonPlaylistSing.LoadTheme(item, "ButtonPlaylistSing", xmlReader);
|
||||
ThemeLoaded &= _ButtonPlaylistClose.LoadTheme(item, "ButtonPlaylistClose", xmlReader);
|
||||
ThemeLoaded &= _ButtonPlaylistSave.LoadTheme(item, "ButtonPlaylistSave", xmlReader);
|
||||
ThemeLoaded &= _ButtonPlaylistDelete.LoadTheme(item, "ButtonPlaylistDelete", xmlReader);
|
||||
|
||||
_ThemeLoaded &= _SelectSlideGameMode.LoadTheme(item, "SelectSlideGameMode", xmlReader);
|
||||
ThemeLoaded &= _SelectSlideGameMode.LoadTheme(item, "SelectSlideGameMode", xmlReader);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/EntryHeight", ref _Theme.EntryHeight);
|
||||
if (_ThemeLoaded)
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/EntryHeight", ref _Theme.EntryHeight);
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.ColorBackground.Color = _BackgroundColor;
|
||||
_Theme.SelColorBackground.Color = _BackgroundSelColor;
|
||||
_Theme.Text1 = _Text1.GetTheme();
|
||||
_Theme.StaticCover = tmpStatic.GetTheme();
|
||||
_Theme.StaticPlaylistFooter = _StaticPlaylistFooter.GetTheme();
|
||||
_Theme.StaticPlaylistHeader = _StaticPlaylistHeader.GetTheme();
|
||||
_Theme.ButtonPlaylistName = _ButtonPlaylistName.GetTheme();
|
||||
_Theme.ButtonPlaylistSing = _ButtonPlaylistSing.GetTheme();
|
||||
_Theme.ButtonPlaylistClose = _ButtonPlaylistClose.GetTheme();
|
||||
_Theme.ButtonPlaylistSave = _ButtonPlaylistSave.GetTheme();
|
||||
_Theme.ButtonPlaylistDelete = _ButtonPlaylistDelete.GetTheme();
|
||||
_Theme.StaticCover = (SThemeStatic)tmpStatic.GetTheme();
|
||||
_ReadSubThemeElements();
|
||||
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
private void _ReadSubThemeElements()
|
||||
{
|
||||
_Theme.Text1 = (SThemeText)_Text1.GetTheme();
|
||||
_Theme.StaticPlaylistFooter = (SThemeStatic)_StaticPlaylistFooter.GetTheme();
|
||||
_Theme.StaticPlaylistHeader = (SThemeStatic)_StaticPlaylistHeader.GetTheme();
|
||||
_Theme.ButtonPlaylistName = (SThemeButton)_ButtonPlaylistName.GetTheme();
|
||||
_Theme.ButtonPlaylistSing = (SThemeButton)_ButtonPlaylistSing.GetTheme();
|
||||
_Theme.ButtonPlaylistClose = (SThemeButton)_ButtonPlaylistClose.GetTheme();
|
||||
_Theme.ButtonPlaylistSave = (SThemeButton)_ButtonPlaylistSave.GetTheme();
|
||||
_Theme.ButtonPlaylistDelete = (SThemeButton)_ButtonPlaylistDelete.GetTheme();
|
||||
}
|
||||
|
||||
public void UpdateGame()
|
||||
@@ -1164,8 +1166,9 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public SThemePlaylist GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
_ReadSubThemeElements();
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
|
||||
@@ -31,7 +31,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
|
||||
[XmlType("ScreenSetting")]
|
||||
public struct SScreenSetting
|
||||
public struct SThemeScreenSetting
|
||||
{
|
||||
[XmlAttribute(AttributeName = "Name")] public string Name;
|
||||
public string Value;
|
||||
@@ -45,7 +45,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
|
||||
private SScreenSetting _Theme;
|
||||
private SThemeScreenSetting _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
@@ -61,11 +61,11 @@ namespace VocaluxeLib.Menu
|
||||
public CScreenSetting(int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SScreenSetting();
|
||||
_Theme = new SThemeScreenSetting();
|
||||
_ThemeLoaded = false;
|
||||
}
|
||||
|
||||
public CScreenSetting(SScreenSetting theme, int partyModeID)
|
||||
public CScreenSetting(SThemeScreenSetting theme, int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = theme;
|
||||
@@ -104,7 +104,7 @@ namespace VocaluxeLib.Menu
|
||||
return null;
|
||||
}
|
||||
|
||||
public SScreenSetting GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
@@ -65,17 +65,13 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeSelectSlide _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public SRectF RectArrowLeft;
|
||||
public SRectF RectArrowRight;
|
||||
@@ -211,7 +207,7 @@ namespace VocaluxeLib.Menu
|
||||
public CSelectSlide(int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
_TextH = 1f;
|
||||
_MaxW = 0f;
|
||||
|
||||
@@ -226,7 +222,7 @@ namespace VocaluxeLib.Menu
|
||||
_PartyModeID = slide._PartyModeID;
|
||||
_Theme = slide._Theme;
|
||||
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
|
||||
MaxRect = slide.MaxRect;
|
||||
RectArrowLeft = slide.RectArrowLeft;
|
||||
@@ -267,110 +263,111 @@ namespace VocaluxeLib.Menu
|
||||
_ValueNames = new List<string>();
|
||||
_ValuePartyModeIDs = new List<int>();
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeft", out _Theme.SkinArrowLeft, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRight", out _Theme.SkinArrowRight, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeft", out _Theme.SkinArrowLeft, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRight", out _Theme.SkinArrowRight, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", out _Theme.SkinSelected, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeftSelected", out _Theme.SkinArrowLeftSelected, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRightSelected", out _Theme.SkinArrowRightSelected, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinSelected", out _Theme.SkinSelected, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowLeftSelected", out _Theme.SkinArrowLeftSelected, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinArrowRightSelected", out _Theme.SkinArrowRightSelected, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out _Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out _Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.SelColor.Get(_PartyModeID, out _SelColor);
|
||||
ThemeLoaded &= _Theme.SelColor.Get(_PartyModeID, out _SelColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref _SelColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref _SelColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref _SelColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref _SelColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref _SelColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref _SelColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref _SelColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref _SelColor.A);
|
||||
}
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftX", ref RectArrowLeft.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftY", ref RectArrowLeft.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftZ", ref RectArrowLeft.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftW", ref RectArrowLeft.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftH", ref RectArrowLeft.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftX", ref RectArrowLeft.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftY", ref RectArrowLeft.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftZ", ref RectArrowLeft.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftW", ref RectArrowLeft.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowLeftH", ref RectArrowLeft.H);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightX", ref RectArrowRight.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightY", ref RectArrowRight.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightZ", ref RectArrowRight.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightW", ref RectArrowRight.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightH", ref RectArrowRight.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightX", ref RectArrowRight.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightY", ref RectArrowRight.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightZ", ref RectArrowRight.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightW", ref RectArrowRight.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowRightH", ref RectArrowRight.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/ArrowColor", out _Theme.ArrowColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.ArrowColor.Get(_PartyModeID, out _ColorArrow);
|
||||
ThemeLoaded &= _Theme.ArrowColor.Get(_PartyModeID, out _ColorArrow);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowR", ref _ColorArrow.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowG", ref _ColorArrow.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowB", ref _ColorArrow.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowA", ref _ColorArrow.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowR", ref _ColorArrow.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowG", ref _ColorArrow.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowB", ref _ColorArrow.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowA", ref _ColorArrow.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/ArrowSColor", out _Theme.ArrowSelColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.ArrowSelColor.Get(_PartyModeID, out _SelColorArrow);
|
||||
ThemeLoaded &= _Theme.ArrowSelColor.Get(_PartyModeID, out _SelColorArrow);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSR", ref _SelColorArrow.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSG", ref _SelColorArrow.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSB", ref _SelColorArrow.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSA", ref _SelColorArrow.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSR", ref _SelColorArrow.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSG", ref _SelColorArrow.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSB", ref _SelColorArrow.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/ArrowSA", ref _SelColorArrow.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/TextColor", out _Theme.TextColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.TextColor.Get(_PartyModeID, out _TextColor);
|
||||
ThemeLoaded &= _Theme.TextColor.Get(_PartyModeID, out _TextColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextR", ref _TextColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextG", ref _TextColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextB", ref _TextColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextA", ref _TextColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextR", ref _TextColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextG", ref _TextColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextB", ref _TextColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextA", ref _TextColor.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/TextSColor", out _Theme.TextSelColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.TextSelColor.Get(_PartyModeID, out _SelTextColor);
|
||||
ThemeLoaded &= _Theme.TextSelColor.Get(_PartyModeID, out _SelTextColor);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSR", ref _SelTextColor.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSG", ref _SelTextColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSB", ref _SelTextColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSA", ref _SelTextColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSR", ref _SelTextColor.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSG", ref _SelTextColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSB", ref _SelTextColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextSA", ref _SelTextColor.A);
|
||||
}
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextH", ref _Theme.TextH);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextH", ref _Theme.TextH);
|
||||
xmlReader.TryGetFloatValue(item + "/TextRelativeX", ref _Theme.TextRelativeX);
|
||||
xmlReader.TryGetFloatValue(item + "/TextRelativeY", ref _Theme.TextRelativeY);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextMaxW", ref _Theme.TextMaxW);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/TextMaxW", ref _Theme.TextMaxW);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/TextFont", out _Theme.TextFont, "Normal");
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/TextStyle", ref _Theme.TextStyle);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/TextFont", out _Theme.TextFont, "Normal");
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/TextStyle", ref _Theme.TextStyle);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumVisible", ref _Theme.NumVisible);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/NumVisible", ref _Theme.NumVisible);
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
_Theme.ArrowColor.Color = _ColorArrow;
|
||||
@@ -383,7 +380,7 @@ namespace VocaluxeLib.Menu
|
||||
_Theme.TextSelColor.Color = _SelTextColor;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void AddValue(string value)
|
||||
@@ -656,7 +653,7 @@ namespace VocaluxeLib.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public SThemeSelectSlide GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
+21
-22
@@ -38,17 +38,13 @@ namespace VocaluxeLib.Menu
|
||||
private readonly int _PartyModeID;
|
||||
|
||||
private SThemeStatic _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public string GetThemeName()
|
||||
{
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public bool Selectable
|
||||
{
|
||||
@@ -114,6 +110,7 @@ namespace VocaluxeLib.Menu
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = theme;
|
||||
ThemeLoaded = true;
|
||||
|
||||
LoadSkin();
|
||||
}
|
||||
@@ -121,24 +118,24 @@ namespace VocaluxeLib.Menu
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Skin", out _Theme.Skin, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.Rect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Rect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Rect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _Theme.Rect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.Rect.H);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
_Theme.Color.Color = Color;
|
||||
@@ -146,8 +143,8 @@ namespace VocaluxeLib.Menu
|
||||
if (xmlReader.ItemExists(item + "/Reflection"))
|
||||
{
|
||||
Reflection = true;
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref ReflectionSpace);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref ReflectionHeight);
|
||||
_Theme.Reflection = new SReflection(ReflectionHeight, ReflectionSpace);
|
||||
}
|
||||
else
|
||||
@@ -156,12 +153,12 @@ namespace VocaluxeLib.Menu
|
||||
_Theme.Reflection = null;
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
LoadSkin();
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
@@ -196,6 +193,8 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public void LoadSkin()
|
||||
{
|
||||
if (!ThemeLoaded)
|
||||
return;
|
||||
_Theme.Color.Get(_PartyModeID, out Color);
|
||||
|
||||
MaxRect = _Theme.Rect;
|
||||
@@ -214,7 +213,7 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeStatic GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
+28
-31
@@ -45,7 +45,6 @@ namespace VocaluxeLib.Menu
|
||||
public sealed class CText : CMenuElementBase, IMenuElement, IThemeable, IFontObserver
|
||||
{
|
||||
private SThemeText _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
private readonly int _PartyModeID = -1;
|
||||
private int _TranslationID = -1;
|
||||
|
||||
@@ -54,10 +53,7 @@ namespace VocaluxeLib.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
private bool _ButtonText;
|
||||
private bool _PositionNeedsUpdate = true;
|
||||
@@ -266,7 +262,7 @@ namespace VocaluxeLib.Menu
|
||||
float rspace = 0) : this(partyModeID)
|
||||
{
|
||||
_Theme = new SThemeText {FontFamily = fontFamily, FontStyle = style, FontHeight = h, Text = text};
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
|
||||
MaxRect = new SRectF(x, y, mw, h, z);
|
||||
@@ -295,6 +291,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
_ButtonText = buttonText;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
@@ -306,50 +303,50 @@ namespace VocaluxeLib.Menu
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader, bool buttonText)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/X", ref _Theme.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Y", ref _Theme.Y);
|
||||
|
||||
if (!buttonText)
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Z", ref _Theme.Z);
|
||||
|
||||
xmlReader.TryGetFloatValue(item + "/MaxW", ref _Theme.MaxWidth);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out Color);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref Color.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref Color.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A);
|
||||
}
|
||||
|
||||
if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColor.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.SelColor.Get(_PartyModeID, out SelColor);
|
||||
ThemeLoaded &= _Theme.SelColor.Get(_PartyModeID, out SelColor);
|
||||
else
|
||||
{
|
||||
if (xmlReader.TryGetFloatValue(item + "/SR", ref SelColor.R))
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SelColor.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SelColor.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SelColor.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SG", ref SelColor.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SB", ref SelColor.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SA", ref SelColor.A);
|
||||
}
|
||||
}
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Align", ref _Align);
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Align", ref _Align);
|
||||
xmlReader.TryGetEnumValue(item + "/ResizeAlign", ref _ResizeAlign);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.FontHeight);
|
||||
_ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Style", ref _Theme.FontStyle);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Font", out _Theme.FontFamily);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _Theme.FontHeight);
|
||||
ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/Style", ref _Theme.FontStyle);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Font", out _Theme.FontFamily);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/Text", out _Theme.Text);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/Text", out _Theme.Text);
|
||||
|
||||
if (xmlReader.ItemExists(item + "/Reflection") && !buttonText)
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref _ReflectionSpace);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref _ReflectionHeight);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Space", ref _ReflectionSpace);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Reflection/Height", ref _ReflectionHeight);
|
||||
_Theme.Reflection = new SReflection(_ReflectionHeight, _ReflectionSpace);
|
||||
}
|
||||
else
|
||||
@@ -366,9 +363,9 @@ namespace VocaluxeLib.Menu
|
||||
_ButtonText = buttonText;
|
||||
_PositionNeedsUpdate = true;
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
LoadSkin();
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Draw()
|
||||
@@ -436,6 +433,8 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public void LoadSkin()
|
||||
{
|
||||
if (!ThemeLoaded)
|
||||
return;
|
||||
_Theme.Color.Get(_PartyModeID, out Color);
|
||||
_Theme.SelColor.Get(_PartyModeID, out SelColor);
|
||||
|
||||
@@ -457,8 +456,6 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
Text = _Theme.Text;
|
||||
Selected = false;
|
||||
|
||||
_ThemeLoaded = true;
|
||||
}
|
||||
|
||||
public void ReloadSkin()
|
||||
@@ -467,7 +464,7 @@ namespace VocaluxeLib.Menu
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeText GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ namespace VocaluxeLib.Menu
|
||||
public interface IThemeable
|
||||
{
|
||||
string GetThemeName();
|
||||
object GetTheme();
|
||||
bool ThemeLoaded { get; }
|
||||
|
||||
bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader);
|
||||
|
||||
|
||||
@@ -53,7 +53,6 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
{
|
||||
private readonly int _PartyModeID;
|
||||
private SThemeSingBar _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public readonly List<CNoteBars> PlayerNotes = new List<CNoteBars>();
|
||||
|
||||
@@ -74,7 +73,7 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SThemeSingBar {BarPos = new SBarPosition[CHelper.Sum(CBase.Settings.GetMaxNumPlayer())]};
|
||||
_ThemeLoaded = false;
|
||||
ThemeLoaded = false;
|
||||
}
|
||||
|
||||
public CSingNotes(SThemeSingBar theme, int partyModeID)
|
||||
@@ -84,6 +83,7 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
|
||||
_BarPos = new SRectF[CBase.Settings.GetMaxNumPlayer(),CBase.Settings.GetMaxNumPlayer()];
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
@@ -92,27 +92,24 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinLeft", out _Theme.SkinLeft, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinMiddle", out _Theme.SkinMiddle, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinRight", out _Theme.SkinRight, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinLeft", out _Theme.SkinLeft, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinMiddle", out _Theme.SkinMiddle, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinRight", out _Theme.SkinRight, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundLeft", out _Theme.SkinBackgroundLeft, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundMiddle", out _Theme.SkinBackgroundMiddle, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundRight", out _Theme.SkinBackgroundRight, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundLeft", out _Theme.SkinBackgroundLeft, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundMiddle", out _Theme.SkinBackgroundMiddle, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinBackgroundRight", out _Theme.SkinBackgroundRight, String.Empty);
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinGoldenStar", out _Theme.SkinGoldenStar, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", out _Theme.SkinToneHelper, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", out _Theme.SkinPerfectNoteStart, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinGoldenStar", out _Theme.SkinGoldenStar, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinToneHelper", out _Theme.SkinToneHelper, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/SkinPerfectNoteStar", out _Theme.SkinPerfectNoteStart, String.Empty);
|
||||
|
||||
int i = 0;
|
||||
_BarPos = new SRectF[CBase.Settings.GetMaxNumPlayer(),CBase.Settings.GetMaxNumPlayer()];
|
||||
@@ -122,24 +119,24 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
{
|
||||
_BarPos[player, numplayer] = new SRectF();
|
||||
string target = "/BarPositions/P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[player, numplayer].X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[player, numplayer].Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[player, numplayer].Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "W", ref _BarPos[player, numplayer].W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "H", ref _BarPos[player, numplayer].H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "X", ref _BarPos[player, numplayer].X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Y", ref _BarPos[player, numplayer].Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "Z", ref _BarPos[player, numplayer].Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "W", ref _BarPos[player, numplayer].W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + target + "H", ref _BarPos[player, numplayer].H);
|
||||
_Theme.BarPos[i].Name = "P" + (player + 1) + "N" + (numplayer + 1);
|
||||
_Theme.BarPos[i].Rect = _BarPos[player, numplayer];
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
|
||||
public void Init(int numPlayers)
|
||||
@@ -174,7 +171,7 @@ namespace VocaluxeLib.Menu.SingNotes
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
public SThemeSingBar GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
|
||||
@@ -94,12 +94,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
protected readonly int _PartyModeID;
|
||||
protected SThemeSongMenu _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
public bool ThemeLoaded { get; private set; }
|
||||
|
||||
public bool Selectable
|
||||
{
|
||||
@@ -160,6 +156,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = theme;
|
||||
|
||||
ThemeLoaded = true;
|
||||
LoadSkin();
|
||||
}
|
||||
|
||||
@@ -169,7 +166,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public SThemeSongMenu GetTheme()
|
||||
public object GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
}
|
||||
@@ -177,49 +174,49 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public virtual bool LoadTheme(string xmlPath, string elementName, CXmlReader xmlReader)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
ThemeLoaded = true;
|
||||
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBackground", out _Theme.CoverBackground, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/CoverBigBackground", out _Theme.CoverBigBackground, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/DuetIcon", out _Theme.DuetIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/VideoIcon", out _Theme.VideoIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyCalcIcon", out _Theme.MedleyCalcIcon, String.Empty);
|
||||
_ThemeLoaded &= xmlReader.GetValue(item + "/MedleyTagIcon", out _Theme.MedleyTagIcon, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/CoverBackground", out _Theme.CoverBackground, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/CoverBigBackground", out _Theme.CoverBigBackground, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/DuetIcon", out _Theme.DuetIcon, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/VideoIcon", out _Theme.VideoIcon, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/MedleyCalcIcon", out _Theme.MedleyCalcIcon, String.Empty);
|
||||
ThemeLoaded &= xmlReader.GetValue(item + "/MedleyTagIcon", out _Theme.MedleyTagIcon, String.Empty);
|
||||
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out _ColorInternal);
|
||||
ThemeLoaded &= _Theme.Color.Get(_PartyModeID, out _ColorInternal);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _ColorInternal.R);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _ColorInternal.G);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _ColorInternal.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _ColorInternal.A);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _ColorInternal.R);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/G", ref _ColorInternal.G);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _ColorInternal.B);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _ColorInternal.A);
|
||||
}
|
||||
_Theme.Color.Color = _ColorInternal;
|
||||
|
||||
#region SongMenuTileBoard
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.SongMenuTileBoard.NumW);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumH", ref _Theme.SongMenuTileBoard.NumH);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceW", ref _Theme.SongMenuTileBoard.SpaceW);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceH", ref _Theme.SongMenuTileBoard.SpaceH);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.SongMenuTileBoard.NumW);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumH", ref _Theme.SongMenuTileBoard.NumH);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceW", ref _Theme.SongMenuTileBoard.SpaceW);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/SpaceH", ref _Theme.SongMenuTileBoard.SpaceH);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumWsmall", ref _Theme.SongMenuTileBoard.NumWsmall);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumHsmall", ref _Theme.SongMenuTileBoard.NumHsmall);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumWsmall", ref _Theme.SongMenuTileBoard.NumWsmall);
|
||||
ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumHsmall", ref _Theme.SongMenuTileBoard.NumHsmall);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectX", ref _Theme.SongMenuTileBoard.TileRect.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectY", ref _Theme.SongMenuTileBoard.TileRect.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectZ", ref _Theme.SongMenuTileBoard.TileRect.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectW", ref _Theme.SongMenuTileBoard.TileRect.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectH", ref _Theme.SongMenuTileBoard.TileRect.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectX", ref _Theme.SongMenuTileBoard.TileRect.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectY", ref _Theme.SongMenuTileBoard.TileRect.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectZ", ref _Theme.SongMenuTileBoard.TileRect.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectW", ref _Theme.SongMenuTileBoard.TileRect.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectH", ref _Theme.SongMenuTileBoard.TileRect.H);
|
||||
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallX", ref _Theme.SongMenuTileBoard.TileRectSmall.X);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallY", ref _Theme.SongMenuTileBoard.TileRectSmall.Y);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallZ", ref _Theme.SongMenuTileBoard.TileRectSmall.Z);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallW", ref _Theme.SongMenuTileBoard.TileRectSmall.W);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallH", ref _Theme.SongMenuTileBoard.TileRectSmall.H);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallX", ref _Theme.SongMenuTileBoard.TileRectSmall.X);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallY", ref _Theme.SongMenuTileBoard.TileRectSmall.Y);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallZ", ref _Theme.SongMenuTileBoard.TileRectSmall.Z);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallW", ref _Theme.SongMenuTileBoard.TileRectSmall.W);
|
||||
ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SongMenuTileBoard/TileRectSmallH", ref _Theme.SongMenuTileBoard.TileRectSmall.H);
|
||||
#endregion SongMenuTileBoard
|
||||
|
||||
if (_ThemeLoaded)
|
||||
if (ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
|
||||
@@ -227,7 +224,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
Init();
|
||||
}
|
||||
|
||||
return _ThemeLoaded;
|
||||
return ThemeLoaded;
|
||||
}
|
||||
#endregion Theme
|
||||
|
||||
|
||||
@@ -143,15 +143,15 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
|
||||
_Theme.SongMenuTileBoard.TextArtist = _Artist.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextSongLength = _SongLength.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextTitle = _Title.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticCoverBig = _CoverBig.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticDuetIcon = _DuetIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticMedleyCalcIcon = _MedleyCalcIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticMedleyTagIcon = _MedleyTagIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticTextBG = _TextBG.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticVideoIcon = _VideoIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextArtist = (SThemeText)_Artist.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextSongLength = (SThemeText)_SongLength.GetTheme();
|
||||
_Theme.SongMenuTileBoard.TextTitle = (SThemeText)_Title.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticCoverBig = (SThemeStatic)_CoverBig.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticDuetIcon = (SThemeStatic)_DuetIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticMedleyCalcIcon = (SThemeStatic)_MedleyCalcIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticMedleyTagIcon = (SThemeStatic)_MedleyTagIcon.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticTextBG = (SThemeStatic)_TextBG.GetTheme();
|
||||
_Theme.SongMenuTileBoard.StaticVideoIcon = (SThemeStatic)_VideoIcon.GetTheme();
|
||||
|
||||
LoadSkin();
|
||||
Init();
|
||||
|
||||
@@ -45,8 +45,5 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
int GetPreviewSong();
|
||||
|
||||
bool SmallView { get; set; }
|
||||
|
||||
bool ThemeLoaded { get; }
|
||||
SThemeSongMenu GetTheme();
|
||||
}
|
||||
}
|
||||
@@ -23,17 +23,22 @@ namespace VocaluxeLib.PartyModes
|
||||
public abstract class CPartyMode : IPartyMode
|
||||
{
|
||||
private readonly string _Folder;
|
||||
public int ID { get; private set; }
|
||||
private readonly int _ID;
|
||||
protected SScreenSongOptions _ScreenSongOptions = new SScreenSongOptions {Selection = new SSelectionOptions(), Sorting = new SSortingOptions()};
|
||||
protected readonly Dictionary<string, CMenuParty> _Screens = new Dictionary<string, CMenuParty>();
|
||||
|
||||
protected CPartyMode(int id, string folder)
|
||||
{
|
||||
ID = id;
|
||||
_ID = id;
|
||||
_Folder = folder;
|
||||
}
|
||||
|
||||
#region Implementation
|
||||
public int ID
|
||||
{
|
||||
get { return _ID; }
|
||||
}
|
||||
|
||||
public abstract bool Init();
|
||||
|
||||
public void LoadTheme()
|
||||
|
||||
@@ -23,8 +23,7 @@ namespace VocaluxeLib.PartyModes
|
||||
public class CPartyModeNone : CPartyMode
|
||||
{
|
||||
//just a dummy for normal game mode
|
||||
public CPartyModeNone(int id, string folder)
|
||||
: base(id, folder)
|
||||
public CPartyModeNone(int id, string folder) : base(id, folder)
|
||||
{
|
||||
_ScreenSongOptions.Selection.RandomOnly = false;
|
||||
_ScreenSongOptions.Selection.PartyMode = false;
|
||||
|
||||
Reference in new issue
Block a user