protected virtual void _OnSongMenuChanged() { for (int i = 0; i < _SongMenus.Count; i++) { SThemeSongMenu theme = (SThemeSongMenu)_SongMenus[i].GetTheme(); _SongMenus[i] = CSongMenuFactory.CreateSongMenu(theme, PartyModeID); _SongMenus[i].LoadSkin(); } }
public virtual void LoadTheme(string xmlPath) { ThemePath = xmlPath; string file = Path.Combine(xmlPath, ThemeName + ".xml"); try { CXmlDeserializer deserializer = new CXmlDeserializer(new CLoadThemeErrorHandler()); Theme = deserializer.Deserialize <SThemeScreen>(file); foreach (SThemeBackground bg in Theme.Backgrounds) { _AddBackground(new CBackground(bg, PartyModeID), bg.Name); } foreach (SThemeButton bt in Theme.Buttons) { _AddButton(new CButton(bt, PartyModeID), bt.Name); } foreach (SThemeEqualizer eq in Theme.Equalizers) { _AddEqualizer(new CEqualizer(eq, PartyModeID), eq.Name); } foreach (SThemeLyrics ly in Theme.Lyrics) { _AddLyric(new CLyric(ly, PartyModeID), ly.Name); } foreach (SThemeNameSelection ns in Theme.NameSelections) { _AddNameSelection(new CNameSelection(ns, PartyModeID), ns.Name); } foreach (SThemeParticleEffect pe in Theme.ParticleEffects) { _AddParticleEffect(new CParticleEffect(pe, PartyModeID), pe.Name); } foreach (SThemePlaylist pl in Theme.Playlists) { _AddPlaylist(new CPlaylist(pl, PartyModeID), pl.Name); } foreach (SThemeProgressBar pb in Theme.ProgressBars) { _AddProgressBar(new CProgressBar(pb, PartyModeID), pb.Name); } foreach (SThemeScreenSetting ss in Theme.ScreenSettings) { _AddScreenSetting(new CScreenSetting(ss, PartyModeID), ss.Name); } foreach (SThemeSelectSlide sl in Theme.SelectSlides) { _AddSelectSlide(new CSelectSlide(sl, PartyModeID), sl.Name); } foreach (SThemeSingBar sb in Theme.SingNotes) { _AddSingNote(new CSingNotes(sb, PartyModeID), sb.Name); } foreach (SThemeSongMenu sm in Theme.SongMenus) { _AddSongMenu(CSongMenuFactory.CreateSongMenu(sm, PartyModeID), sm.Name); } foreach (SThemeStatic st in Theme.Statics) { _AddStatic(new CStatic(st, PartyModeID), st.Name); } foreach (SThemeText te in Theme.Texts) { _AddText(new CText(te, PartyModeID), te.Name); } if (_ScreenVersion != Theme.Informations.ScreenVersion) { string msg = "Can't load screen file of screen \"" + ThemeName + "\", "; if (Theme.Informations.ScreenVersion < _ScreenVersion) { msg += "the file ist outdated! "; } else { msg += "the file is for newer program versions! "; } msg += "Current screen version is " + _ScreenVersion; CLog.Error(msg); } foreach (IThemeable el in _Elements.Select(_GetElement).OfType <IThemeable>()) { el.LoadSkin(); } } catch (Exception e) { CLog.Fatal(e, "Error while reading {ThemeName}.xml", CLog.Params(ThemeName), true); } }
public void LoadThemeOld(string xmlPath) { string file = Path.Combine(xmlPath, ThemeName + ".xml"); CXmlReader xmlReader = CXmlReader.OpenFile(file); if (xmlReader == null) { return; } bool versionCheck = _CheckVersion(_ScreenVersion, xmlReader); if (versionCheck) { ThemePath = xmlPath; _LoadThemeBasics(xmlReader); _LoadThemeElement <CBackground>(_ThemeBackgrounds, _AddBackground, xmlReader); _LoadThemeElement <CStatic>(_ThemeStatics, _AddStatic, xmlReader); _LoadThemeElement <CText>(_ThemeTexts, _AddText, xmlReader); _LoadThemeElement <CButton>(_ThemeButtons, _AddButton, xmlReader); _LoadThemeElement <CSelectSlide>(_ThemeSelectSlides, _AddSelectSlide, xmlReader); foreach (string elName in _ThemeSongMenus) { ISongMenu element = CSongMenuFactory.CreateSongMenu(PartyModeID); if (element.LoadTheme("//root/" + ThemeName, elName, xmlReader)) { _AddSongMenu(element, elName); } else { CBase.Log.LogError("Can't load songmenu \"" + elName + "\" in screen " + ThemeName); } } _LoadThemeElement <CSongMenuFramework>(_ThemeSongMenus, _AddSongMenu, xmlReader); _LoadThemeElement <CLyric>(_ThemeLyrics, _AddLyric, xmlReader); _LoadThemeElement <CSingNotes>(_ThemeSingNotes, _AddSingNote, xmlReader); _LoadThemeElement <CNameSelection>(_ThemeNameSelections, _AddNameSelection, xmlReader); _LoadThemeElement <CEqualizer>(_ThemeEqualizers, _AddEqualizer, xmlReader); _LoadThemeElement <CPlaylist>(_ThemePlaylists, _AddPlaylist, xmlReader); _LoadThemeElement <CParticleEffect>(_ThemeParticleEffects, _AddParticleEffect, xmlReader); _LoadThemeElement <CScreenSetting>(_ThemeScreenSettings, _AddScreenSetting, xmlReader); } Theme.Informations.ScreenName = ThemeName; Theme.Informations.ScreenVersion = _ScreenVersion; Theme.Backgrounds = new List <SThemeBackground>(); Theme.Statics = new List <SThemeStatic>(); Theme.Texts = new List <SThemeText>(); Theme.Buttons = new List <SThemeButton>(); Theme.SongMenus = new List <SThemeSongMenu>(); Theme.Lyrics = new List <SThemeLyrics>(); Theme.SelectSlides = new List <SThemeSelectSlide>(); Theme.SingNotes = new List <SThemeSingBar>(); Theme.NameSelections = new List <SThemeNameSelection>(); Theme.Equalizers = new List <SThemeEqualizer>(); Theme.Playlists = new List <SThemePlaylist>(); Theme.ParticleEffects = new List <SThemeParticleEffect>(); Theme.ScreenSettings = new List <SThemeScreenSetting>(); }