just another small step
This commit is contained in:
1 parent
79946a17c5
commit
99c956965e
29 files changed
+543
-383
No files matched your search
@@ -16,180 +16,6 @@ using Vocaluxe.Menu;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
#region Enums
|
||||
public enum ERenderer
|
||||
{
|
||||
#if WIN
|
||||
TR_CONFIG_DIRECT3D,
|
||||
#endif
|
||||
TR_CONFIG_OPENGL,
|
||||
TR_CONFIG_SOFTWARE
|
||||
}
|
||||
|
||||
public enum EAntiAliasingModes
|
||||
{
|
||||
x0 = 0,
|
||||
x2 = 2,
|
||||
x4 = 4,
|
||||
x8 = 8,
|
||||
x16 = 16,
|
||||
x32 = 32
|
||||
}
|
||||
|
||||
public enum EColorDeep
|
||||
{
|
||||
Bit8 = 8,
|
||||
Bit16 = 16,
|
||||
Bit24 = 24,
|
||||
Bit32 = 32
|
||||
}
|
||||
|
||||
public enum ETextureQuality
|
||||
{
|
||||
TR_CONFIG_TEXTURE_LOWEST,
|
||||
TR_CONFIG_TEXTURE_LOW,
|
||||
TR_CONFIG_TEXTURE_MEDIUM,
|
||||
TR_CONFIG_TEXTURE_HIGH,
|
||||
TR_CONFIG_TEXTURE_HIGHEST
|
||||
}
|
||||
|
||||
public enum EOffOn
|
||||
{
|
||||
TR_CONFIG_OFF,
|
||||
TR_CONFIG_ON
|
||||
}
|
||||
|
||||
public enum EDebugLevel
|
||||
{
|
||||
// don't change the order!
|
||||
TR_CONFIG_OFF, //no debug infos
|
||||
TR_CONFIG_ONLY_FPS,
|
||||
TR_CONFIG_LEVEL1,
|
||||
TR_CONFIG_LEVEL2,
|
||||
TR_CONFIG_LEVEL3,
|
||||
TR_CONFIG_LEVEL_MAX //all debug infos
|
||||
}
|
||||
|
||||
public enum EBufferSize
|
||||
{
|
||||
b0 = 0,
|
||||
b512 = 512,
|
||||
b1024 = 1024,
|
||||
b1536 = 1536,
|
||||
b2048 = 2048,
|
||||
b2560 = 2560,
|
||||
b3072 = 3072,
|
||||
b3584 = 3584,
|
||||
b4096 = 4096
|
||||
}
|
||||
|
||||
public enum EPlaybackLib
|
||||
{
|
||||
PortAudio,
|
||||
OpenAL
|
||||
}
|
||||
|
||||
public enum EWebcamLib
|
||||
{
|
||||
OpenCV,
|
||||
AForgeNet
|
||||
}
|
||||
|
||||
public enum ERecordLib
|
||||
{
|
||||
#if WIN
|
||||
DirectSound,
|
||||
#endif
|
||||
PortAudio
|
||||
}
|
||||
|
||||
public enum EVideoDecoder
|
||||
{
|
||||
FFmpeg
|
||||
}
|
||||
|
||||
public enum ESongMenu
|
||||
{
|
||||
//TR_CONFIG_LIST, //a simple list
|
||||
//TR_CONFIG_DREIDEL, //as in ultrastar deluxe
|
||||
TR_CONFIG_TILE_BOARD, //chessboard like
|
||||
//TR_CONFIG_BOOK //for playlists
|
||||
}
|
||||
|
||||
public enum ESongSorting
|
||||
{
|
||||
TR_CONFIG_NONE,
|
||||
//TR_CONFIG_RANDOM,
|
||||
TR_CONFIG_FOLDER,
|
||||
TR_CONFIG_ARTIST,
|
||||
TR_CONFIG_ARTIST_LETTER,
|
||||
TR_CONFIG_TITLE_LETTER,
|
||||
TR_CONFIG_EDITION,
|
||||
TR_CONFIG_GENRE,
|
||||
TR_CONFIG_LANGUAGE,
|
||||
TR_CONFIG_YEAR,
|
||||
TR_CONFIG_DECADE
|
||||
}
|
||||
|
||||
public enum ECoverLoading
|
||||
{
|
||||
TR_CONFIG_COVERLOADING_ONDEMAND,
|
||||
TR_CONFIG_COVERLOADING_ATSTART,
|
||||
TR_CONFIG_COVERLOADING_DYNAMIC
|
||||
}
|
||||
|
||||
public enum EGameDifficulty
|
||||
{
|
||||
TR_CONFIG_EASY,
|
||||
TR_CONFIG_NORMAL,
|
||||
TR_CONFIG_HARD
|
||||
}
|
||||
|
||||
public enum ETimerMode
|
||||
{
|
||||
TR_CONFIG_TIMERMODE_CURRENT,
|
||||
TR_CONFIG_TIMERMODE_REMAINING,
|
||||
TR_CONFIG_TIMERMODE_TOTAL
|
||||
}
|
||||
|
||||
public enum ETimerLook
|
||||
{
|
||||
TR_CONFIG_TIMERLOOK_NORMAL,
|
||||
TR_CONFIG_TIMERLOOK_EXPANDED
|
||||
}
|
||||
|
||||
public enum EBackgroundMusicSource
|
||||
{
|
||||
TR_CONFIG_NO_OWN_MUSIC,
|
||||
TR_CONFIG_OWN_MUSIC,
|
||||
TR_CONFIG_ONLY_OWN_MUSIC
|
||||
}
|
||||
|
||||
public enum EPlayerInfo
|
||||
{
|
||||
TR_CONFIG_PLAYERINFO_BOTH,
|
||||
TR_CONFIG_PLAYERINFO_NAME,
|
||||
TR_CONFIG_PLAYERINFO_AVATAR,
|
||||
TR_CONFIG_PLAYERINFO_OFF
|
||||
}
|
||||
|
||||
public enum EFadePlayerInfo
|
||||
{
|
||||
TR_CONFIG_FADEPLAYERINFO_ALL,
|
||||
TR_CONFIG_FADEPLAYERINFO_INFO,
|
||||
TR_CONFIG_FADEPLAYERINFO_OFF
|
||||
}
|
||||
|
||||
public enum ELyricStyle
|
||||
{
|
||||
Fill,
|
||||
Jump,
|
||||
Slide,
|
||||
Zoom
|
||||
}
|
||||
|
||||
#endregion Enums
|
||||
|
||||
static class CConfig
|
||||
{
|
||||
private static XmlWriterSettings _settings = new XmlWriterSettings();
|
||||
|
||||
+1
-23
@@ -15,29 +15,7 @@ using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
public enum EAlignment
|
||||
{
|
||||
Left,
|
||||
Center,
|
||||
Right
|
||||
}
|
||||
|
||||
public enum EHAlignment
|
||||
{
|
||||
Top,
|
||||
Center,
|
||||
Bottom
|
||||
}
|
||||
|
||||
public enum EStyle
|
||||
{
|
||||
Normal,
|
||||
Italic,
|
||||
Bold,
|
||||
BoldItalic
|
||||
}
|
||||
|
||||
{
|
||||
class CGlyph
|
||||
{
|
||||
private float _SIZEh = 50f;
|
||||
|
||||
@@ -7,6 +7,7 @@ using System.Text;
|
||||
using Vocaluxe.GameModes;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Lib.Song;
|
||||
using Vocaluxe.Menu;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
|
||||
@@ -5,6 +5,7 @@ using System.IO;
|
||||
using System.Text;
|
||||
|
||||
using Vocaluxe.Lib.Sound;
|
||||
using Vocaluxe.Menu;
|
||||
|
||||
namespace Vocaluxe.Base
|
||||
{
|
||||
|
||||
@@ -33,6 +33,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public class CBackground : IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeBackground _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -44,8 +45,9 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
|
||||
#region Constructors
|
||||
public CBackground()
|
||||
public CBackground(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_ThemeLoaded = false;
|
||||
_Theme = new SThemeBackground();
|
||||
|
||||
|
||||
@@ -23,6 +23,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class CButton : IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeButton _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -71,16 +72,17 @@ namespace Vocaluxe.Menu
|
||||
return _Theme.Name;
|
||||
}
|
||||
|
||||
public CButton()
|
||||
public CButton(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeButton();
|
||||
Rect = new SRectF();
|
||||
Color = new SColorF();
|
||||
SColor = new SColorF();
|
||||
|
||||
SelText = false;
|
||||
Text = new CText();
|
||||
SText = new CText();
|
||||
Text = new CText(_Base);
|
||||
SText = new CText(_Base);
|
||||
Selected = false;
|
||||
Visible = true;
|
||||
EditMode = false;
|
||||
|
||||
@@ -31,6 +31,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class CEqualizer : IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeEqualizer _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -54,8 +55,9 @@ namespace Vocaluxe.Menu
|
||||
|
||||
private float[] _Bars;
|
||||
|
||||
public CEqualizer()
|
||||
public CEqualizer(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeEqualizer();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
|
||||
@@ -30,6 +30,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class CLyric : IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeLyrics _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -87,8 +88,9 @@ namespace Vocaluxe.Menu
|
||||
set { _Style = value; }
|
||||
}
|
||||
|
||||
public CLyric()
|
||||
public CLyric(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeLyrics();
|
||||
_ThemeLoaded = false;
|
||||
Color = new SColorF();
|
||||
@@ -101,7 +103,7 @@ namespace Vocaluxe.Menu
|
||||
_H = 1f;
|
||||
_width = 1f;
|
||||
_Notes = new List<SNote>();
|
||||
_Text = new CText();
|
||||
_Text = new CText(_Base);
|
||||
|
||||
_Style = ELyricStyle.Fill;
|
||||
}
|
||||
@@ -145,7 +147,7 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
_Theme.Name = ElementName;
|
||||
LoadTextures();
|
||||
_Text = new CText(_X, _Y, _Z, _H, _MaxW, EAlignment.Left, EStyle.Bold, "Normal", Color, String.Empty);
|
||||
_Text = new CText(_Base, _X, _Y, _Z, _H, _MaxW, EAlignment.Left, EStyle.Bold, "Normal", Color, String.Empty);
|
||||
}
|
||||
return _ThemeLoaded;
|
||||
}
|
||||
|
||||
+163
-87
@@ -75,15 +75,7 @@ namespace Vocaluxe.Menu
|
||||
protected string[] _ThemePlaylists;
|
||||
|
||||
protected SRectF _ScreenArea;
|
||||
|
||||
private IConfig _Config;
|
||||
private ISettings _Settings;
|
||||
private ITheme _Theme;
|
||||
private IHelper _Helper;
|
||||
private ILog _Log;
|
||||
private IBackgroundMusic _BackgroundMusic;
|
||||
private IDrawing _Draw;
|
||||
private IGraphics _Graphics;
|
||||
private Base _Base;
|
||||
|
||||
public SRectF ScreenArea
|
||||
{
|
||||
@@ -106,15 +98,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public void Initialize(IConfig Config, ISettings Settings, ITheme Theme, IHelper Helper, ILog Log, IBackgroundMusic BackgroundMusic, IDrawing Draw, IGraphics Graphics)
|
||||
{
|
||||
_Config = Config;
|
||||
_Settings = Settings;
|
||||
_Theme = Theme;
|
||||
_Helper = Helper;
|
||||
_Log = Log;
|
||||
_BackgroundMusic = BackgroundMusic;
|
||||
_Draw = Draw;
|
||||
_Graphics = Graphics;
|
||||
|
||||
_Base = new Base(Config, Settings, Theme, Helper, Log, BackgroundMusic, Draw, Graphics);
|
||||
Init();
|
||||
}
|
||||
|
||||
@@ -154,7 +138,7 @@ namespace Vocaluxe.Menu
|
||||
_MouseDY = 0;
|
||||
|
||||
_Active = false;
|
||||
_ScreenArea = new SRectF(0f, 0f, _Settings.GetRenderW(), _Settings.GetRenderH(), 0f);
|
||||
_ScreenArea = new SRectF(0f, 0f, _Base.Settings.GetRenderW(), _Base.Settings.GetRenderH(), 0f);
|
||||
|
||||
_ThemeName = String.Empty;
|
||||
_ThemeBackgrounds = null;
|
||||
@@ -172,7 +156,7 @@ namespace Vocaluxe.Menu
|
||||
#region ThemeHandler
|
||||
public virtual void LoadTheme()
|
||||
{
|
||||
string file = Path.Combine(_Theme.GetThemeScreensPath(), _ThemeName + ".xml");
|
||||
string file = Path.Combine(_Base.Theme.GetThemeScreensPath(), _ThemeName + ".xml");
|
||||
|
||||
XPathDocument xPathDoc = null;
|
||||
XPathNavigator navigator = null;
|
||||
@@ -193,14 +177,14 @@ namespace Vocaluxe.Menu
|
||||
if (xPathDoc != null)
|
||||
xPathDoc = null;
|
||||
|
||||
_Log.LogError("Error loading theme file " + file + ": " + e.Message);
|
||||
_Base.Log.LogError("Error loading theme file " + file + ": " + e.Message);
|
||||
}
|
||||
|
||||
bool VersionCheck = false;
|
||||
if (loaded)
|
||||
VersionCheck = CheckVersion(_ScreenVersion, navigator);
|
||||
|
||||
int SkinIndex = _Theme.GetSkinIndex();
|
||||
int SkinIndex = _Base.Theme.GetSkinIndex();
|
||||
|
||||
if (loaded && VersionCheck && SkinIndex != -1)
|
||||
{
|
||||
@@ -210,14 +194,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeBackgrounds.Length; i++)
|
||||
{
|
||||
CBackground background = new CBackground();
|
||||
CBackground background = new CBackground(_Base);
|
||||
if (background.LoadTheme("//root/" + _ThemeName, _ThemeBackgrounds[i], navigator, SkinIndex))
|
||||
{
|
||||
_htBackgrounds.Add(_ThemeBackgrounds[i], AddBackground(background));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load Background \"" + _ThemeBackgrounds[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load Background \"" + _ThemeBackgrounds[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -226,14 +210,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeStatics.Length; i++)
|
||||
{
|
||||
CStatic stat = new CStatic();
|
||||
CStatic stat = new CStatic(_Base);
|
||||
if (stat.LoadTheme("//root/" + _ThemeName, _ThemeStatics[i], navigator, SkinIndex))
|
||||
{
|
||||
_htStatics.Add(_ThemeStatics[i], AddStatic(stat));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load Static \"" + _ThemeStatics[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load Static \"" + _ThemeStatics[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -242,14 +226,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeTexts.Length; i++)
|
||||
{
|
||||
CText text = new CText();
|
||||
CText text = new CText(_Base);
|
||||
if (text.LoadTheme("//root/" + _ThemeName, _ThemeTexts[i], navigator, SkinIndex))
|
||||
{
|
||||
_htTexts.Add(_ThemeTexts[i], AddText(text));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load Text \"" + _ThemeTexts[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load Text \"" + _ThemeTexts[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -258,14 +242,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeButtons.Length; i++)
|
||||
{
|
||||
CButton button = new CButton();
|
||||
CButton button = new CButton(_Base);
|
||||
if (button.LoadTheme("//root/" + _ThemeName, _ThemeButtons[i], navigator, SkinIndex))
|
||||
{
|
||||
_htButtons.Add(_ThemeButtons[i], AddButton(button));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load Button \"" + _ThemeButtons[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load Button \"" + _ThemeButtons[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -274,14 +258,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeSelectSlides.Length; i++)
|
||||
{
|
||||
CSelectSlide slide = new CSelectSlide();
|
||||
CSelectSlide slide = new CSelectSlide(_Base);
|
||||
if (slide.LoadTheme("//root/" + _ThemeName, _ThemeSelectSlides[i], navigator, SkinIndex))
|
||||
{
|
||||
_htSelectSlides.Add(_ThemeSelectSlides[i], AddSelectSlide(slide));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load SelectSlide \"" + _ThemeSelectSlides[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load SelectSlide \"" + _ThemeSelectSlides[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -290,14 +274,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeSongMenus.Length; i++)
|
||||
{
|
||||
CSongMenu sm = new CSongMenu();
|
||||
CSongMenu sm = new CSongMenu(_Base);
|
||||
if (sm.LoadTheme("//root/" + _ThemeName, _ThemeSongMenus[i], navigator, SkinIndex))
|
||||
{
|
||||
_htSongMenus.Add(_ThemeSongMenus[i], AddSongMenu(sm));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load SongMenu \"" + _ThemeSongMenus[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load SongMenu \"" + _ThemeSongMenus[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -306,14 +290,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeLyrics.Length; i++)
|
||||
{
|
||||
CLyric lyric = new CLyric();
|
||||
CLyric lyric = new CLyric(_Base);
|
||||
if (lyric.LoadTheme("//root/" + _ThemeName, _ThemeLyrics[i], navigator, SkinIndex))
|
||||
{
|
||||
_htLyrics.Add(_ThemeLyrics[i], AddLyric(lyric));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load Lyric \"" + _ThemeLyrics[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load Lyric \"" + _ThemeLyrics[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -322,14 +306,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeSingNotes.Length; i++)
|
||||
{
|
||||
CSingNotes notes = new CSingNotesClassic();
|
||||
CSingNotes notes = new CSingNotesClassic(_Base);
|
||||
if (notes.LoadTheme("//root/" + _ThemeName, _ThemeSingNotes[i], navigator, SkinIndex))
|
||||
{
|
||||
_htSingNotes.Add(_ThemeSingNotes[i], AddSingNote(notes));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load SingBar \"" + _ThemeSingNotes[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load SingBar \"" + _ThemeSingNotes[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -338,14 +322,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeNameSelections.Length; i++)
|
||||
{
|
||||
CNameSelection nsel = new CNameSelection();
|
||||
CNameSelection nsel = new CNameSelection(_Base);
|
||||
if (nsel.LoadTheme("//root/" + _ThemeName, _ThemeNameSelections[i], navigator, SkinIndex))
|
||||
{
|
||||
_htNameSelections.Add(_ThemeNameSelections[i], AddNameSelection(nsel));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load NameSelection \"" + _ThemeNameSelections[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load NameSelection \"" + _ThemeNameSelections[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -354,14 +338,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemeEqualizers.Length; i++)
|
||||
{
|
||||
CEqualizer eq = new CEqualizer();
|
||||
CEqualizer eq = new CEqualizer(_Base);
|
||||
if (eq.LoadTheme("//root/" + _ThemeName, _ThemeEqualizers[i], navigator, SkinIndex))
|
||||
{
|
||||
_htEqualizers.Add(_ThemeEqualizers[i], AddEqualizer(eq));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load equalizer \"" + _ThemeEqualizers[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load equalizer \"" + _ThemeEqualizers[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -370,14 +354,14 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
for (int i = 0; i < _ThemePlaylists.Length; i++)
|
||||
{
|
||||
CPlaylist pls = new CPlaylist();
|
||||
CPlaylist pls = new CPlaylist(_Base);
|
||||
if (pls.LoadTheme("//root/" + _ThemeName, _ThemePlaylists[i], navigator, SkinIndex))
|
||||
{
|
||||
_htPlaylists.Add(_ThemePlaylists[i], AddPlaylist(pls));
|
||||
}
|
||||
else
|
||||
{
|
||||
_Log.LogError("Can't load Playlist \"" + _ThemePlaylists[i] + "\" in screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't load Playlist \"" + _ThemePlaylists[i] + "\" in screen " + _ThemeName);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -395,7 +379,7 @@ namespace Vocaluxe.Menu
|
||||
settings.Encoding = Encoding.UTF8;
|
||||
settings.ConformanceLevel = ConformanceLevel.Document;
|
||||
|
||||
string file = Path.Combine(_Theme.GetThemeScreensPath(), _ThemeName + ".xml");
|
||||
string file = Path.Combine(_Base.Theme.GetThemeScreensPath(), _ThemeName + ".xml");
|
||||
XmlWriter writer = XmlWriter.Create(file, settings);
|
||||
|
||||
writer.WriteStartDocument();
|
||||
@@ -660,6 +644,74 @@ namespace Vocaluxe.Menu
|
||||
#endregion GetLists
|
||||
|
||||
#region ElementHandler
|
||||
#region Create Elements
|
||||
public CButton GetNewButton()
|
||||
{
|
||||
return new CButton(_Base);
|
||||
}
|
||||
|
||||
public CText GetNewText()
|
||||
{
|
||||
return new CText(_Base);
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
public CBackground GetNewBackground()
|
||||
{
|
||||
return new CBackground(_Base);
|
||||
}
|
||||
|
||||
public CStatic GetNewStatic()
|
||||
{
|
||||
return new CStatic(_Base);
|
||||
}
|
||||
|
||||
public CStatic GetNewStatic(STexture Texture, SColorF Color, SRectF Rect)
|
||||
{
|
||||
return new CStatic(_Base, Texture, Color, Rect);
|
||||
}
|
||||
|
||||
public CSelectSlide GetNewSelectSlide()
|
||||
{
|
||||
return new CSelectSlide(_Base);
|
||||
}
|
||||
|
||||
public CSongMenu GetNewSongMenu()
|
||||
{
|
||||
return new CSongMenu(_Base);
|
||||
}
|
||||
|
||||
public CLyric GetNewLyric()
|
||||
{
|
||||
return new CLyric(_Base);
|
||||
}
|
||||
|
||||
public CSingNotes GetNewSingNotes()
|
||||
{
|
||||
return new CSingNotesClassic(_Base);
|
||||
}
|
||||
|
||||
public CNameSelection GetNewNameSelection()
|
||||
{
|
||||
return new CNameSelection(_Base);
|
||||
}
|
||||
|
||||
public CEqualizer GetNewEqualizer()
|
||||
{
|
||||
return new CEqualizer(_Base);
|
||||
}
|
||||
|
||||
public CPlaylist GetNewPlaylist()
|
||||
{
|
||||
return new CPlaylist(_Base);
|
||||
}
|
||||
#endregion Create Elements
|
||||
|
||||
#region Get Arrays
|
||||
public CButton[] Buttons
|
||||
{
|
||||
@@ -759,7 +811,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Background Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Background Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -772,7 +824,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Statics Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Statics Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -785,7 +837,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Text Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Text Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -798,7 +850,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Button Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Button Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -811,7 +863,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find SongMenu Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find SongMenu Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -824,7 +876,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Lyric Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Lyric Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -837,7 +889,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find SelectSlide Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find SelectSlide Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -850,7 +902,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find SingBar Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find SingBar Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -863,7 +915,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find NameSelection Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find NameSelection Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -876,7 +928,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Equalizer Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Equalizer Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -889,7 +941,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
_Log.LogError("Can't find Playlist Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
_Base.Log.LogError("Can't find Playlist Element \"" + key + "\" in Screen " + _ThemeName);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
@@ -899,7 +951,7 @@ namespace Vocaluxe.Menu
|
||||
#region MenuHandler
|
||||
public virtual bool HandleInput(KeyEvent KeyEvent)
|
||||
{
|
||||
if (!_Settings.IsTabNavigation())
|
||||
if (!_Base.Settings.IsTabNavigation())
|
||||
{
|
||||
if (KeyEvent.Key == Keys.Left)
|
||||
{
|
||||
@@ -938,25 +990,25 @@ namespace Vocaluxe.Menu
|
||||
if (KeyEvent.Key == Keys.Right)
|
||||
NextElement();
|
||||
}
|
||||
if (_BackgroundMusic.IsDisabled())
|
||||
if (_Base.BackgroundMusic.IsDisabled())
|
||||
{
|
||||
if (KeyEvent.ModSHIFT && (KeyEvent.Key == Keys.Add || KeyEvent.Key == Keys.PageUp))
|
||||
_Config.SetBackgroundMusicVolume(_Config.GetBackgroundMusicVolume() + 5);
|
||||
_Base.Config.SetBackgroundMusicVolume(_Base.Config.GetBackgroundMusicVolume() + 5);
|
||||
else if (KeyEvent.ModSHIFT && (KeyEvent.Key == Keys.Subtract || KeyEvent.Key == Keys.PageDown))
|
||||
_Config.SetBackgroundMusicVolume(_Config.GetBackgroundMusicVolume() - 5);
|
||||
_Base.Config.SetBackgroundMusicVolume(_Base.Config.GetBackgroundMusicVolume() - 5);
|
||||
else if (KeyEvent.Key == Keys.MediaNextTrack)
|
||||
_BackgroundMusic.Next();
|
||||
_Base.BackgroundMusic.Next();
|
||||
else if (KeyEvent.Key == Keys.MediaPreviousTrack)
|
||||
_BackgroundMusic.Previous();
|
||||
_Base.BackgroundMusic.Previous();
|
||||
else if (KeyEvent.Key == Keys.MediaPlayPause)
|
||||
{
|
||||
if (_BackgroundMusic.IsPlaying())
|
||||
_BackgroundMusic.Pause();
|
||||
if (_Base.BackgroundMusic.IsPlaying())
|
||||
_Base.BackgroundMusic.Pause();
|
||||
else
|
||||
_BackgroundMusic.Play();
|
||||
_Base.BackgroundMusic.Play();
|
||||
}
|
||||
|
||||
_BackgroundMusic.ApplyVolume();
|
||||
_Base.BackgroundMusic.ApplyVolume();
|
||||
}
|
||||
|
||||
return true;
|
||||
@@ -1367,10 +1419,10 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public void SelectByMouse(int x, int y)
|
||||
{
|
||||
float z = _Settings.GetZFar();
|
||||
float z = _Base.Settings.GetZFar();
|
||||
for (int i = 0; i < _Interactions.Count; i++)
|
||||
{
|
||||
if ((_Settings.GetGameState() == EGameState.EditTheme) || (!_Interactions[i].ThemeEditorOnly && _IsVisible(i)))
|
||||
if ((_Base.Settings.GetGameState() == EGameState.EditTheme) || (!_Interactions[i].ThemeEditorOnly && _IsVisible(i)))
|
||||
{
|
||||
if (_IsMouseOver(x, y, _Interactions[i]))
|
||||
{
|
||||
@@ -1421,7 +1473,7 @@ namespace Vocaluxe.Menu
|
||||
return true;
|
||||
break;
|
||||
case EType.TText:
|
||||
RectangleF bounds = _Draw.GetTextBounds(_Texts[interact.Num]);
|
||||
RectangleF bounds = _Base.Drawing.GetTextBounds(_Texts[interact.Num]);
|
||||
if (CHelper.IsInBounds(new SRectF(_Texts[interact.Num].X, _Texts[interact.Num].Y, bounds.Width, bounds.Height, _Texts[interact.Num].Z), x, y))
|
||||
return true;
|
||||
break;
|
||||
@@ -1472,7 +1524,7 @@ namespace Vocaluxe.Menu
|
||||
case EType.TPlaylist:
|
||||
return _Playlists[interact.Num].Rect.Z;
|
||||
}
|
||||
return _Settings.GetZFar();
|
||||
return _Base.Settings.GetZFar();
|
||||
}
|
||||
|
||||
private float _GetZValue(int interaction)
|
||||
@@ -1507,13 +1559,13 @@ namespace Vocaluxe.Menu
|
||||
return _Playlists[_Interactions[interaction].Num].Rect.Z;
|
||||
}
|
||||
|
||||
return _Settings.GetZFar();
|
||||
return _Base.Settings.GetZFar();
|
||||
}
|
||||
|
||||
private void _NextInteraction()
|
||||
{
|
||||
_UnsetSelected();
|
||||
if (_Settings.GetGameState() != EGameState.EditTheme)
|
||||
if (_Base.Settings.GetGameState() != EGameState.EditTheme)
|
||||
{
|
||||
bool found = false;
|
||||
int start = _Selection;
|
||||
@@ -1540,7 +1592,7 @@ namespace Vocaluxe.Menu
|
||||
private void _PrevInteraction()
|
||||
{
|
||||
_UnsetSelected();
|
||||
if (_Settings.GetGameState() != EGameState.EditTheme)
|
||||
if (_Base.Settings.GetGameState() != EGameState.EditTheme)
|
||||
{
|
||||
bool found = false;
|
||||
int start = _Selection;
|
||||
@@ -1687,13 +1739,13 @@ namespace Vocaluxe.Menu
|
||||
switch (Key.Key)
|
||||
{
|
||||
case Keys.Up:
|
||||
actualRect = new SRectF(actualRect.X, _Settings.GetRenderH(), 1, 1, actualRect.Z);
|
||||
actualRect = new SRectF(actualRect.X, _Base.Settings.GetRenderH(), 1, 1, actualRect.Z);
|
||||
break;
|
||||
case Keys.Down:
|
||||
actualRect = new SRectF(actualRect.X, 0, 1, 1, actualRect.Z);
|
||||
break;
|
||||
case Keys.Left:
|
||||
actualRect = new SRectF(_Settings.GetRenderW(), actualRect.Y, 1, 1, actualRect.Z);
|
||||
actualRect = new SRectF(_Base.Settings.GetRenderW(), actualRect.Y, 1, 1, actualRect.Z);
|
||||
break;
|
||||
case Keys.Right:
|
||||
actualRect = new SRectF(0, actualRect.Y, 1, 1, actualRect.Z);
|
||||
@@ -2211,7 +2263,7 @@ namespace Vocaluxe.Menu
|
||||
msg += "the file is for newer program versions! ";
|
||||
|
||||
msg += "Current screen version is " + Version.ToString();
|
||||
_Log.LogError(msg);
|
||||
_Base.Log.LogError(msg);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -2221,47 +2273,71 @@ namespace Vocaluxe.Menu
|
||||
string value = String.Empty;
|
||||
|
||||
// Backgrounds
|
||||
CBackground background = new CBackground();
|
||||
CBackground background = new CBackground(_Base);
|
||||
int i = 1;
|
||||
while (background.LoadTheme("//root/" + _ThemeName, "Background" + i.ToString(), navigator, SkinIndex))
|
||||
{
|
||||
AddBackground(background);
|
||||
background = new CBackground();
|
||||
background = new CBackground(_Base);
|
||||
i++;
|
||||
}
|
||||
|
||||
// Statics
|
||||
CStatic stat = new CStatic();
|
||||
CStatic stat = new CStatic(_Base);
|
||||
i = 1;
|
||||
while (stat.LoadTheme("//root/" + _ThemeName, "Static" + i.ToString(), navigator, SkinIndex))
|
||||
{
|
||||
AddStatic(stat);
|
||||
stat = new CStatic();
|
||||
stat = new CStatic(_Base);
|
||||
i++;
|
||||
}
|
||||
|
||||
// Texts
|
||||
CText text = new CText();
|
||||
CText text = new CText(_Base);
|
||||
i = 1;
|
||||
while (text.LoadTheme("//root/" + _ThemeName, "Text" + i.ToString(), navigator, SkinIndex))
|
||||
{
|
||||
AddText(text);
|
||||
text = new CText();
|
||||
text = new CText(_Base);
|
||||
i++;
|
||||
}
|
||||
}
|
||||
|
||||
private void ReloadThemeEditMode()
|
||||
{
|
||||
_Theme.UnloadSkins();
|
||||
_Theme.ListSkins();
|
||||
_Theme.LoadSkins();
|
||||
_Theme.LoadTheme();
|
||||
_Graphics.ReloadTheme();
|
||||
_Base.Theme.UnloadSkins();
|
||||
_Base.Theme.ListSkins();
|
||||
_Base.Theme.LoadSkins();
|
||||
_Base.Theme.LoadTheme();
|
||||
_Base.Graphics.ReloadTheme();
|
||||
|
||||
OnShow();
|
||||
OnShowFinish();
|
||||
}
|
||||
#endregion Theme Handling
|
||||
}
|
||||
|
||||
public class Base
|
||||
{
|
||||
public IConfig Config;
|
||||
public ISettings Settings;
|
||||
public ITheme Theme;
|
||||
public IHelper Helper;
|
||||
public ILog Log;
|
||||
public IBackgroundMusic BackgroundMusic;
|
||||
public IDrawing Drawing;
|
||||
public IGraphics Graphics;
|
||||
|
||||
public Base(IConfig Config, ISettings Settings, ITheme Theme, IHelper Helper, ILog Log, IBackgroundMusic BackgroundMusic, IDrawing Draw, IGraphics Graphics)
|
||||
{
|
||||
this.Config = Config;
|
||||
this.Settings = Settings;
|
||||
this.Theme = Theme;
|
||||
this.Helper = Helper;
|
||||
this.Log = Log;
|
||||
this.BackgroundMusic = BackgroundMusic;
|
||||
this.Drawing = Draw;
|
||||
this.Graphics = Graphics;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -27,15 +27,16 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class CNameSelection : IMenuElement
|
||||
{
|
||||
|
||||
class CTile
|
||||
{
|
||||
private Base _Base;
|
||||
public int PlayerNr;
|
||||
public CStatic Avatar;
|
||||
public CText Name;
|
||||
|
||||
public CTile()
|
||||
public CTile(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
|
||||
public CTile(CStatic av, CText tex, int pl)
|
||||
@@ -46,6 +47,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
private Base _Base;
|
||||
private SThemeNameSelection _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -85,8 +87,9 @@ namespace Vocaluxe.Menu
|
||||
private CStatic PlayerSelector;
|
||||
|
||||
|
||||
public CNameSelection()
|
||||
public CNameSelection(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeNameSelection();
|
||||
|
||||
_Tiles = new List<CTile>();
|
||||
@@ -97,7 +100,7 @@ namespace Vocaluxe.Menu
|
||||
{
|
||||
PrepareTiles();
|
||||
|
||||
PlayerSelector = new CStatic();
|
||||
PlayerSelector = new CStatic(_Base);
|
||||
PlayerSelector.Texture = _TextureTileSelected;
|
||||
PlayerSelector.Rect = new SRectF(0, 0, (_TileW + 6), (_TileH + 6), (Rect.Z - 0.5f));
|
||||
PlayerSelector.Visible = false;
|
||||
@@ -466,7 +469,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
return new CStatic();
|
||||
return new CStatic(_Base);
|
||||
}
|
||||
|
||||
public void UnloadTextures()
|
||||
@@ -501,8 +504,8 @@ namespace Vocaluxe.Menu
|
||||
for (int j = 0; j < _NumW; j++)
|
||||
{
|
||||
SRectF rect = new SRectF(Rect.X + j * (_TileW + _SpaceW), Rect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, Rect.Z);
|
||||
CStatic tileStatic = new CStatic(_TextureEmptyTile, ColorEmptyTile, rect);
|
||||
CText tileText = new CText(rect.X + rect.W / 2, rect.Y + rect.H + _Theme.NameSpace, rect.Z, _Theme.NameHeight, rect.W, EAlignment.Center, _Theme.NameStyle, _Theme.NameFont, _Theme.NameColor, "");
|
||||
CStatic tileStatic = new CStatic(_Base, _TextureEmptyTile, ColorEmptyTile, rect);
|
||||
CText tileText = new CText(_Base, rect.X + rect.W / 2, rect.Y + rect.H + _Theme.NameSpace, rect.Z, _Theme.NameHeight, rect.W, EAlignment.Center, _Theme.NameStyle, _Theme.NameFont, _Theme.NameColor, "");
|
||||
_Tiles.Add(new CTile(tileStatic, tileText, -1));
|
||||
}
|
||||
}
|
||||
|
||||
+21
-15
@@ -58,18 +58,21 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class PlaylistElement
|
||||
{
|
||||
Base _Base;
|
||||
public CStatic Cover;
|
||||
public CStatic Background;
|
||||
public CText Text1;
|
||||
public CSelectSlide SelectSlide;
|
||||
public int Content;
|
||||
|
||||
public PlaylistElement()
|
||||
public PlaylistElement(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
|
||||
public PlaylistElement(PlaylistElement pe)
|
||||
{
|
||||
_Base = pe._Base;
|
||||
Cover = new CStatic(pe.Cover);
|
||||
Background = new CStatic(pe.Background);
|
||||
Text1 = new CText(pe.Text1);
|
||||
@@ -110,6 +113,7 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
private Base _Base;
|
||||
private SThemePlaylist _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -158,7 +162,7 @@ namespace Vocaluxe.Menu
|
||||
public int Offset = 0;
|
||||
public int CurrentPlaylistElement = -1;
|
||||
|
||||
private PlaylistElement ChangeOrderElement = new PlaylistElement();
|
||||
private PlaylistElement ChangeOrderElement;
|
||||
private int ChangeOrderSource = -1;
|
||||
private int OldMousePosX = 0;
|
||||
private int OldMousePosY = 0;
|
||||
@@ -167,19 +171,20 @@ namespace Vocaluxe.Menu
|
||||
|
||||
//private static
|
||||
|
||||
public CPlaylist()
|
||||
public CPlaylist(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemePlaylist();
|
||||
_Theme.Text1 = new CText();
|
||||
_Theme.StaticCover = new CStatic();
|
||||
_Theme.StaticPlaylistFooter = new CStatic();
|
||||
_Theme.StaticPlaylistHeader = new CStatic();
|
||||
_Theme.ButtonPlaylistName = new CButton();
|
||||
_Theme.ButtonPlaylistClose = new CButton();
|
||||
_Theme.ButtonPlaylistDelete = new CButton();
|
||||
_Theme.ButtonPlaylistSave = new CButton();
|
||||
_Theme.ButtonPlaylistSing = new CButton();
|
||||
_Theme.SelectSlideGameMode = new CSelectSlide();
|
||||
_Theme.Text1 = new CText(_Base);
|
||||
_Theme.StaticCover = new CStatic(_Base);
|
||||
_Theme.StaticPlaylistFooter = new CStatic(_Base);
|
||||
_Theme.StaticPlaylistHeader = new CStatic(_Base);
|
||||
_Theme.ButtonPlaylistName = new CButton(_Base);
|
||||
_Theme.ButtonPlaylistClose = new CButton(_Base);
|
||||
_Theme.ButtonPlaylistDelete = new CButton(_Base);
|
||||
_Theme.ButtonPlaylistSave = new CButton(_Base);
|
||||
_Theme.ButtonPlaylistSing = new CButton(_Base);
|
||||
_Theme.SelectSlideGameMode = new CSelectSlide(_Base);
|
||||
|
||||
CompleteRect = new SRectF();
|
||||
Rect = new SRectF();
|
||||
@@ -190,6 +195,7 @@ namespace Vocaluxe.Menu
|
||||
PlaylistElementContents = new List<PlaylistElementContent>();
|
||||
|
||||
_Interactions = new CObjectInteractions();
|
||||
ChangeOrderElement = new PlaylistElement(_Base);
|
||||
|
||||
Visible = false;
|
||||
Selected = false;
|
||||
@@ -1093,9 +1099,9 @@ namespace Vocaluxe.Menu
|
||||
|
||||
for (int i = 0; i < Math.Floor(Rect.H / _Theme.EntryHeight); i++)
|
||||
{
|
||||
PlaylistElement en = new PlaylistElement();
|
||||
PlaylistElement en = new PlaylistElement(_Base);
|
||||
|
||||
en.Background = new CStatic(_Theme.TextureBackgroundName, BackgroundColor, new SRectF(Rect.X, Rect.Y + (i * _Theme.EntryHeight), Rect.W, _Theme.EntryHeight, Rect.Z));
|
||||
en.Background = new CStatic(_Base, _Theme.TextureBackgroundName, BackgroundColor, new SRectF(Rect.X, Rect.Y + (i * _Theme.EntryHeight), Rect.W, _Theme.EntryHeight, Rect.Z));
|
||||
|
||||
en.Cover = new CStatic(_Theme.StaticCover);
|
||||
en.Cover.Rect.Y += Rect.Y + (i * _Theme.EntryHeight);
|
||||
|
||||
@@ -40,6 +40,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class CSelectSlide : IMenuElement, ICloneable
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeSelectSlide _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -141,8 +142,9 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
public CSelectSlide()
|
||||
public CSelectSlide(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeSelectSlide();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
@@ -169,6 +171,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public CSelectSlide(CSelectSlide slide)
|
||||
{
|
||||
_Base = slide._Base;
|
||||
_Theme = new SThemeSelectSlide();
|
||||
|
||||
_Theme.TextureArrowLeftName = slide._Theme.TextureArrowLeftName;
|
||||
@@ -763,7 +766,7 @@ namespace Vocaluxe.Menu
|
||||
_ValueBounds.Clear();
|
||||
for (int i = 0; i < numvis; i++)
|
||||
{
|
||||
CText Text = new CText(0, 0, 0, TextH, MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, TextColor, _ValueNames[i + offset]);
|
||||
CText Text = new CText(_Base, 0, 0, 0, TextH, MaxW, EAlignment.Center, _Theme.TextStyle, _Theme.TextFont, TextColor, _ValueNames[i + offset]);
|
||||
SColorF Alpha = new SColorF(1f, 1f, 1f, 0.35f);
|
||||
if (i + offset == _Selection)
|
||||
{
|
||||
|
||||
+18
-15
@@ -5,9 +5,6 @@ using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
|
||||
namespace Vocaluxe.Menu
|
||||
{
|
||||
struct SThemeStatic
|
||||
@@ -19,6 +16,8 @@ namespace Vocaluxe.Menu
|
||||
|
||||
class CStatic : IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
|
||||
private SThemeStatic _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -35,7 +34,7 @@ namespace Vocaluxe.Menu
|
||||
if (_Texture.index != -1)
|
||||
return _Texture;
|
||||
else
|
||||
return CTheme.GetSkinTexture(_Theme.TextureName);
|
||||
return _Base.Theme.GetSkinTexture(_Theme.TextureName);
|
||||
}
|
||||
|
||||
set { _Texture = value; }
|
||||
@@ -55,8 +54,9 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public EAspect Aspect = EAspect.Stretch;
|
||||
|
||||
public CStatic()
|
||||
public CStatic(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeStatic();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
@@ -74,6 +74,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public CStatic(CStatic s)
|
||||
{
|
||||
_Base = s._Base;
|
||||
_Theme = new SThemeStatic();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
@@ -89,8 +90,9 @@ namespace Vocaluxe.Menu
|
||||
Visible = s.Visible;
|
||||
}
|
||||
|
||||
public CStatic(STexture texture, SColorF color, SRectF rect)
|
||||
public CStatic(Base Base, STexture texture, SColorF color, SRectF rect)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeStatic();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
@@ -106,8 +108,9 @@ namespace Vocaluxe.Menu
|
||||
Visible = true;
|
||||
}
|
||||
|
||||
public CStatic(string TextureSkinName, SColorF color, SRectF rect)
|
||||
public CStatic(Base Base, string TextureSkinName, SColorF color, SRectF rect)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeStatic();
|
||||
_Theme.TextureName = TextureSkinName;
|
||||
_ThemeLoaded = false;
|
||||
@@ -139,7 +142,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
if (CHelper.GetValueFromXML(item + "/Color", navigator, ref _Theme.ColorName, String.Empty))
|
||||
{
|
||||
_ThemeLoaded &= CTheme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
_ThemeLoaded &= _Base.Theme.GetColor(_Theme.ColorName, SkinIndex, ref Color);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -239,7 +242,7 @@ namespace Vocaluxe.Menu
|
||||
if (_Texture.index != -1)
|
||||
texture = _Texture;
|
||||
else
|
||||
texture = CTheme.GetSkinTexture(_Theme.TextureName);
|
||||
texture = _Base.Theme.GetSkinTexture(_Theme.TextureName);
|
||||
|
||||
SRectF bounds = new SRectF(
|
||||
Rect.X - Rect.W * (scale - 1f),
|
||||
@@ -263,18 +266,18 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
|
||||
SColorF color = new SColorF(Color.R, Color.G, Color.B, Color.A * Alpha);
|
||||
if (Visible || ForceDraw || (CSettings.GameState == EGameState.EditTheme))
|
||||
if (Visible || ForceDraw || (_Base.Settings.GetGameState() == EGameState.EditTheme))
|
||||
{
|
||||
CDraw.DrawTexture(texture, rect, color, bounds);
|
||||
_Base.Drawing.DrawTexture(texture, rect, color, bounds);
|
||||
if (Reflection)
|
||||
{
|
||||
CDraw.DrawTextureReflection(texture, rect, color, bounds, ReflectionSpace, ReflectionHeight);
|
||||
_Base.Drawing.DrawTextureReflection(texture, rect, color, bounds, ReflectionSpace, ReflectionHeight);
|
||||
}
|
||||
}
|
||||
|
||||
if (Selected && (CSettings.GameState == EGameState.EditTheme))
|
||||
if (Selected && (_Base.Settings.GetGameState() == EGameState.EditTheme))
|
||||
{
|
||||
CDraw.DrawColor(new SColorF(1f, 1f, 1f, 0.5f), rect);
|
||||
_Base.Drawing.DrawColor(new SColorF(1f, 1f, 1f, 0.5f), rect);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -285,7 +288,7 @@ namespace Vocaluxe.Menu
|
||||
public void LoadTextures()
|
||||
{
|
||||
if (_Theme.ColorName != String.Empty)
|
||||
Color = CTheme.GetColor(_Theme.ColorName);
|
||||
Color = _Base.Theme.GetColor(_Theme.ColorName);
|
||||
}
|
||||
|
||||
public void ReloadTextures()
|
||||
|
||||
+13
-6
@@ -37,8 +37,9 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
|
||||
class CText : IMenuElement
|
||||
public class CText : IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeText _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -221,8 +222,9 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public float Alpha = 1f;
|
||||
|
||||
public CText()
|
||||
public CText(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
@@ -252,6 +254,7 @@ namespace Vocaluxe.Menu
|
||||
|
||||
public CText(CText text)
|
||||
{
|
||||
_Base = text._Base;
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
@@ -281,8 +284,9 @@ namespace Vocaluxe.Menu
|
||||
EditMode = text.EditMode;
|
||||
}
|
||||
|
||||
public CText(float x, float y, float z, EAlignment align, float h, float mw, float r, float g, float b, float a, EStyle style, string font, string text, float rspace, float rheight)
|
||||
public CText(Base Base, float x, float y, float z, EAlignment align, float h, float mw, float r, float g, float b, float a, EStyle style, string font, string text, float rspace, float rheight)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
@@ -318,8 +322,9 @@ namespace Vocaluxe.Menu
|
||||
ReflectionHeight = rheight;
|
||||
}
|
||||
|
||||
public CText(float x, float y, float z, EAlignment align, float h, float mw, float r, float g, float b, float a, EStyle style, string font, string text)
|
||||
public CText(Base Base, float x, float y, float z, EAlignment align, float h, float mw, float r, float g, float b, float a, EStyle style, string font, string text)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
@@ -353,8 +358,9 @@ namespace Vocaluxe.Menu
|
||||
Reflection = false;
|
||||
}
|
||||
|
||||
public CText(float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text, float rspace, float rheight)
|
||||
public CText(Base Base, float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text, float rspace, float rheight)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
@@ -390,8 +396,9 @@ namespace Vocaluxe.Menu
|
||||
ReflectionHeight = rheight;
|
||||
}
|
||||
|
||||
public CText(float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text)
|
||||
public CText(Base Base, float x, float y, float z, float h, float mw, EAlignment align, EStyle style, string font, SColorF col, string text)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeText();
|
||||
_ThemeLoaded = false;
|
||||
_ButtonText = false;
|
||||
|
||||
+215
-8
@@ -43,13 +43,15 @@ namespace Vocaluxe.Menu
|
||||
void ProcessMouseMove(int x, int y);
|
||||
}
|
||||
|
||||
interface IConfig
|
||||
public interface IConfig
|
||||
{
|
||||
void SetBackgroundMusicVolume(int NewVolume);
|
||||
int GetBackgroundMusicVolume();
|
||||
|
||||
ESongMenu GetSongMenuType();
|
||||
}
|
||||
|
||||
interface ISettings
|
||||
public interface ISettings
|
||||
{
|
||||
int GetRenderW();
|
||||
int GetRenderH();
|
||||
@@ -61,10 +63,14 @@ namespace Vocaluxe.Menu
|
||||
EGameState GetGameState();
|
||||
}
|
||||
|
||||
interface ITheme
|
||||
public interface ITheme
|
||||
{
|
||||
string GetThemeScreensPath();
|
||||
int GetSkinIndex();
|
||||
STexture GetSkinTexture(string TextureName);
|
||||
|
||||
SColorF GetColor(string ColorName);
|
||||
bool GetColor(string ColorName, int SkinIndex, ref SColorF Color);
|
||||
|
||||
void UnloadSkins();
|
||||
void ListSkins();
|
||||
@@ -72,11 +78,11 @@ namespace Vocaluxe.Menu
|
||||
void LoadTheme();
|
||||
}
|
||||
|
||||
interface IHelper
|
||||
public interface IHelper
|
||||
{
|
||||
}
|
||||
|
||||
interface IBackgroundMusic
|
||||
public interface IBackgroundMusic
|
||||
{
|
||||
bool IsDisabled();
|
||||
bool IsPlaying();
|
||||
@@ -89,17 +95,22 @@ namespace Vocaluxe.Menu
|
||||
void ApplyVolume();
|
||||
}
|
||||
|
||||
interface IDrawing
|
||||
public interface IDrawing
|
||||
{
|
||||
RectangleF GetTextBounds(CText text);
|
||||
|
||||
void DrawTexture(STexture Texture, SRectF Rect, SColorF Color, SRectF Bounds);
|
||||
void DrawTextureReflection(STexture Texture, SRectF Rect, SColorF Color, SRectF Bounds, float ReflectionSpace, float ReflectionHeight);
|
||||
|
||||
void DrawColor(SColorF Color, SRectF Rect);
|
||||
}
|
||||
|
||||
interface IGraphics
|
||||
public interface IGraphics
|
||||
{
|
||||
void ReloadTheme();
|
||||
}
|
||||
|
||||
interface ILog
|
||||
public interface ILog
|
||||
{
|
||||
void LogError(string ErrorText);
|
||||
}
|
||||
@@ -347,4 +358,200 @@ namespace Vocaluxe.Menu
|
||||
}
|
||||
}
|
||||
#endregion Structs
|
||||
|
||||
#region EnumsConfig
|
||||
public enum ERenderer
|
||||
{
|
||||
#if WIN
|
||||
TR_CONFIG_DIRECT3D,
|
||||
#endif
|
||||
TR_CONFIG_OPENGL,
|
||||
TR_CONFIG_SOFTWARE
|
||||
}
|
||||
|
||||
public enum EAntiAliasingModes
|
||||
{
|
||||
x0 = 0,
|
||||
x2 = 2,
|
||||
x4 = 4,
|
||||
x8 = 8,
|
||||
x16 = 16,
|
||||
x32 = 32
|
||||
}
|
||||
|
||||
public enum EColorDeep
|
||||
{
|
||||
Bit8 = 8,
|
||||
Bit16 = 16,
|
||||
Bit24 = 24,
|
||||
Bit32 = 32
|
||||
}
|
||||
|
||||
public enum ETextureQuality
|
||||
{
|
||||
TR_CONFIG_TEXTURE_LOWEST,
|
||||
TR_CONFIG_TEXTURE_LOW,
|
||||
TR_CONFIG_TEXTURE_MEDIUM,
|
||||
TR_CONFIG_TEXTURE_HIGH,
|
||||
TR_CONFIG_TEXTURE_HIGHEST
|
||||
}
|
||||
|
||||
public enum EOffOn
|
||||
{
|
||||
TR_CONFIG_OFF,
|
||||
TR_CONFIG_ON
|
||||
}
|
||||
|
||||
public enum EDebugLevel
|
||||
{
|
||||
// don't change the order!
|
||||
TR_CONFIG_OFF, //no debug infos
|
||||
TR_CONFIG_ONLY_FPS,
|
||||
TR_CONFIG_LEVEL1,
|
||||
TR_CONFIG_LEVEL2,
|
||||
TR_CONFIG_LEVEL3,
|
||||
TR_CONFIG_LEVEL_MAX //all debug infos
|
||||
}
|
||||
|
||||
public enum EBufferSize
|
||||
{
|
||||
b0 = 0,
|
||||
b512 = 512,
|
||||
b1024 = 1024,
|
||||
b1536 = 1536,
|
||||
b2048 = 2048,
|
||||
b2560 = 2560,
|
||||
b3072 = 3072,
|
||||
b3584 = 3584,
|
||||
b4096 = 4096
|
||||
}
|
||||
|
||||
public enum EPlaybackLib
|
||||
{
|
||||
PortAudio,
|
||||
OpenAL
|
||||
}
|
||||
|
||||
public enum EWebcamLib
|
||||
{
|
||||
OpenCV,
|
||||
AForgeNet
|
||||
}
|
||||
|
||||
public enum ERecordLib
|
||||
{
|
||||
#if WIN
|
||||
DirectSound,
|
||||
#endif
|
||||
PortAudio
|
||||
}
|
||||
|
||||
public enum EVideoDecoder
|
||||
{
|
||||
FFmpeg
|
||||
}
|
||||
|
||||
public enum ESongMenu
|
||||
{
|
||||
//TR_CONFIG_LIST, //a simple list
|
||||
//TR_CONFIG_DREIDEL, //as in ultrastar deluxe
|
||||
TR_CONFIG_TILE_BOARD, //chessboard like
|
||||
//TR_CONFIG_BOOK //for playlists
|
||||
}
|
||||
|
||||
public enum ESongSorting
|
||||
{
|
||||
TR_CONFIG_NONE,
|
||||
//TR_CONFIG_RANDOM,
|
||||
TR_CONFIG_FOLDER,
|
||||
TR_CONFIG_ARTIST,
|
||||
TR_CONFIG_ARTIST_LETTER,
|
||||
TR_CONFIG_TITLE_LETTER,
|
||||
TR_CONFIG_EDITION,
|
||||
TR_CONFIG_GENRE,
|
||||
TR_CONFIG_LANGUAGE,
|
||||
TR_CONFIG_YEAR,
|
||||
TR_CONFIG_DECADE
|
||||
}
|
||||
|
||||
public enum ECoverLoading
|
||||
{
|
||||
TR_CONFIG_COVERLOADING_ONDEMAND,
|
||||
TR_CONFIG_COVERLOADING_ATSTART,
|
||||
TR_CONFIG_COVERLOADING_DYNAMIC
|
||||
}
|
||||
|
||||
public enum EGameDifficulty
|
||||
{
|
||||
TR_CONFIG_EASY,
|
||||
TR_CONFIG_NORMAL,
|
||||
TR_CONFIG_HARD
|
||||
}
|
||||
|
||||
public enum ETimerMode
|
||||
{
|
||||
TR_CONFIG_TIMERMODE_CURRENT,
|
||||
TR_CONFIG_TIMERMODE_REMAINING,
|
||||
TR_CONFIG_TIMERMODE_TOTAL
|
||||
}
|
||||
|
||||
public enum ETimerLook
|
||||
{
|
||||
TR_CONFIG_TIMERLOOK_NORMAL,
|
||||
TR_CONFIG_TIMERLOOK_EXPANDED
|
||||
}
|
||||
|
||||
public enum EBackgroundMusicSource
|
||||
{
|
||||
TR_CONFIG_NO_OWN_MUSIC,
|
||||
TR_CONFIG_OWN_MUSIC,
|
||||
TR_CONFIG_ONLY_OWN_MUSIC
|
||||
}
|
||||
|
||||
public enum EPlayerInfo
|
||||
{
|
||||
TR_CONFIG_PLAYERINFO_BOTH,
|
||||
TR_CONFIG_PLAYERINFO_NAME,
|
||||
TR_CONFIG_PLAYERINFO_AVATAR,
|
||||
TR_CONFIG_PLAYERINFO_OFF
|
||||
}
|
||||
|
||||
public enum EFadePlayerInfo
|
||||
{
|
||||
TR_CONFIG_FADEPLAYERINFO_ALL,
|
||||
TR_CONFIG_FADEPLAYERINFO_INFO,
|
||||
TR_CONFIG_FADEPLAYERINFO_OFF
|
||||
}
|
||||
|
||||
public enum ELyricStyle
|
||||
{
|
||||
Fill,
|
||||
Jump,
|
||||
Slide,
|
||||
Zoom
|
||||
}
|
||||
|
||||
#endregion EnumsConfig
|
||||
|
||||
public enum EAlignment
|
||||
{
|
||||
Left,
|
||||
Center,
|
||||
Right
|
||||
}
|
||||
|
||||
public enum EHAlignment
|
||||
{
|
||||
Top,
|
||||
Center,
|
||||
Bottom
|
||||
}
|
||||
|
||||
public enum EStyle
|
||||
{
|
||||
Normal,
|
||||
Italic,
|
||||
Bold,
|
||||
BoldItalic
|
||||
}
|
||||
}
|
||||
@@ -9,6 +9,7 @@ namespace Vocaluxe.Menu
|
||||
interface IMenuElement
|
||||
{
|
||||
string GetThemeName();
|
||||
|
||||
bool LoadTheme(string XmlPath, string ElementName, XPathNavigator navigator, int SkinIndex);
|
||||
bool SaveTheme(XmlWriter writer);
|
||||
|
||||
|
||||
@@ -46,6 +46,7 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
|
||||
abstract class CSingNotes : ISingNotes, IMenuElement
|
||||
{
|
||||
private Base _Base;
|
||||
private SThemeSingBar _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -66,8 +67,9 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
set { _BarPos = value; }
|
||||
}
|
||||
|
||||
public CSingNotes()
|
||||
public CSingNotes(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeSingBar();
|
||||
_ThemeLoaded = false;
|
||||
|
||||
|
||||
@@ -6,5 +6,12 @@ namespace Vocaluxe.Menu.SingNotes
|
||||
{
|
||||
class CSingNotesClassic : CSingNotes
|
||||
{
|
||||
private Base _Base;
|
||||
|
||||
public CSingNotesClassic(Base Base)
|
||||
: base(Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,25 +4,27 @@ using System.Text;
|
||||
using System.Xml;
|
||||
using System.Xml.XPath;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.Menu;
|
||||
using Vocaluxe.PartyModes;
|
||||
|
||||
namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
class CSongMenu : ISongMenu
|
||||
{
|
||||
private Base _Base;
|
||||
|
||||
private ISongMenu _SongMenu;
|
||||
private ESongMenu _Type;
|
||||
|
||||
public CSongMenu()
|
||||
public CSongMenu(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
CreateSongMenu();
|
||||
}
|
||||
|
||||
public void UpdateSongMenuType()
|
||||
{
|
||||
if (_Type != CConfig.SongMenu)
|
||||
if (_Type != _Base.Config.GetSongMenuType())
|
||||
CreateSongMenu();
|
||||
}
|
||||
|
||||
@@ -205,7 +207,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_SongMenu.OnHide();
|
||||
}
|
||||
|
||||
switch (CConfig.SongMenu)
|
||||
switch (_Base.Config.GetSongMenuType())
|
||||
{
|
||||
//case ESongMenu.TR_CONFIG_LIST:
|
||||
// _SongMenu = new CSongMenuList();
|
||||
@@ -216,7 +218,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
// break;
|
||||
|
||||
case ESongMenu.TR_CONFIG_TILE_BOARD:
|
||||
_SongMenu = new CSongMenuTileBoard();
|
||||
_SongMenu = new CSongMenuTileBoard(_Base);
|
||||
break;
|
||||
|
||||
//case ESongMenu.TR_CONFIG_BOOK:
|
||||
@@ -224,7 +226,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
// break;
|
||||
}
|
||||
|
||||
_Type = CConfig.SongMenu;
|
||||
_Type = _Base.Config.GetSongMenuType();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -6,5 +6,12 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
class CSongMenuBook : CSongMenuFramework
|
||||
{
|
||||
new private Base _Base;
|
||||
|
||||
public CSongMenuBook(Base Base)
|
||||
: base(Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -12,6 +12,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
class CSongMenuDreidel : CSongMenuFramework
|
||||
{
|
||||
new private Base _Base;
|
||||
/*
|
||||
private SRectF _ScrollRect;
|
||||
private CStatic _CoverBig;
|
||||
@@ -31,6 +32,13 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
return _actualSelection;
|
||||
}
|
||||
*/
|
||||
|
||||
public CSongMenuDreidel(Base Base)
|
||||
: base(Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
|
||||
public override void Init()
|
||||
{
|
||||
base.Init();
|
||||
|
||||
@@ -93,6 +93,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
abstract class CSongMenuFramework : ISongMenu
|
||||
{
|
||||
protected Base _Base;
|
||||
protected SThemeSongMenu _Theme;
|
||||
private bool _ThemeLoaded;
|
||||
|
||||
@@ -234,20 +235,21 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
_Visible = Visible;
|
||||
}
|
||||
|
||||
public CSongMenuFramework()
|
||||
public CSongMenuFramework(Base Base)
|
||||
{
|
||||
_Base = Base;
|
||||
_Theme = new SThemeSongMenu();
|
||||
|
||||
_Theme.songMenuTileBoard.TextArtist = new CText();
|
||||
_Theme.songMenuTileBoard.TextTitle = new CText();
|
||||
_Theme.songMenuTileBoard.TextSongLength = new CText();
|
||||
_Theme.songMenuTileBoard.TextArtist = new CText(_Base);
|
||||
_Theme.songMenuTileBoard.TextTitle = new CText(_Base);
|
||||
_Theme.songMenuTileBoard.TextSongLength = new CText(_Base);
|
||||
|
||||
_Theme.songMenuTileBoard.StaticCoverBig = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticTextBG = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticDuetIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticVideoIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticMedleyCalcIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticMedleyTagIcon = new CStatic();
|
||||
_Theme.songMenuTileBoard.StaticCoverBig = new CStatic(_Base);
|
||||
_Theme.songMenuTileBoard.StaticTextBG = new CStatic(_Base);
|
||||
_Theme.songMenuTileBoard.StaticDuetIcon = new CStatic(_Base);
|
||||
_Theme.songMenuTileBoard.StaticVideoIcon = new CStatic(_Base);
|
||||
_Theme.songMenuTileBoard.StaticMedleyCalcIcon = new CStatic(_Base);
|
||||
_Theme.songMenuTileBoard.StaticMedleyTagIcon = new CStatic(_Base);
|
||||
|
||||
_ThemeLoaded = false;
|
||||
}
|
||||
@@ -540,7 +542,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
public virtual CStatic GetSelectedSongCover()
|
||||
{
|
||||
return new CStatic();
|
||||
return new CStatic(_Base);
|
||||
}
|
||||
|
||||
public virtual int GetSelectedCategory()
|
||||
|
||||
@@ -6,5 +6,12 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
class CSongMenuList : CSongMenuFramework
|
||||
{
|
||||
new private Base _Base;
|
||||
|
||||
public CSongMenuList(Base Base)
|
||||
: base(Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -13,6 +13,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
class CSongMenuTileBoard : CSongMenuFramework
|
||||
{
|
||||
new private Base _Base;
|
||||
private SRectF _ScrollRect;
|
||||
private List<CStatic> _Tiles;
|
||||
private CStatic _CoverBig;
|
||||
@@ -43,6 +44,12 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
private bool _SmallView = false;
|
||||
|
||||
public CSongMenuTileBoard(Base Base)
|
||||
: base(Base)
|
||||
{
|
||||
_Base = Base;
|
||||
}
|
||||
|
||||
public override int GetActualSelection()
|
||||
{
|
||||
return _actualSelection;
|
||||
@@ -74,7 +81,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
SRectF rect = new SRectF(_Theme.songMenuTileBoard.TileRect.X + j * (_TileW + _SpaceW),
|
||||
_Theme.songMenuTileBoard.TileRect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, _Rect.Z);
|
||||
CStatic tile = new CStatic(_CoverTexture, Color, rect);
|
||||
CStatic tile = new CStatic(_Base, _CoverTexture, Color, rect);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
}
|
||||
@@ -518,7 +525,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
if (tile.Selected)
|
||||
return new CStatic(tile);
|
||||
}
|
||||
return new CStatic();
|
||||
return new CStatic(_Base);
|
||||
}
|
||||
|
||||
public override void SetSelectedSong(int VisibleSongNr)
|
||||
@@ -771,7 +778,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
SRectF rect = new SRectF(_Theme.songMenuTileBoard.TileRectSmall.X + j * (_TileW + _SpaceW),
|
||||
_Theme.songMenuTileBoard.TileRectSmall.Y + i * (_TileH + _SpaceH), _TileW, _TileH, _Rect.Z);
|
||||
CStatic tile = new CStatic(_CoverTexture, Color, rect);
|
||||
CStatic tile = new CStatic(_Base, _CoverTexture, Color, rect);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
}
|
||||
@@ -797,7 +804,7 @@ namespace Vocaluxe.Menu.SongMenu
|
||||
{
|
||||
SRectF rect = new SRectF(_Theme.songMenuTileBoard.TileRect.X + j * (_TileW + _SpaceW),
|
||||
_Theme.songMenuTileBoard.TileRect.Y + i * (_TileH + _SpaceH), _TileW, _TileH, _Rect.Z);
|
||||
CStatic tile = new CStatic(_CoverTexture, Color, rect);
|
||||
CStatic tile = new CStatic(_Base, _CoverTexture, Color, rect);
|
||||
_Tiles.Add(tile);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,6 @@
|
||||
using System.Collections.Generic;
|
||||
using System.Text;
|
||||
|
||||
using Vocaluxe.Base;
|
||||
using Vocaluxe.Lib.Draw;
|
||||
using Vocaluxe.PartyModes;
|
||||
|
||||
namespace Vocaluxe.Menu.SongMenu
|
||||
|
||||
@@ -148,7 +148,7 @@ namespace Vocaluxe.Screens
|
||||
if (paragraphs[i][e] != null)
|
||||
{
|
||||
string newline = line + " " + paragraphs[i][e];
|
||||
CText text = new CText(75, lastY, -2, 30, -1, EAlignment.Left, EStyle.Bold, "Outline", new SColorF(1, 1, 1, 1), line);
|
||||
CText text = GetNewText(75, lastY, -2, 30, -1, EAlignment.Left, EStyle.Bold, "Outline", new SColorF(1, 1, 1, 1), line);
|
||||
if (CDraw.GetTextBounds(text).Width < (CSettings.iRenderW - 220))
|
||||
{
|
||||
line = line + " " + paragraphs[i][e];
|
||||
@@ -239,7 +239,7 @@ namespace Vocaluxe.Screens
|
||||
base.OnShow();
|
||||
|
||||
//Vocaluxe-Logo
|
||||
logo = new CStatic(_TexLogo, new SColorF(1, 1, 1, 1), new SRectF((CSettings.iRenderW - _TexLogo.width) / 2, -270, _TexLogo.width, _TexLogo.height, -2));
|
||||
logo = GetNewStatic(_TexLogo, new SColorF(1, 1, 1, 1), new SRectF((CSettings.iRenderW - _TexLogo.width) / 2, -270, _TexLogo.width, _TexLogo.height, -2));
|
||||
|
||||
//Little stars for logo
|
||||
int numstars = (int)(logo.Rect.W * 0.25f / 2f);
|
||||
@@ -252,7 +252,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//brunzel
|
||||
CCreditName CreditEntryBrunzel = new CCreditName();
|
||||
CreditEntryBrunzel.image = new CStatic(_TexNameBrunzel, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 400, 120, -4));
|
||||
CreditEntryBrunzel.image = GetNewStatic(_TexNameBrunzel, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 400, 120, -4));
|
||||
CreditEntryBrunzel.particleRect = new SRectF(CreditEntryBrunzel.image.Rect.X + 342, CreditEntryBrunzel.image.Rect.Y + 4, 30, 30, -5);
|
||||
CreditEntryBrunzel.particle = new CParticleEffect(8, new SColorF(1, 0, 0, 1), CreditEntryBrunzel.particleRect, _TexPerfectNoteStar, 35, EParticeType.Star);
|
||||
CreditEntryBrunzel.active = true;
|
||||
@@ -261,7 +261,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//Darkice
|
||||
CCreditName CreditEntryDarkice = new CCreditName();
|
||||
CreditEntryDarkice.image = new CStatic(_TexNameDarkice, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 400, 120, -4));
|
||||
CreditEntryDarkice.image = GetNewStatic(_TexNameDarkice, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 400, 120, -4));
|
||||
CreditEntryDarkice.particleRect = new SRectF(CreditEntryDarkice.image.Rect.X + 242, CreditEntryDarkice.image.Rect.Y + 23, 30, 30, -5);
|
||||
CreditEntryDarkice.particle = new CParticleEffect(8, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryDarkice.particleRect, _TexPerfectNoteStar, 35, EParticeType.Star);
|
||||
CreditEntryDarkice.active = true;
|
||||
@@ -270,7 +270,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//flokuep
|
||||
CCreditName CreditEntryFlokuep = new CCreditName();
|
||||
CreditEntryFlokuep.image = new CStatic(_TexNameFlokuep, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 400, 120, -4));
|
||||
CreditEntryFlokuep.image = GetNewStatic(_TexNameFlokuep, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 400, 120, -4));
|
||||
CreditEntryFlokuep.particleRect = new SRectF(CreditEntryFlokuep.image.Rect.X + 141, CreditEntryFlokuep.image.Rect.Y - 2, 30, 30, -5);
|
||||
CreditEntryFlokuep.particle = new CParticleEffect(8, new SColorF(1, 0, 0, 1), CreditEntryFlokuep.particleRect, _TexPerfectNoteStar, 35, EParticeType.Star);
|
||||
CreditEntryFlokuep.active = true;
|
||||
@@ -279,7 +279,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//bohning
|
||||
CCreditName CreditEntryBohning = new CCreditName();
|
||||
CreditEntryBohning.image = new CStatic(_TexNameBohning, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4));
|
||||
CreditEntryBohning.image = GetNewStatic(_TexNameBohning, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4));
|
||||
CreditEntryBohning.particleRect = new SRectF(CreditEntryBohning.image.Rect.X + 172, CreditEntryBohning.image.Rect.Y + 16, 10, 10, -5);
|
||||
CreditEntryBohning.particle = new CParticleEffect(4, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryBohning.particleRect, _TexPerfectNoteStar, 25, EParticeType.Star);
|
||||
CreditEntryBohning.active = true;
|
||||
@@ -288,7 +288,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//mesand
|
||||
CCreditName CreditEntryMesand = new CCreditName();
|
||||
CreditEntryMesand.image = new CStatic(_TexNameMesand, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 350, 110, -4));
|
||||
CreditEntryMesand.image = GetNewStatic(_TexNameMesand, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 350, 110, -4));
|
||||
CreditEntryMesand.particleRect = new SRectF(CreditEntryMesand.image.Rect.X + 240, CreditEntryMesand.image.Rect.Y - 2, 10, 10, -5);
|
||||
CreditEntryMesand.particle = new CParticleEffect(4, new SColorF(1, 0, 0, 1), CreditEntryMesand.particleRect, _TexPerfectNoteStar, 25, EParticeType.Star);
|
||||
CreditEntryMesand.active = true;
|
||||
@@ -297,7 +297,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//babene03
|
||||
CCreditName CreditEntryBabene03 = new CCreditName();
|
||||
CreditEntryBabene03.image = new CStatic(_TexNameBabene03, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4));
|
||||
CreditEntryBabene03.image = GetNewStatic(_TexNameBabene03, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4));
|
||||
CreditEntryBabene03.particleRect = new SRectF(CreditEntryBabene03.image.Rect.X + 7, CreditEntryBabene03.image.Rect.Y + 4, 10, 10, -5);
|
||||
CreditEntryBabene03.particle = new CParticleEffect(4, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryBabene03.particleRect, _TexPerfectNoteStar, 25, EParticeType.Star);
|
||||
CreditEntryBabene03.active = true;
|
||||
@@ -306,7 +306,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//pantero
|
||||
CCreditName CreditEntrypantero = new CCreditName();
|
||||
CreditEntrypantero.image = new CStatic(_TexNamePantero, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 350, 110, -4));
|
||||
CreditEntrypantero.image = GetNewStatic(_TexNamePantero, new SColorF(1, 1, 1, 1), new SRectF(-450, 580, 350, 110, -4));
|
||||
CreditEntrypantero.particleRect = new SRectF(CreditEntrypantero.image.Rect.X + 140, CreditEntrypantero.image.Rect.Y + 15, 10, 10, -5);
|
||||
CreditEntrypantero.particle = new CParticleEffect(4, new SColorF(1, 0, 0, 1), CreditEntrypantero.particleRect, _TexPerfectNoteStar, 25, EParticeType.Star);
|
||||
CreditEntrypantero.active = true;
|
||||
@@ -315,7 +315,7 @@ namespace Vocaluxe.Screens
|
||||
|
||||
//Pinky007
|
||||
CCreditName CreditEntryPinky007 = new CCreditName();
|
||||
CreditEntryPinky007.image = new CStatic(_TexNamePinky007, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4));
|
||||
CreditEntryPinky007.image = GetNewStatic(_TexNamePinky007, new SColorF(1, 1, 1, 1), new SRectF(CSettings.iRenderW, 580, 350, 110, -4));
|
||||
CreditEntryPinky007.particleRect = new SRectF(CreditEntryPinky007.image.Rect.X + 42, CreditEntryPinky007.image.Rect.Y + 15, 10, 10, -5);
|
||||
CreditEntryPinky007.particle = new CParticleEffect(4, new SColorF(0.149f, 0.415f, 0.819f, 1), CreditEntryPinky007.particleRect, _TexPerfectNoteStar, 25, EParticeType.Star);
|
||||
CreditEntryPinky007.active = true;
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace Vocaluxe.Screens
|
||||
texts.AddRange(EqualizerPlayer);
|
||||
_ThemeEqualizers = texts.ToArray();
|
||||
|
||||
chooseAvatarStatic = new CStatic();
|
||||
chooseAvatarStatic = GetNewStatic();
|
||||
chooseAvatarStatic.Visible = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -1354,7 +1354,7 @@ namespace Vocaluxe.Screens
|
||||
TimeRect trect = new TimeRect();
|
||||
trect.startBeat = Line[j].FirstNoteBeat;
|
||||
trect.endBeat = Line[j].EndBeat;
|
||||
trect.rect = new CStatic(new STexture(-1),
|
||||
trect.rect = GetNewStatic(new STexture(-1),
|
||||
new SColorF(1f, 1f, 1f, 1f),
|
||||
new SRectF(stat.Rect.X + stat.Rect.W * ((CGame.GetTimeFromBeats(trect.startBeat, song.BPM) + song.Gap - song.Start) / TotalTime),
|
||||
stat.Rect.Y,
|
||||
|
||||
@@ -103,7 +103,7 @@ namespace Vocaluxe.Screens
|
||||
Statics[htStatics(StaticOptionsBG)].Visible = false;
|
||||
Playlists[htPlaylists(Playlist)].Visible = false;
|
||||
|
||||
DragAndDropCover = new CStatic();
|
||||
DragAndDropCover = GetNewStatic();
|
||||
|
||||
Playlists[htPlaylists(Playlist)].Init();
|
||||
|
||||
|
||||
Reference in new issue
Block a user