コード例 #1
0
 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();
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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>();
        }