From 96e50f7723095c6c99771be6cb5ab3f49605a1fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20K=C3=BCpper?= Date: Tue, 9 Sep 2014 21:32:07 +0200 Subject: [PATCH] Changed theme-color-handling. --- VocaluxeLib/Menu/CBackground.cs | 18 ++-- VocaluxeLib/Menu/CButton.cs | 38 ++++---- VocaluxeLib/Menu/CEqualizer.cs | 36 ++++---- VocaluxeLib/Menu/CLyric.cs | 36 ++++---- VocaluxeLib/Menu/CNameSelection.cs | 52 +++++------ VocaluxeLib/Menu/CParticle.cs | 18 ++-- VocaluxeLib/Menu/CPlaylist.cs | 36 ++++---- VocaluxeLib/Menu/CSelectSlide.cs | 140 +++++++++++++---------------- VocaluxeLib/Menu/CStatic.cs | 18 ++-- VocaluxeLib/Menu/CText.cs | 36 ++++---- VocaluxeLib/Structs.cs | 25 ++++-- 11 files changed, 208 insertions(+), 245 deletions(-) diff --git a/VocaluxeLib/Menu/CBackground.cs b/VocaluxeLib/Menu/CBackground.cs index cb353fbe..0aed7bea 100644 --- a/VocaluxeLib/Menu/CBackground.cs +++ b/VocaluxeLib/Menu/CBackground.cs @@ -47,9 +47,7 @@ namespace VocaluxeLib.Menu public string VideoName; [XmlElement("Skin")] public string TextureName; - [XmlElement("ColorName")] - public string ColorName; - public SColorF Color; + public SThemeColor Color; } public class CBackground : IMenuElement @@ -96,8 +94,8 @@ namespace VocaluxeLib.Menu bool tex = xmlReader.GetValue(item + "/Skin", out _Theme.TextureName, String.Empty); _ThemeLoaded &= vid || tex || _Theme.Type == EBackgroundTypes.None; - if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color); + if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Color.Name, skinIndex, out Color); else { bool success = true; @@ -110,7 +108,7 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= success; } - _Theme.Color = new SColorF(Color); + _Theme.Color.Color = new SColorF(Color); int i = 1; @@ -152,8 +150,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Background color for type \"Color\" from ColorScheme (high priority)"); writer.WriteComment("or , , , (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 { if (_Theme.Type != EBackgroundTypes.None) @@ -222,8 +220,8 @@ namespace VocaluxeLib.Menu public void LoadTextures() { - if (!String.IsNullOrEmpty(_Theme.ColorName)) - Color = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.Color.Name)) + Color = CBase.Theme.GetColor(_Theme.Color.Name, _PartyModeID); foreach (string s in _Theme.SlideShowTextures) _SlideShowTextures.Add(CBase.Theme.GetSkinTexture(s, _PartyModeID)); diff --git a/VocaluxeLib/Menu/CButton.cs b/VocaluxeLib/Menu/CButton.cs index ff2e3537..a4a00b2b 100644 --- a/VocaluxeLib/Menu/CButton.cs +++ b/VocaluxeLib/Menu/CButton.cs @@ -33,14 +33,10 @@ namespace VocaluxeLib.Menu [XmlElement("SkinSelected")] public string SelTextureName; public SRectF Rect; - [XmlElement("ColorName")] - public string ColorName; [XmlElement("Color")] - public SColorF Color; - [XmlElement("SelColorName")] - public string SelColorName; + public SThemeColor Color; [XmlElement("SelColor")] - public SColorF SelColor; + public SThemeColor SelColor; [XmlElement("Text")] public SThemeText Text; [XmlElement("Reflection")] @@ -133,8 +129,6 @@ namespace VocaluxeLib.Menu _PartyModeID = button._PartyModeID; _Theme = new SThemeButton { - ColorName = button._Theme.ColorName, - SelColorName = button._Theme.SelColorName, TextureName = button._Theme.TextureName, SelTextureName = button._Theme.SelTextureName }; @@ -174,8 +168,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref Rect.W); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref Rect.H); - if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color); + if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Color.Name, skinIndex, out Color); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R); @@ -184,8 +178,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A); } - if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out SelColor); + if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColor.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColor.Name, skinIndex, out SelColor); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref SelColor.R); @@ -237,8 +231,8 @@ namespace VocaluxeLib.Menu { _Theme.Name = elementName; _Theme.Rect = new SRectF(Rect); - _Theme.Color = new SColorF(Color); - _Theme.SelColor = new SColorF(SelColor); + _Theme.Color.Color = new SColorF(Color); + _Theme.SelColor.Color = new SColorF(SelColor); _Theme.Text = Text.GetTheme(); LoadTextures(); @@ -267,8 +261,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Button color from ColorScheme (high priority)"); writer.WriteComment("or , , , (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")); @@ -279,8 +273,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Selected button color from ColorScheme (high priority)"); writer.WriteComment("or , , , (lower priority)"); - if (!String.IsNullOrEmpty(_Theme.SelColorName)) - writer.WriteElementString("SColor", _Theme.SelColorName); + if (!String.IsNullOrEmpty(_Theme.SelColor.Name)) + writer.WriteElementString("SColor", _Theme.SelColor.Name); else { writer.WriteElementString("SR", SelColor.R.ToString("#0.00")); @@ -387,11 +381,11 @@ namespace VocaluxeLib.Menu { Text.LoadTextures(); - if (!String.IsNullOrEmpty(_Theme.ColorName)) - Color = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.Color.Name)) + Color = CBase.Theme.GetColor(_Theme.Color.Name, _PartyModeID); - if (!String.IsNullOrEmpty(_Theme.SelColorName)) - SelColor = CBase.Theme.GetColor(_Theme.SelColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.SelColor.Name)) + SelColor = CBase.Theme.GetColor(_Theme.SelColor.Name, _PartyModeID); } public void ReloadTextures() diff --git a/VocaluxeLib/Menu/CEqualizer.cs b/VocaluxeLib/Menu/CEqualizer.cs index 0809ef85..d0fe220b 100644 --- a/VocaluxeLib/Menu/CEqualizer.cs +++ b/VocaluxeLib/Menu/CEqualizer.cs @@ -47,14 +47,10 @@ namespace VocaluxeLib.Menu [XmlElement("DrawNegative")] public EOffOn DrawNegative; - [XmlElement("ColorName")] - public string ColorName; [XmlElement("Color")] - public SColorF Color; - [XmlElement("MaxColorName")] - public string MaxColorName; + public SThemeColor Color; [XmlElement("MaxColor")] - public SColorF MaxColor; + public SThemeColor MaxColor; [XmlElement("Reflection")] public SReflection Reflection; } @@ -132,8 +128,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.TryGetEnumValue(item + "/DrawNegative", ref _Theme.DrawNegative); - if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color); + if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Color.Name, skinIndex, out Color); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref Color.R); @@ -142,8 +138,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref Color.A); } - if (xmlReader.GetValue(item + "/MaxColor", out _Theme.MaxColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out Color); + if (xmlReader.GetValue(item + "/MaxColor", out _Theme.MaxColor.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.MaxColor.Name, skinIndex, out Color); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/MaxR", ref MaxColor.R); @@ -171,8 +167,8 @@ namespace VocaluxeLib.Menu { _Theme.Name = elementName; _Theme.Space = Space; - _Theme.Color = new SColorF(Color); - _Theme.MaxColor = new SColorF(MaxColor); + _Theme.Color.Color = new SColorF(Color); + _Theme.MaxColor.Color = new SColorF(MaxColor); _Theme.Rect = Rect; _Bars = new float[_Theme.NumBars]; @@ -210,8 +206,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Equalizer color from ColorScheme (high priority)"); writer.WriteComment("or , , , (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")); @@ -221,8 +217,8 @@ namespace VocaluxeLib.Menu } writer.WriteComment(": Equalizer color for maximal volume from ColorScheme (high priority)"); writer.WriteComment("or , , , (lower priority)"); - if (!String.IsNullOrEmpty(_Theme.ColorName)) - writer.WriteElementString("MaxColor", _Theme.ColorName); + if (!String.IsNullOrEmpty(_Theme.MaxColor.Name)) + writer.WriteElementString("MaxColor", _Theme.MaxColor.Name); else { writer.WriteElementString("MaxR", Color.R.ToString("#0.00")); @@ -321,11 +317,11 @@ namespace VocaluxeLib.Menu public void LoadTextures() { - if (!String.IsNullOrEmpty(_Theme.ColorName)) - Color = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.Color.Name)) + Color = CBase.Theme.GetColor(_Theme.Color.Name, _PartyModeID); - if (!String.IsNullOrEmpty(_Theme.MaxColorName)) - MaxColor = CBase.Theme.GetColor(_Theme.MaxColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.MaxColor.Name)) + MaxColor = CBase.Theme.GetColor(_Theme.MaxColor.Name, _PartyModeID); } public void ReloadTextures() diff --git a/VocaluxeLib/Menu/CLyric.cs b/VocaluxeLib/Menu/CLyric.cs index 97a54f5d..8117f912 100644 --- a/VocaluxeLib/Menu/CLyric.cs +++ b/VocaluxeLib/Menu/CLyric.cs @@ -31,14 +31,10 @@ namespace VocaluxeLib.Menu [XmlElement("Rect")] public SRectF Rect; - [XmlElement("ColorName")] - public string ColorName; [XmlElement("Color")] - public SColorF Color; - [XmlElement("SColorName")] - public string SelColorName; + public SThemeColor Color; [XmlElement("SColor")] - public SColorF SColor; + public SThemeColor SColor; } public class CLyric : IMenuElement @@ -135,8 +131,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/W", ref _MaxW); _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/H", ref _H); - if (xmlReader.GetValue(item + "/Color", out _Theme.ColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorName, skinIndex, out _Color); + if (xmlReader.GetValue(item + "/Color", out _Theme.Color.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Color.Name, skinIndex, out _Color); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref _Color.R); @@ -145,8 +141,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/A", ref _Color.A); } - if (xmlReader.GetValue(item + "/SColor", out _Theme.SelColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.SelColorName, skinIndex, out _ColorProcessed); + if (xmlReader.GetValue(item + "/SColor", out _Theme.SColor.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.SColor.Name, skinIndex, out _ColorProcessed); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/SR", ref _ColorProcessed.R); @@ -158,8 +154,8 @@ namespace VocaluxeLib.Menu if (_ThemeLoaded) { _Theme.Name = elementName; - _Theme.Color = new SColorF(_Color); - _Theme.SColor = new SColorF(_ColorProcessed); + _Theme.Color.Color = new SColorF(_Color); + _Theme.SColor.Color = new SColorF(_ColorProcessed); _Theme.Rect = new SRectF(Rect); LoadTextures(); @@ -183,8 +179,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Lyric text color from ColorScheme (high priority)"); writer.WriteComment("or , , , (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")); @@ -195,8 +191,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Highlighted lyric color from ColorScheme (high priority)"); writer.WriteComment("or , , , (lower priority)"); - if (!String.IsNullOrEmpty(_Theme.SelColorName)) - writer.WriteElementString("SColor", _Theme.SelColorName); + if (!String.IsNullOrEmpty(_Theme.SColor.Name)) + writer.WriteElementString("SColor", _Theme.SColor.Name); else { writer.WriteElementString("SR", _ColorProcessed.R.ToString("#0.00")); @@ -488,11 +484,11 @@ namespace VocaluxeLib.Menu public void LoadTextures() { - if (!String.IsNullOrEmpty(_Theme.ColorName)) - _Color = CBase.Theme.GetColor(_Theme.ColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.Color.Name)) + _Color = CBase.Theme.GetColor(_Theme.Color.Name, _PartyModeID); - if (!String.IsNullOrEmpty(_Theme.SelColorName)) - _ColorProcessed = CBase.Theme.GetColor(_Theme.SelColorName, _PartyModeID); + if (!String.IsNullOrEmpty(_Theme.SColor.Name)) + _ColorProcessed = CBase.Theme.GetColor(_Theme.SColor.Name, _PartyModeID); } public void ReloadTextures() diff --git a/VocaluxeLib/Menu/CNameSelection.cs b/VocaluxeLib/Menu/CNameSelection.cs index 3eab70a6..ab7f1a45 100644 --- a/VocaluxeLib/Menu/CNameSelection.cs +++ b/VocaluxeLib/Menu/CNameSelection.cs @@ -34,10 +34,8 @@ namespace VocaluxeLib.Menu public SRectF Rect; [XmlElement("SkinEmptyTile")] public string TextureEmptyTileName; - [XmlElement("ColorNameEmptyTile")] - public string ColorEmptyTileName; [XmlElement("ColorEmptyTile")] - public SColorF ColorEmptyTile; + public SThemeColor ColorEmptyTile; [XmlElement("SkinTileSelected")] public string TextureTileSelectedName; [XmlElement("Tiles")] @@ -68,10 +66,8 @@ namespace VocaluxeLib.Menu public string Font; [XmlElement("Style")] public EStyle Style; - [XmlElement("ColorName")] - public string ColorName; [XmlElement("Color")] - public SColorF Color; + public SThemeColor Color; } public class CNameSelection : IMenuElement @@ -180,8 +176,8 @@ namespace VocaluxeLib.Menu _ThemeLoaded &= xmlReader.GetValue(item + "/SkinEmptyTile", out _Theme.TextureEmptyTileName, String.Empty); - if (xmlReader.GetValue(item + "/ColorEmptyTile", out _Theme.ColorEmptyTileName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorEmptyTileName, skinIndex, out ColorEmptyTile); + if (xmlReader.GetValue(item + "/ColorEmptyTile", out _Theme.ColorEmptyTile.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.ColorEmptyTile.Name, skinIndex, out ColorEmptyTile); else { _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/R", ref ColorEmptyTile.R); @@ -202,15 +198,15 @@ namespace VocaluxeLib.Menu _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.ColorName, String.Empty)) - _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Tiles.Name.ColorName, skinIndex, out _Theme.Tiles.Name.Color); + if (xmlReader.GetValue(item + "/Tiles/Name/Color", out _Theme.Tiles.Name.Color.Name, String.Empty)) + _ThemeLoaded &= CBase.Theme.GetColor(_Theme.Tiles.Name.Color.Name, skinIndex, out _Theme.Tiles.Name.Color.Color); else { - if (xmlReader.TryGetFloatValue(item + "/Tiles/Name/R", ref _Theme.Tiles.Name.Color.R)) + if (xmlReader.TryGetFloatValue(item + "/Tiles/Name/R", ref _Theme.Tiles.Name.Color.Color.R)) { - _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/G", ref _Theme.Tiles.Name.Color.G); - _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/B", ref _Theme.Tiles.Name.Color.B); - _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/A", ref _Theme.Tiles.Name.Color.A); + _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/G", ref _Theme.Tiles.Name.Color.Color.G); + _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/B", ref _Theme.Tiles.Name.Color.Color.B); + _ThemeLoaded &= xmlReader.TryGetFloatValue(item + "/Tiles/Name/A", ref _Theme.Tiles.Name.Color.Color.A); } } @@ -224,7 +220,7 @@ namespace VocaluxeLib.Menu _Theme.Tiles.W = _TileW; _Theme.Tiles.NumH = _NumH; _Theme.Tiles.NumW = _NumW; - _Theme.ColorEmptyTile = new SColorF(ColorEmptyTile); + _Theme.ColorEmptyTile.Color = new SColorF(ColorEmptyTile); LoadTextures(); } @@ -249,8 +245,8 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Static color from ColorScheme (high priority)"); writer.WriteComment("or , , , (lower priority)"); - if (!String.IsNullOrEmpty(_Theme.ColorEmptyTileName)) - writer.WriteElementString("ColorEmptyTile", _Theme.ColorEmptyTileName); + if (!String.IsNullOrEmpty(_Theme.ColorEmptyTile.Name)) + writer.WriteElementString("ColorEmptyTile", _Theme.ColorEmptyTile.Name); else { writer.WriteElementString("R", ColorEmptyTile.R.ToString("#0.00")); @@ -280,14 +276,14 @@ namespace VocaluxeLib.Menu writer.WriteComment(": Text font name"); writer.WriteElementString("Font", _Theme.Tiles.Name.Font); writer.WriteComment(": Text color from ColorScheme (high priority)"); - if (!String.IsNullOrEmpty(_Theme.Tiles.Name.ColorName)) - writer.WriteElementString("Color", _Theme.Tiles.Name.ColorName); + if (!String.IsNullOrEmpty(_Theme.Tiles.Name.Color.Name)) + writer.WriteElementString("Color", _Theme.Tiles.Name.Color.Name); else { - writer.WriteElementString("R", _Theme.Tiles.Name.Color.R.ToString("#0.00")); - writer.WriteElementString("G", _Theme.Tiles.Name.Color.G.ToString("#0.00")); - writer.WriteElementString("B", _Theme.Tiles.Name.Color.B.ToString("#0.00")); - writer.WriteElementString("A", _Theme.Tiles.Name.Color.A.ToString("#0.00")); + writer.WriteElementString("R", _Theme.Tiles.Name.Color.Color.R.ToString("#0.00")); + writer.WriteElementString("G", _Theme.Tiles.Name.Color.Color.G.ToString("#0.00")); + writer.WriteElementString("B", _Theme.Tiles.Name.Color.Color.B.ToString("#0.00")); + writer.WriteElementString("A", _Theme.Tiles.Name.Color.Color.A.ToString("#0.00")); } writer.WriteComment("