Added constructors to STheme* for copying.
This commit is contained in:
1 parent
cea276090d
commit
9cca49745a
13 files changed
+246
-25
No files matched your search
@@ -48,6 +48,16 @@ namespace VocaluxeLib.Menu
|
||||
[XmlElement("Skin")]
|
||||
public string TextureName;
|
||||
public SThemeColor Color;
|
||||
|
||||
public SThemeBackground(SThemeBackground theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
Type = theme.Type;
|
||||
SlideShowTextures = theme.SlideShowTextures;
|
||||
VideoName = theme.VideoName;
|
||||
TextureName = theme.TextureName;
|
||||
Color = new SThemeColor(theme.Color);
|
||||
}
|
||||
}
|
||||
|
||||
public class CBackground : IMenuElement
|
||||
@@ -256,7 +266,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeBackground GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeBackground(_Theme);
|
||||
}
|
||||
#endregion public
|
||||
|
||||
|
||||
@@ -42,7 +42,20 @@ namespace VocaluxeLib.Menu
|
||||
[XmlElement("Reflection")]
|
||||
public SReflection Reflection;
|
||||
[XmlElement("SelReflection")]
|
||||
public SReflection SelReflection;
|
||||
public SReflection SelReflection;
|
||||
|
||||
public SThemeButton(SThemeButton theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
TextureName = theme.TextureName;
|
||||
SelTextureName = theme.SelTextureName;
|
||||
Rect = new SRectF(theme.Rect);
|
||||
Color = new SThemeColor(theme.Color);
|
||||
SelColor = new SThemeColor(theme.SelColor);
|
||||
Text = new SThemeText(theme.Text);
|
||||
Reflection = new SReflection(theme.Reflection);
|
||||
SelReflection = new SReflection(theme.SelReflection);
|
||||
}
|
||||
}
|
||||
|
||||
public class CButton : IMenuElement
|
||||
@@ -396,7 +409,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeButton GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeButton(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -53,6 +53,20 @@ namespace VocaluxeLib.Menu
|
||||
public SThemeColor MaxColor;
|
||||
[XmlElement("Reflection")]
|
||||
public SReflection Reflection;
|
||||
|
||||
public SThemeEqualizer(SThemeEqualizer theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
TextureName = theme.TextureName;
|
||||
Rect = new SRectF(theme.Rect);
|
||||
NumBars = theme.NumBars;
|
||||
Space = theme.Space;
|
||||
Style = theme.Style;
|
||||
DrawNegative = theme.DrawNegative;
|
||||
Color = new SThemeColor(theme.Color);
|
||||
MaxColor = new SThemeColor(theme.MaxColor);
|
||||
Reflection = new SReflection(theme.Reflection);
|
||||
}
|
||||
}
|
||||
|
||||
public class CEqualizer : IMenuElement
|
||||
@@ -332,7 +346,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeEqualizer GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeEqualizer(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -35,6 +35,14 @@ namespace VocaluxeLib.Menu
|
||||
public SThemeColor Color;
|
||||
[XmlElement("SColor")]
|
||||
public SThemeColor SColor;
|
||||
|
||||
public SThemeLyrics(SThemeLyrics theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
Rect = new SRectF(theme.Rect);
|
||||
Color = new SThemeColor(theme.Color);
|
||||
SColor = new SThemeColor(theme.SColor);
|
||||
}
|
||||
}
|
||||
|
||||
public class CLyric : IMenuElement
|
||||
@@ -499,7 +507,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeLyrics GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeLyrics(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -40,6 +40,16 @@ namespace VocaluxeLib.Menu
|
||||
public string TextureTileSelectedName;
|
||||
[XmlElement("Tiles")]
|
||||
public SThemeNameSelectionTiles Tiles;
|
||||
|
||||
public SThemeNameSelection(SThemeNameSelection theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
Rect = new SRectF(theme.Rect);
|
||||
TextureEmptyTileName = theme.TextureEmptyTileName;
|
||||
ColorEmptyTile = new SThemeColor(theme.ColorEmptyTile);
|
||||
TextureTileSelectedName = theme.TextureTileSelectedName;
|
||||
Tiles = new SThemeNameSelectionTiles(theme.Tiles);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SThemeNameSelectionTiles
|
||||
@@ -54,6 +64,15 @@ namespace VocaluxeLib.Menu
|
||||
public int NumH;
|
||||
[XmlElement("Name")]
|
||||
public SThemeNameSelectionName Name;
|
||||
|
||||
public SThemeNameSelectionTiles(SThemeNameSelectionTiles theme)
|
||||
{
|
||||
W = theme.W;
|
||||
H = theme.H;
|
||||
NumW = theme.NumW;
|
||||
NumH = theme.NumH;
|
||||
Name = new SThemeNameSelectionName(theme.Name);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SThemeNameSelectionName
|
||||
@@ -68,6 +87,15 @@ namespace VocaluxeLib.Menu
|
||||
public EStyle Style;
|
||||
[XmlElement("Color")]
|
||||
public SThemeColor Color;
|
||||
|
||||
public SThemeNameSelectionName(SThemeNameSelectionName theme)
|
||||
{
|
||||
Space = theme.Space;
|
||||
Height = theme.Height;
|
||||
Font = theme.Font;
|
||||
Style = theme.Style;
|
||||
Color = new SThemeColor(theme.Color);
|
||||
}
|
||||
}
|
||||
|
||||
public class CNameSelection : IMenuElement
|
||||
@@ -609,7 +637,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeNameSelection GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeNameSelection(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -42,6 +42,17 @@ namespace VocaluxeLib.Menu
|
||||
public float Size;
|
||||
[XmlElement("MaxNumber")]
|
||||
public int MaxNumber;
|
||||
|
||||
public SThemeParticleEffect(SThemeParticleEffect theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
TextureName = theme.TextureName;
|
||||
Rect = new SRectF(theme.Rect);
|
||||
Color = new SThemeColor(theme.Color);
|
||||
Type = theme.Type;
|
||||
Size = theme.Size;
|
||||
MaxNumber = theme.MaxNumber;
|
||||
}
|
||||
}
|
||||
|
||||
public enum EParticleType
|
||||
@@ -632,7 +643,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeParticleEffect GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeParticleEffect(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -119,6 +119,37 @@ namespace VocaluxeLib.Menu
|
||||
public SThemeSelectSlide SSelectSlideGameMode;
|
||||
[XmlIgnore]
|
||||
public CSelectSlide SelectSlideGameMode;
|
||||
|
||||
public SThemePlaylist(SThemePlaylist theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
Rect = theme.Rect;
|
||||
EntryHeight = theme.EntryHeight;
|
||||
TextureBackgroundName = theme.TextureBackgroundName;
|
||||
SelTextureBackgroundName = theme.SelTextureBackgroundName;
|
||||
ColorBackground = new SThemeColor(theme.ColorBackground);
|
||||
SelColorBackground = new SThemeColor(theme.SelColorBackground);
|
||||
SText1 = new SThemeText(theme.SText1);
|
||||
Text1 = new CText(theme.Text1);
|
||||
SStaticCover = new SThemeStatic(theme.SStaticCover);
|
||||
StaticCover = new CStatic(theme.StaticCover);
|
||||
SStaticPlaylistHeader = new SThemeStatic(theme.SStaticPlaylistHeader);
|
||||
StaticPlaylistHeader = new CStatic(theme.StaticPlaylistHeader);
|
||||
SStaticPlaylistFooter = new SThemeStatic(theme.SStaticPlaylistFooter);
|
||||
StaticPlaylistFooter = new CStatic(theme.StaticPlaylistFooter);
|
||||
SButtonPlaylistName = new SThemeButton(theme.SButtonPlaylistName);
|
||||
ButtonPlaylistName = new CButton(theme.ButtonPlaylistName);
|
||||
SButtonPlaylistClose = new SThemeButton(theme.SButtonPlaylistClose);
|
||||
ButtonPlaylistClose = new CButton(theme.ButtonPlaylistClose);
|
||||
SButtonPlaylistSave = new SThemeButton(theme.SButtonPlaylistSave);
|
||||
ButtonPlaylistSave = new CButton(theme.ButtonPlaylistSave);
|
||||
SButtonPlaylistDelete = new SThemeButton(theme.SButtonPlaylistDelete);
|
||||
ButtonPlaylistDelete = new CButton(theme.ButtonPlaylistDelete);
|
||||
SButtonPlaylistSing = new SThemeButton(theme.SButtonPlaylistSing);
|
||||
ButtonPlaylistSing = new CButton(theme.ButtonPlaylistSing);
|
||||
SSelectSlideGameMode = new SThemeSelectSlide(theme.SSelectSlideGameMode);
|
||||
SelectSlideGameMode = new CSelectSlide(theme.SelectSlideGameMode);
|
||||
}
|
||||
}
|
||||
|
||||
public class CPlaylist : IMenuElement
|
||||
@@ -1297,7 +1328,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemePlaylist GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemePlaylist(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -39,6 +39,13 @@ namespace VocaluxeLib.Menu
|
||||
public string Value;
|
||||
[XmlElement("Type")]
|
||||
public ESettingType Type;
|
||||
|
||||
public SScreenSetting(SScreenSetting theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
Value = theme.Value;
|
||||
Type = theme.Type;
|
||||
}
|
||||
}
|
||||
|
||||
// ReSharper disable ClassNeverInstantiated.Global
|
||||
@@ -125,7 +132,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SScreenSetting GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SScreenSetting(_Theme);
|
||||
}
|
||||
|
||||
#region Private
|
||||
|
||||
@@ -87,6 +87,35 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
[XmlElement("NumVisible")]
|
||||
public int NumVisible;
|
||||
|
||||
public SThemeSelectSlide(SThemeSelectSlide theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
TextureName = theme.TextureName;
|
||||
TextureArrowLeftName = theme.TextureArrowLeftName;
|
||||
TextureArrowRightName = theme.TextureArrowRightName;
|
||||
SelTextureName = theme.SelTextureName;
|
||||
SelTextureArrowLeftName = theme.SelTextureArrowLeftName;
|
||||
SelTextureArrowRightName = theme.SelTextureArrowRightName;
|
||||
HighlightTextureName = theme.HighlightTextureName;
|
||||
Rect = new SRectF(theme.Rect);
|
||||
RectArrowLeft = new SRectF(theme.RectArrowLeft);
|
||||
RectArrowRight = new SRectF(theme.RectArrowRight);
|
||||
Color = new SThemeColor(theme.Color);
|
||||
SColor = new SThemeColor(theme.SColor);
|
||||
HColor = new SThemeColor(theme.HColor);
|
||||
ArrowColor = new SThemeColor(theme.ArrowColor);
|
||||
ArrowSColor = new SThemeColor(theme.ArrowSColor);
|
||||
TextColor = new SThemeColor(theme.TextColor);
|
||||
TextSColor = new SThemeColor(theme.TextSColor);
|
||||
TextH = theme.TextH;
|
||||
TextRelativeX = theme.TextRelativeX;
|
||||
TextRelativeY = theme.TextRelativeY;
|
||||
TextMaxW = theme.TextMaxW;
|
||||
TextFont = theme.TextFont;
|
||||
TextStyle = theme.TextStyle;
|
||||
NumVisible = theme.NumVisible;
|
||||
}
|
||||
}
|
||||
|
||||
public class CSelectSlide : IMenuElement, ICloneable
|
||||
@@ -870,7 +899,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeSelectSlide GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeSelectSlide(_Theme);
|
||||
}
|
||||
|
||||
public void UnloadTextures() {}
|
||||
|
||||
@@ -32,6 +32,15 @@ namespace VocaluxeLib.Menu
|
||||
public SThemeColor Color;
|
||||
public SRectF Rect;
|
||||
public SReflection Reflection;
|
||||
|
||||
public SThemeStatic(SThemeStatic theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
TextureName = theme.TextureName;
|
||||
Color = new SThemeColor(theme.Color);
|
||||
Rect = new SRectF(theme.Rect);
|
||||
Reflection = new SReflection(theme.Reflection);
|
||||
}
|
||||
}
|
||||
|
||||
public class CStatic : IMenuElement
|
||||
@@ -254,7 +263,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeStatic GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeStatic(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -49,8 +49,23 @@ namespace VocaluxeLib.Menu
|
||||
[XmlElement("Text")]
|
||||
public string Text;
|
||||
public SReflection Reflection;
|
||||
|
||||
|
||||
|
||||
public SThemeText(SThemeText theme)
|
||||
{
|
||||
Name = theme.Name;
|
||||
X = theme.X;
|
||||
Y = theme.Y;
|
||||
Z = theme.Z;
|
||||
Height = theme.Height;
|
||||
Color = new SThemeColor(theme.Color);
|
||||
SColor = new SThemeColor(theme.SColor);
|
||||
Align = theme.Align;
|
||||
ResizeAlign = theme.ResizeAlign;
|
||||
Style = theme.Style;
|
||||
Font = theme.Font;
|
||||
Text = theme.Text;
|
||||
Reflection = new SReflection(theme.Reflection);
|
||||
}
|
||||
}
|
||||
|
||||
public class CText : IMenuElement
|
||||
@@ -578,7 +593,7 @@ namespace VocaluxeLib.Menu
|
||||
|
||||
public SThemeText GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeText(_Theme);
|
||||
}
|
||||
|
||||
#region ThemeEdit
|
||||
|
||||
@@ -44,16 +44,27 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public string MedleyCalcIcon;
|
||||
[XmlElement("MedleyTagIcon")]
|
||||
public string MedleyTagIcon;
|
||||
[XmlElement("ColorName")]
|
||||
public string ColorName;
|
||||
[XmlElement("Color")]
|
||||
public SColorF 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 = new SThemeSongMenuTileBoard(theme.SongMenuTileBoard);
|
||||
}
|
||||
}
|
||||
|
||||
public struct SThemeSongMenuTileBoard
|
||||
@@ -136,6 +147,36 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
public SThemeStatic SStaticMedleyTagIcon;
|
||||
[XmlIgnore]
|
||||
public CStatic StaticMedleyTagIcon;
|
||||
|
||||
public SThemeSongMenuTileBoard(SThemeSongMenuTileBoard theme)
|
||||
{
|
||||
NumW = theme.NumW;
|
||||
NumH = theme.NumH;
|
||||
NumWsmall = theme.NumWsmall;
|
||||
NumHsmall = theme.NumHsmall;
|
||||
SpaceW = theme.SpaceW;
|
||||
SpaceH = theme.SpaceH;
|
||||
TileRect = new SRectF(theme.TileRect);
|
||||
TileRectSmall = new SRectF(theme.TileRectSmall);
|
||||
STextArtist = new SThemeText(theme.STextArtist);
|
||||
TextArtist = new CText(theme.TextArtist);
|
||||
STextTitle = new SThemeText(theme.STextTitle);
|
||||
TextTitle = new CText(theme.TextTitle);
|
||||
STextSongLength = new SThemeText(theme.STextSongLength);
|
||||
TextSongLength = new CText(theme.TextSongLength);
|
||||
SStaticCoverBig = new SThemeStatic(theme.SStaticCoverBig);
|
||||
StaticCoverBig = new CStatic(theme.StaticCoverBig);
|
||||
SStaticTextBG = new SThemeStatic(theme.SStaticTextBG);
|
||||
StaticTextBG = new CStatic(theme.StaticTextBG);
|
||||
SStaticDuetIcon = new SThemeStatic(theme.SStaticDuetIcon);
|
||||
StaticDuetIcon = new CStatic(theme.StaticDuetIcon);
|
||||
SStaticVideoIcon = new SThemeStatic(theme.SStaticVideoIcon);
|
||||
StaticVideoIcon = new CStatic(theme.StaticVideoIcon);
|
||||
SStaticMedleyCalcIcon = new SThemeStatic(theme.SStaticMedleyCalcIcon);
|
||||
StaticMedleyCalcIcon = new CStatic(theme.StaticMedleyCalcIcon);
|
||||
SStaticMedleyTagIcon = new SThemeStatic(theme.SStaticMedleyTagIcon);
|
||||
StaticMedleyTagIcon = new CStatic(theme.StaticMedleyTagIcon);
|
||||
}
|
||||
}
|
||||
|
||||
abstract class CSongMenuFramework : ISongMenu
|
||||
@@ -233,7 +274,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
|
||||
public SThemeSongMenu GetTheme()
|
||||
{
|
||||
return _Theme;
|
||||
return new SThemeSongMenu(_Theme);
|
||||
}
|
||||
|
||||
public bool LoadTheme(string xmlPath, string elementName, CXMLReader xmlReader, int skinIndex)
|
||||
@@ -248,8 +289,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);
|
||||
@@ -257,7 +298,7 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/B", ref _ColorInternal.B);
|
||||
_ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _ColorInternal.A);
|
||||
}
|
||||
_Theme.Color = new SColorF(_ColorInternal);
|
||||
_Theme.Color.Color = new SColorF(_ColorInternal);
|
||||
|
||||
#region SongMenuTileBoard
|
||||
_ThemeLoaded &= xmlReader.TryGetIntValue(item + "/SongMenuTileBoard/NumW", ref _Theme.SongMenuTileBoard.NumW);
|
||||
@@ -339,8 +380,8 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
|
||||
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);
|
||||
if (!String.IsNullOrEmpty(_Theme.Color.Name))
|
||||
writer.WriteElementString("Color", _Theme.Color.Name);
|
||||
else
|
||||
{
|
||||
writer.WriteElementString("R", _Color.R.ToString("#0.00"));
|
||||
@@ -495,8 +536,8 @@ 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);
|
||||
}
|
||||
|
||||
public void ReloadTextures()
|
||||
|
||||
@@ -72,6 +72,11 @@ namespace VocaluxeLib
|
||||
public bool ColorSpecified { get { return Name == ""; } }
|
||||
public bool NameSpecified { get { return Name != ""; } }
|
||||
|
||||
public SThemeColor(SThemeColor theme)
|
||||
{
|
||||
Color = new SColorF(theme.Color);
|
||||
Name = theme.Name;
|
||||
}
|
||||
}
|
||||
|
||||
public struct SRectF
|
||||
|
||||
Reference in new issue
Block a user