Merge branch 'develop' of git://github.com/flokuep/Vocaluxe into Better_Graphics_Handling
Conflicts: Vocaluxe/COSFunctions.cs VocaluxeLib/CHelper.cs VocaluxeLib/Menu/CStatic.cs VocaluxeLib/Structs.cs
This commit is contained in:
commit
c156fa69ab
550 files changed
+22434
-23687
No files matched your search
@@ -30,7 +30,13 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public CSongMenu(int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_CreateSongMenu();
|
||||
_CreateSongMenu(new SThemeSongMenu());
|
||||
}
|
||||
|
||||
public CSongMenu(SThemeSongMenu theme, int partyModeID)
|
||||
{
|
||||
_PartyModeID = partyModeID;
|
||||
_CreateSongMenu(theme);
|
||||
}
|
||||
|
||||
#region ISongMenu
|
||||
@@ -63,6 +69,11 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
get { return _SongMenu.Rect; }
|
||||
}
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _SongMenu.ThemeLoaded; }
|
||||
}
|
||||
|
||||
public void Update(SScreenSongOptions songOptions)
|
||||
{
|
||||
_SongMenu.Update(songOptions);
|
||||
@@ -150,11 +161,6 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
return _SongMenu.LoadTheme(xmlPath, elementName, xmlReader, skinIndex);
|
||||
}
|
||||
|
||||
public bool SaveTheme(XmlWriter writer)
|
||||
{
|
||||
return _SongMenu.SaveTheme(writer);
|
||||
}
|
||||
|
||||
public void UnloadTextures()
|
||||
{
|
||||
_SongMenu.UnloadTextures();
|
||||
@@ -179,9 +185,14 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
_SongMenu.ResizeElement(stepW, stepH);
|
||||
}
|
||||
|
||||
public SThemeSongMenu GetTheme()
|
||||
{
|
||||
return _SongMenu.GetTheme();
|
||||
}
|
||||
#endregion IMenuElement
|
||||
|
||||
private void _CreateSongMenu()
|
||||
private void _CreateSongMenu(SThemeSongMenu theme)
|
||||
{
|
||||
if (_SongMenu != null)
|
||||
_SongMenu.OnHide();
|
||||
@@ -197,7 +208,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
// _SongMenu = new CSongMenuDreidel();
|
||||
// break;
|
||||
case ESongMenu.TR_CONFIG_TILE_BOARD:
|
||||
_SongMenu = new CSongMenuTileBoard(_PartyModeID);
|
||||
_SongMenu = new CSongMenuTileBoard(theme, _PartyModeID);
|
||||
break;
|
||||
|
||||
//case ESongMenu.TR_CONFIG_BOOK:
|
||||
|
||||
@@ -19,77 +19,116 @@ using System;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Xml;
|
||||
using System.Xml.Serialization;
|
||||
using VocaluxeLib.Draw;
|
||||
using VocaluxeLib.PartyModes;
|
||||
using VocaluxeLib.Songs;
|
||||
|
||||
namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
struct SThemeSongMenu
|
||||
[XmlType("SongMenu")]
|
||||
public struct SThemeSongMenu
|
||||
{
|
||||
[XmlAttributeAttribute(AttributeName = "Name")]
|
||||
public string Name;
|
||||
|
||||
[XmlElement("CoverBackground")]
|
||||
public string CoverBackgroundName;
|
||||
[XmlElement("CoverBigBackground")]
|
||||
public string CoverBigBackgroundName;
|
||||
[XmlElement("DuetIcon")]
|
||||
public string DuetIconName;
|
||||
[XmlElement("VideoIcon")]
|
||||
public string VideoIconName;
|
||||
|
||||
[XmlElement("MedleyCalcIcon")]
|
||||
public string MedleyCalcIcon;
|
||||
[XmlElement("MedleyTagIcon")]
|
||||
public string MedleyTagIcon;
|
||||
|
||||
public string ColorName;
|
||||
[XmlElement("Color")]
|
||||
public SThemeColor Color;
|
||||
|
||||
//public SThemeSongMenuBook songMenuBook;
|
||||
//public SThemeSongMenuDreidel songMenuDreidel;
|
||||
//public SThemeSongMenuList songMenuList;
|
||||
[XmlElement("SongMenuTileBoard")]
|
||||
public SThemeSongMenuTileBoard SongMenuTileBoard;
|
||||
|
||||
public SThemeSongMenu(SThemeSongMenu theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
CoverBackgroundName = theme.CoverBackgroundName;
|
||||
CoverBigBackgroundName = theme.CoverBigBackgroundName;
|
||||
DuetIconName = theme.DuetIconName;
|
||||
VideoIconName = theme.VideoIconName;
|
||||
MedleyCalcIcon = theme.MedleyCalcIcon;
|
||||
MedleyTagIcon = theme.MedleyTagIcon;
|
||||
Color = new SThemeColor(theme.Color);
|
||||
SongMenuTileBoard = theme.SongMenuTileBoard;
|
||||
}
|
||||
}
|
||||
|
||||
struct SThemeSongMenuTileBoard
|
||||
public struct SThemeSongMenuTileBoard
|
||||
{
|
||||
[XmlElement("NumW")]
|
||||
/// <summary>
|
||||
/// Number of tiles horizontal
|
||||
/// </summary>
|
||||
public int NumW;
|
||||
|
||||
[XmlElement("NumH")]
|
||||
/// <summary>
|
||||
/// Number of tiles vertical
|
||||
/// </summary>
|
||||
public int NumH;
|
||||
|
||||
[XmlElement("NumWsmall")]
|
||||
/// <summary>
|
||||
/// Number of tiles horizontal in small-modus
|
||||
/// </summary>
|
||||
public int NumWsmall;
|
||||
|
||||
|
||||
[XmlElement("NumHsmall")]
|
||||
/// <summary>
|
||||
/// Number of tiles vertical in small-modus
|
||||
/// </summary>
|
||||
public int NumHsmall;
|
||||
|
||||
[XmlElement("SpaceW")]
|
||||
/// <summary>
|
||||
/// Space between tiles horizontal
|
||||
/// </summary>
|
||||
public float SpaceW;
|
||||
|
||||
[XmlElement("SpaceH")]
|
||||
/// <summary>
|
||||
/// Space between tiles vertical
|
||||
/// </summary>
|
||||
public float SpaceH;
|
||||
|
||||
[XmlElement("TileRect")]
|
||||
public SRectF TileRect;
|
||||
[XmlElement("TileRectSmall")]
|
||||
public SRectF TileRectSmall;
|
||||
|
||||
public CText TextArtist;
|
||||
public CText TextTitle;
|
||||
public CText TextSongLength;
|
||||
[XmlElement("TextArtist")]
|
||||
public SThemeText TextArtist;
|
||||
[XmlElement("TextTitle")]
|
||||
public SThemeText TextTitle;
|
||||
[XmlElement("TextSongLength")]
|
||||
public SThemeText TextSongLength;
|
||||
|
||||
public CStatic StaticCoverBig;
|
||||
public CStatic StaticTextBG;
|
||||
public CStatic StaticDuetIcon;
|
||||
public CStatic StaticVideoIcon;
|
||||
public CStatic StaticMedleyCalcIcon;
|
||||
public CStatic StaticMedleyTagIcon;
|
||||
[XmlElement("StaticCoverBig")]
|
||||
public SThemeStatic StaticCoverBig;
|
||||
[XmlElement("StaticTextBG")]
|
||||
public SThemeStatic StaticTextBG;
|
||||
[XmlElement("StaticDuetIcon")]
|
||||
public SThemeStatic StaticDuetIcon;
|
||||
[XmlElement("StaticVideoIcon")]
|
||||
public SThemeStatic StaticVideoIcon;
|
||||
[XmlElement("StaticMedleyCalcIcon")]
|
||||
public SThemeStatic StaticMedleyCalcIcon;
|
||||
[XmlElement("StaticMedleyTagIcon")]
|
||||
public SThemeStatic StaticMedleyTagIcon;
|
||||
}
|
||||
|
||||
abstract class CSongMenuFramework : ISongMenu
|
||||
@@ -98,6 +137,11 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
protected SThemeSongMenu _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
public bool ThemeLoaded
|
||||
{
|
||||
get { return _ThemeLoaded; }
|
||||
}
|
||||
|
||||
protected bool _Initialized;
|
||||
|
||||
private int _PreviewNrInternal = -1;
|
||||
@@ -157,21 +201,15 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
Visible = true;
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SThemeSongMenu
|
||||
{
|
||||
SongMenuTileBoard =
|
||||
{
|
||||
TextArtist = new CText(_PartyModeID),
|
||||
TextTitle = new CText(_PartyModeID),
|
||||
TextSongLength = new CText(_PartyModeID),
|
||||
StaticCoverBig = new CStatic(_PartyModeID),
|
||||
StaticTextBG = new CStatic(_PartyModeID),
|
||||
StaticDuetIcon = new CStatic(_PartyModeID),
|
||||
StaticVideoIcon = new CStatic(_PartyModeID),
|
||||
StaticMedleyCalcIcon = new CStatic(_PartyModeID),
|
||||
StaticMedleyTagIcon = new CStatic(_PartyModeID)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
protected CSongMenuFramework(SThemeSongMenu theme, int partyModeID)
|
||||
{
|
||||
Visible = true;
|
||||
_PartyModeID = partyModeID;
|
||||
_Theme = new SThemeSongMenu(theme);
|
||||
|
||||
LoadTextures();
|
||||
}
|
||||
|
||||
#region Theme
|
||||
@@ -180,7 +218,12 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXMLReader xmlReader, int skinIndex)
|
||||
public SThemeSongMenu GetTheme()
|
||||
{
|
||||
return new SThemeSongMenu(_Theme);
|
||||
}
|
||||
|
||||
public virtual bool LoadTheme(string xmlPath, string elementName, CXMLReader xmlReader, int skinIndex)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
_ThemeLoaded = true;
|
||||
@@ -192,8 +235,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_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.ColorName, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out _ColorInternal);
|
||||
if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty))
|
||||
_ThemeLoaded &= CBase.Theme.GetColor(_Theme.Color.Name, skinIndex, out _ColorInternal);
|
||||
else
|
||||
{
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _ColorInternal.R);
|
||||
@@ -201,6 +244,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _ColorInternal.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _ColorInternal.A);
|
||||
}
|
||||
_Theme.Color.Color = new SColorF(_ColorInternal);
|
||||
|
||||
#region SongMenuTileBoard
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.SongMenuTileBoard.NumW);
|
||||
@@ -211,17 +255,6 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumWsmall", ref _Theme.SongMenuTileBoard.NumWsmall);
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumHsmall", ref _Theme.SongMenuTileBoard.NumHsmall);
|
||||
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.TextArtist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.TextTitle.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.TextSongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", xmlReader, skinIndex);
|
||||
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.StaticCoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.StaticTextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.StaticDuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.StaticVideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.StaticMedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", xmlReader, skinIndex);
|
||||
_ThemeLoaded &= _Theme.SongMenuTileBoard.StaticMedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", xmlReader, skinIndex);
|
||||
|
||||
_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);
|
||||
@@ -238,6 +271,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
_Theme.Name = elementName;
|
||||
|
||||
LoadTextures();
|
||||
Init();
|
||||
}
|
||||
@@ -245,98 +279,6 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
return _ThemeLoaded;
|
||||
}
|
||||
|
||||
public bool SaveTheme(XmlWriter writer)
|
||||
{
|
||||
if (_ThemeLoaded)
|
||||
{
|
||||
writer.WriteStartElement(_Theme.Name);
|
||||
|
||||
writer.WriteComment("<CoverBackground>: Texture name of cover background/tiles");
|
||||
writer.WriteElementString("CoverBackground", _Theme.CoverBackgroundName);
|
||||
|
||||
writer.WriteComment("<CoverBigBackground>: Texture name of big cover background and info texts");
|
||||
writer.WriteElementString("CoverBigBackground", _Theme.CoverBigBackgroundName);
|
||||
|
||||
writer.WriteComment("<DuetIcon>: Texture name of duet icon");
|
||||
writer.WriteElementString("DuetIcon", _Theme.DuetIconName);
|
||||
|
||||
writer.WriteComment("<VideoIcon>: Texture name of video icon");
|
||||
writer.WriteElementString("VideoIcon", _Theme.VideoIconName);
|
||||
|
||||
writer.WriteComment("<MedleyCalcIcon>: Texture name of medley calc (calculated) icon");
|
||||
writer.WriteElementString("MedleyCalcIcon", _Theme.MedleyCalcIcon);
|
||||
|
||||
writer.WriteComment("<MedleyTagIcon>: Texture name of medley tag (manuelly set) icon");
|
||||
writer.WriteElementString("MedleyTagIcon", _Theme.MedleyTagIcon);
|
||||
|
||||
writer.WriteComment("<Color>: Tile color from ColorScheme (high priority)");
|
||||
writer.WriteComment("or <R>, <G>, <B>, <A> (lower priority)");
|
||||
if (!String.IsNullOrEmpty(_Theme.ColorName))
|
||||
writer.WriteElementString("Color", _Theme.ColorName);
|
||||
else
|
||||
{
|
||||
writer.WriteElementString("R", _Color.R.ToString("#0.00"));
|
||||
writer.WriteElementString("G", _Color.G.ToString("#0.00"));
|
||||
writer.WriteElementString("B", _Color.B.ToString("#0.00"));
|
||||
writer.WriteElementString("A", _Color.A.ToString("#0.00"));
|
||||
}
|
||||
|
||||
#region SongMenuTileBoard
|
||||
writer.WriteComment("<SongMenuTileBoard>: Config for TileBoard view");
|
||||
writer.WriteStartElement("SongMenuTileBoard");
|
||||
|
||||
writer.WriteComment("<NumW>: Number of tiles horizontal");
|
||||
writer.WriteElementString("NumW", _Theme.SongMenuTileBoard.NumW.ToString());
|
||||
|
||||
writer.WriteComment("<NumH>: Number of tiles vertical");
|
||||
writer.WriteElementString("NumH", _Theme.SongMenuTileBoard.NumH.ToString());
|
||||
|
||||
writer.WriteComment("<SpaceW>: Space between tiles horizontal");
|
||||
writer.WriteElementString("SpaceW", _Theme.SongMenuTileBoard.SpaceW.ToString("#0.00"));
|
||||
|
||||
writer.WriteComment("<SpaceH>: Space between tiles vertical");
|
||||
writer.WriteElementString("SpaceH", _Theme.SongMenuTileBoard.SpaceH.ToString("#0.00"));
|
||||
|
||||
writer.WriteComment("<NumWsmall>: Number of tiles horizontal in small-mode");
|
||||
writer.WriteElementString("NumWsmall", _Theme.SongMenuTileBoard.NumWsmall.ToString());
|
||||
|
||||
writer.WriteComment("<NumHsmall>: Number of tiles vertical in small-mode");
|
||||
writer.WriteElementString("NumHsmall", _Theme.SongMenuTileBoard.NumHsmall.ToString());
|
||||
|
||||
writer.WriteComment("<TileRectX>, <TileRectY>, <TileRectZ>, <TileRectW>, <TileRectH>: SongMenu position, width and height");
|
||||
writer.WriteElementString("TileRectX", _Theme.SongMenuTileBoard.TileRect.X.ToString("#0"));
|
||||
writer.WriteElementString("TileRectY", _Theme.SongMenuTileBoard.TileRect.Y.ToString("#0"));
|
||||
writer.WriteElementString("TileRectZ", _Theme.SongMenuTileBoard.TileRect.Z.ToString("#0.00"));
|
||||
writer.WriteElementString("TileRectW", _Theme.SongMenuTileBoard.TileRect.W.ToString("#0"));
|
||||
writer.WriteElementString("TileRectH", _Theme.SongMenuTileBoard.TileRect.H.ToString("#0"));
|
||||
|
||||
writer.WriteComment("<TileRectSmallX>, <TileRectSmallY>, <TileRectSmallZ>, <TileRectSmallW>, <TileRectSmallH>: SongMenu position, width and height in small-mode");
|
||||
writer.WriteElementString("TileRectSmallX", _Theme.SongMenuTileBoard.TileRectSmall.X.ToString("#0"));
|
||||
writer.WriteElementString("TileRectSmallY", _Theme.SongMenuTileBoard.TileRectSmall.Y.ToString("#0"));
|
||||
writer.WriteElementString("TileRectSmallZ", _Theme.SongMenuTileBoard.TileRectSmall.Z.ToString("#0.00"));
|
||||
writer.WriteElementString("TileRectSmallW", _Theme.SongMenuTileBoard.TileRectSmall.W.ToString("#0"));
|
||||
writer.WriteElementString("TileRectSmallH", _Theme.SongMenuTileBoard.TileRectSmall.H.ToString("#0"));
|
||||
|
||||
_Theme.SongMenuTileBoard.TextArtist.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.TextTitle.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.TextSongLength.SaveTheme(writer);
|
||||
|
||||
_Theme.SongMenuTileBoard.StaticCoverBig.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.StaticTextBG.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.StaticDuetIcon.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.StaticVideoIcon.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.StaticMedleyCalcIcon.SaveTheme(writer);
|
||||
_Theme.SongMenuTileBoard.StaticMedleyTagIcon.SaveTheme(writer);
|
||||
|
||||
writer.WriteEndElement();
|
||||
#endregion SongMenuTileBoard
|
||||
|
||||
writer.WriteEndElement();
|
||||
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#endregion Theme
|
||||
|
||||
public virtual void Init()
|
||||
@@ -427,8 +369,11 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
Init();
|
||||
|
||||
if (!String.IsNullOrEmpty(_Theme.ColorName))
|
||||
_ColorInternal = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID);
|
||||
if (!String.IsNullOrEmpty(_Theme.Color.Name))
|
||||
_ColorInternal = CBase.Theme.GetColor(_Theme.Color.Name, _PartyModeID);
|
||||
else
|
||||
_ColorInternal = _Theme.Color.Color;
|
||||
|
||||
}
|
||||
|
||||
public void ReloadTextures()
|
||||
|
||||
@@ -19,6 +19,7 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Windows.Forms;
|
||||
using System.Xml;
|
||||
using VocaluxeLib.Draw;
|
||||
using VocaluxeLib.PartyModes;
|
||||
using VocaluxeLib.Songs;
|
||||
@@ -46,9 +47,6 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
private int _NumW;
|
||||
private int _NumH;
|
||||
|
||||
private float _SpaceW;
|
||||
private float _SpaceH;
|
||||
|
||||
private int _TileW;
|
||||
private int _TileH;
|
||||
|
||||
@@ -104,6 +102,9 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public CSongMenuTileBoard(int partyModeID)
|
||||
: base(partyModeID) {}
|
||||
|
||||
public CSongMenuTileBoard(SThemeSongMenu theme, int partyModeID)
|
||||
: base(theme, partyModeID) {}
|
||||
|
||||
protected override int _PreviewNr
|
||||
{
|
||||
set
|
||||
@@ -119,24 +120,50 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
}
|
||||
}
|
||||
|
||||
public override bool LoadTheme(string xmlPath, string elementName, CXMLReader xmlReader, int skinIndex)
|
||||
{
|
||||
string item = xmlPath + "/" + elementName;
|
||||
|
||||
bool themeLoaded = true;
|
||||
themeLoaded &= base.LoadTheme(xmlPath, elementName, xmlReader, skinIndex);
|
||||
|
||||
|
||||
themeLoaded &= _Artist.LoadTheme(item + "/SongMenuTileBoard", "TextArtist", xmlReader, skinIndex);
|
||||
themeLoaded &= _Title.LoadTheme(item + "/SongMenuTileBoard", "TextTitle", xmlReader, skinIndex);
|
||||
themeLoaded &= _SongLength.LoadTheme(item + "/SongMenuTileBoard", "TextSongLength", xmlReader, skinIndex);
|
||||
|
||||
themeLoaded &= _CoverBig.LoadTheme(item + "/SongMenuTileBoard", "StaticCoverBig", xmlReader, skinIndex);
|
||||
themeLoaded &= _TextBG.LoadTheme(item + "/SongMenuTileBoard", "StaticTextBG", xmlReader, skinIndex);
|
||||
themeLoaded &= _DuetIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticDuetIcon", xmlReader, skinIndex);
|
||||
themeLoaded &= _VideoIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticVideoIcon", xmlReader, skinIndex);
|
||||
themeLoaded &= _MedleyCalcIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyCalcIcon", xmlReader, skinIndex);
|
||||
themeLoaded &= _MedleyTagIcon.LoadTheme(item + "/SongMenuTileBoard", "StaticMedleyTagIcon", xmlReader, skinIndex);
|
||||
|
||||
if (themeLoaded)
|
||||
{
|
||||
_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();
|
||||
|
||||
LoadTextures();
|
||||
Init();
|
||||
}
|
||||
|
||||
return themeLoaded;
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
_SpaceW = _Theme.SongMenuTileBoard.SpaceW;
|
||||
_SpaceH = _Theme.SongMenuTileBoard.SpaceH;
|
||||
|
||||
_CoverBig = _Theme.SongMenuTileBoard.StaticCoverBig;
|
||||
_TextBG = _Theme.SongMenuTileBoard.StaticTextBG;
|
||||
_DuetIcon = _Theme.SongMenuTileBoard.StaticDuetIcon;
|
||||
_VideoIcon = _Theme.SongMenuTileBoard.StaticVideoIcon;
|
||||
_MedleyCalcIcon = _Theme.SongMenuTileBoard.StaticMedleyCalcIcon;
|
||||
_MedleyTagIcon = _Theme.SongMenuTileBoard.StaticMedleyTagIcon;
|
||||
|
||||
_Artist = _Theme.SongMenuTileBoard.TextArtist;
|
||||
_Title = _Theme.SongMenuTileBoard.TextTitle;
|
||||
_SongLength = _Theme.SongMenuTileBoard.TextSongLength;
|
||||
|
||||
_PreviewNr = -1;
|
||||
_InitTiles();
|
||||
}
|
||||
@@ -156,8 +183,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
Rect = _Theme.SongMenuTileBoard.TileRect;
|
||||
}
|
||||
|
||||
_TileW = (int)((Rect.W - _SpaceW * (_NumW - 1)) / _NumW);
|
||||
_TileH = (int)((Rect.H - _SpaceH * (_NumH - 1)) / _NumH);
|
||||
_TileW = (int)((Rect.W - _Theme.SongMenuTileBoard.SpaceW * (_NumW - 1)) / _NumW);
|
||||
_TileH = (int)((Rect.H - _Theme.SongMenuTileBoard.SpaceH * (_NumH - 1)) / _NumH);
|
||||
|
||||
_CoverBGTexture = CBase.Theme.GetSkinTexture(_Theme.CoverBackgroundName, _PartyModeID);
|
||||
_CoverBigBGTexture = CBase.Theme.GetSkinTexture(_Theme.CoverBigBackgroundName, _PartyModeID);
|
||||
@@ -167,7 +194,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
for (int j = 0; j < _NumW; j++)
|
||||
{
|
||||
var rect = new SRectF(Rect.X + j * (_TileW + _SpaceW), Rect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, Rect.Z);
|
||||
var rect = new SRectF(Rect.X + j * (_TileW + _Theme.SongMenuTileBoard.SpaceW), Rect.Y + i * (_TileH + _Theme.SongMenuTileBoard.SpaceH), _TileW, _TileH, Rect.Z);
|
||||
var tile = new CStatic(_PartyModeID, _CoverBGTexture, _Color, rect);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
@@ -588,16 +615,17 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
{
|
||||
base.LoadTextures();
|
||||
|
||||
_Theme.SongMenuTileBoard.StaticCoverBig.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.StaticTextBG.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.StaticDuetIcon.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.StaticVideoIcon.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.StaticMedleyCalcIcon.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.StaticMedleyTagIcon.ReloadTextures();
|
||||
_Artist = new CText(_Theme.SongMenuTileBoard.TextArtist, _PartyModeID);
|
||||
_Title = new CText(_Theme.SongMenuTileBoard.TextTitle, _PartyModeID);
|
||||
_SongLength = new CText(_Theme.SongMenuTileBoard.TextSongLength, _PartyModeID);
|
||||
_CoverBig = new CStatic(_Theme.SongMenuTileBoard.StaticCoverBig, _PartyModeID);
|
||||
_TextBG = new CStatic(_Theme.SongMenuTileBoard.StaticTextBG, _PartyModeID);
|
||||
_DuetIcon = new CStatic(_Theme.SongMenuTileBoard.StaticDuetIcon, _PartyModeID);
|
||||
_VideoIcon = new CStatic(_Theme.SongMenuTileBoard.StaticVideoIcon, _PartyModeID);
|
||||
_MedleyCalcIcon = new CStatic(_Theme.SongMenuTileBoard.StaticMedleyCalcIcon, _PartyModeID);
|
||||
_MedleyTagIcon = new CStatic(_Theme.SongMenuTileBoard.StaticMedleyTagIcon, _PartyModeID);
|
||||
|
||||
_Theme.SongMenuTileBoard.TextArtist.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.TextTitle.ReloadTextures();
|
||||
_Theme.SongMenuTileBoard.TextSongLength.ReloadTextures();
|
||||
Init();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -50,5 +50,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
bool Selected { get; set; }
|
||||
bool Visible { get; set; }
|
||||
bool SmallView { get; set; }
|
||||
|
||||
bool ThemeLoaded { get; }
|
||||
SThemeSongMenu GetTheme();
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user