diff --git a/VocaluxeLib/Menu/CButton.cs b/VocaluxeLib/Menu/CButton.cs index a6dbf7ad..e96e77a5 100644 --- a/VocaluxeLib/Menu/CButton.cs +++ b/VocaluxeLib/Menu/CButton.cs @@ -95,6 +95,32 @@ namespace Vocaluxe.Menu SReflectionHeight = 0f; } + public CButton(CButton button) + { + _PartyModeID = button._PartyModeID; + _Base = button._Base; + _Theme = new SThemeButton(); + Rect = new SRectF(button.Rect); + Color = new SColorF(button.Color); + SColor = new SColorF(button.Color); + + SelText = false; + Text = new CText(button.Text); + SText = new CText(button.SText); + Selected = false; + Visible = true; + EditMode = false; + _ThemeLoaded = false; + + Reflection = button.Reflection; + ReflectionHeight = button.ReflectionHeight; + ReflectionSpace = button.ReflectionSpace; + + SReflection = button.SReflection; + SReflectionHeight = button.SReflectionHeight; + SReflectionSpace = button.SReflectionSpace; + } + public bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex) { string item = XmlPath + "/" + ElementName; diff --git a/VocaluxeLib/Menu/CMenu.cs b/VocaluxeLib/Menu/CMenu.cs index 0d0b3f8b..c5f589ef 100644 --- a/VocaluxeLib/Menu/CMenu.cs +++ b/VocaluxeLib/Menu/CMenu.cs @@ -75,7 +75,7 @@ namespace Vocaluxe.Menu protected string[] _ThemePlaylists; protected SRectF _ScreenArea; - private Basic _Base; + protected Basic _Base; public SRectF ScreenArea { @@ -663,11 +663,21 @@ namespace Vocaluxe.Menu return new CButton(_Base, _PartyModeID); } + public CButton GetNewButton(CButton button) + { + return new CButton(button); + } + public CText GetNewText() { return new CText(_Base, _PartyModeID); } + public CText GetNewText(CText text) + { + return new CText(text); + } + public CText GetNewText(float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text) { return new CText(_Base, x, y, z, h, mw, align, style, font, col, text); @@ -684,6 +694,11 @@ namespace Vocaluxe.Menu return new CStatic(_Base, _PartyModeID); } + public CStatic GetNewStatic(CStatic Static) + { + return new CStatic(Static); + } + public CStatic GetNewStatic(STexture Texture, SColorF Color, SRectF Rect) { return new CStatic(_Base, _PartyModeID, Texture, Color, Rect); @@ -694,6 +709,11 @@ namespace Vocaluxe.Menu return new CSelectSlide(_Base, _PartyModeID); } + public CSelectSlide GetNewSelectSlide(CSelectSlide slide) + { + return new CSelectSlide(slide); + } + public CSongMenu GetNewSongMenu() { return new CSongMenu(_Base, _PartyModeID);