diff --git a/PartyModeChallenge/PartyModeChallenge.cs b/PartyModeChallenge/PartyModeChallenge.cs new file mode 100644 index 00000000..1ca2cd5b --- /dev/null +++ b/PartyModeChallenge/PartyModeChallenge.cs @@ -0,0 +1,45 @@ +using System; +using System.Collections.Generic; +using System.Text; + +using Vocaluxe.Menu; + +namespace Vocaluxe.PartyModes +{ + public class PartyModeChallenge : CPartyMode + { + public PartyModeChallenge() + { + _ScreenSongOptions.Selection.RandomOnly = false; + _ScreenSongOptions.Selection.PartyMode = false; + _ScreenSongOptions.Selection.CategoryChangeAllowed = true; + _ScreenSongOptions.Selection.NumJokers = null; + + _ScreenSongOptions.Sorting.SearchString = String.Empty; + _ScreenSongOptions.Sorting.SearchStringVisible = false; + } + + public override CMenuParty GetNextPartyScreen() + { + CMenuParty Screen = null; + _Screens.TryGetValue("PartyScreenChallengeConfig", out Screen); + return Screen; + } + + public override ScreenSongOptions GetScreenSongOptions() + { + _ScreenSongOptions.Sorting.SongSorting = _Base.Config.GetSongSorting(); + _ScreenSongOptions.Sorting.Tabs = _Base.Config.GetTabs(); + _ScreenSongOptions.Sorting.IgnoreArticles = _Base.Config.GetIgnoreArticles(); + + return _ScreenSongOptions; + } + + public override void SetSearchString(string SearchString, bool Visible) + { + _ScreenSongOptions.Sorting.SearchString = SearchString; + _ScreenSongOptions.Sorting.SearchStringVisible = Visible; + } + + } +} \ No newline at end of file diff --git a/PartyModeChallenge/PartyModeChallenge.csproj b/PartyModeChallenge/PartyModeChallenge.csproj new file mode 100644 index 00000000..422a8bf5 --- /dev/null +++ b/PartyModeChallenge/PartyModeChallenge.csproj @@ -0,0 +1,145 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {6F3E1874-F28A-40E9-AFBD-31934D593679} + Library + Properties + PartyModeChallenge + PartyModeChallenge + v2.0 + + + 512 + + + AnyCPU + true + full + false + ..\Output\PartyModes\Challenge\Code + TRACE;DEBUG;WIN + prompt + 4 + Off + + + AnyCPU + none + true + ..\Output\PartyModes\Challenge\Code + prompt + 4 + false + WIN + Off + + + AnyCPU + true + full + false + ..\Output\PartyModes\Challenge\Code + TRACE;DEBUG;WIN + prompt + 4 + Off + + + AnyCPU + none + true + ..\Output\PartyModes\Challenge\Code + prompt + 4 + false + WIN + Off + + + AnyCPU + true + full + false + ..\Output\PartyModes\Challenge\Code + TRACE;DEBUG;LINUX + prompt + 4 + Off + + + AnyCPU + none + true + ..\Output\PartyModes\Challenge\Code + prompt + 4 + false + LINUX + Off + + + AnyCPU + true + full + false + ..\Output\PartyModes\Challenge\Code + TRACE;DEBUG;LINUX + prompt + 4 + Off + + + AnyCPU + none + true + ..\Output\PartyModes\Challenge\Code + prompt + 4 + false + LINUX + Off + + + + + + + Always + + + Always + + + Always + + + Always + + + + + {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC} + VocaluxeLib + False + + + + + + + + + + + + \ No newline at end of file diff --git a/PartyModeChallenge/PartyScreenChallengeConfig.cs b/PartyModeChallenge/PartyScreenChallengeConfig.cs new file mode 100644 index 00000000..c988c88f --- /dev/null +++ b/PartyModeChallenge/PartyScreenChallengeConfig.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +using Vocaluxe.Menu; + +namespace Vocaluxe.PartyModes +{ + public class PartyScreenChallengeConfig : CMenuParty + { + // Version number for theme files. Increment it, if you've changed something on the theme files! + const int ScreenVersion = 1; + + const string ButtonNext = "ButtonNext"; + const string ButtonBack = "ButtonBack"; + + public PartyScreenChallengeConfig() + { + } + + protected override void Init() + { + base.Init(); + + _ThemeName = "PartyScreenChallengeConfig"; + _ThemeButtons = new string[] { ButtonNext, ButtonBack }; + _ScreenVersion = ScreenVersion; + } + + public override void LoadTheme(string XmlPath) + { + base.LoadTheme(XmlPath); + } + + public override bool HandleInput(KeyEvent KeyEvent) + { + base.HandleInput(KeyEvent); + + if (KeyEvent.KeyPressed) + { + + } + else + { + switch (KeyEvent.Key) + { + case Keys.Back: + case Keys.Escape: + FadeTo(EScreens.ScreenParty); + break; + } + } + return true; + } + + public override bool HandleMouse(MouseEvent MouseEvent) + { + base.HandleMouse(MouseEvent); + + if (MouseEvent.LB && IsMouseOver(MouseEvent)) + { + + } + + if (MouseEvent.RB) + { + FadeTo(EScreens.ScreenParty); + } + + return true; + } + + public override void OnShow() + { + base.OnShow(); + } + + public override bool UpdateGame() + { + return true; + } + + public override bool Draw() + { + base.Draw(); + return true; + } + + public override void OnClose() + { + base.OnClose(); + } + } +} diff --git a/PartyModeChallenge/PartyScreenChallengeMain.cs b/PartyModeChallenge/PartyScreenChallengeMain.cs new file mode 100644 index 00000000..eb06ae0e --- /dev/null +++ b/PartyModeChallenge/PartyScreenChallengeMain.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +using Vocaluxe.Menu; + +namespace Vocaluxe.PartyModes +{ + public class PartyScreenChallengeMain : CMenuParty + { + // Version number for theme files. Increment it, if you've changed something on the theme files! + const int ScreenVersion = 1; + + public PartyScreenChallengeMain() + { + } + + protected override void Init() + { + base.Init(); + + _ThemeName = "PartyScreenChallengeMain"; + _ScreenVersion = ScreenVersion; + } + + public override void LoadTheme(string XmlPath) + { + base.LoadTheme(XmlPath); + } + + public override bool HandleInput(KeyEvent KeyEvent) + { + base.HandleInput(KeyEvent); + + if (KeyEvent.KeyPressed) + { + + } + else + { + switch (KeyEvent.Key) + { + case Keys.Back: + case Keys.Escape: + FadeTo(EScreens.ScreenParty); + break; + } + } + return true; + } + + public override bool HandleMouse(MouseEvent MouseEvent) + { + base.HandleMouse(MouseEvent); + + if (MouseEvent.LB && IsMouseOver(MouseEvent)) + { + + } + + if (MouseEvent.RB) + { + FadeTo(EScreens.ScreenParty); + } + + return true; + } + + public override void OnShow() + { + base.OnShow(); + } + + public override bool UpdateGame() + { + return true; + } + + public override bool Draw() + { + base.Draw(); + return true; + } + + public override void OnClose() + { + base.OnClose(); + } + } +} diff --git a/PartyModeChallenge/PartyScreenChallengeNames.cs b/PartyModeChallenge/PartyScreenChallengeNames.cs new file mode 100644 index 00000000..908f4c0e --- /dev/null +++ b/PartyModeChallenge/PartyScreenChallengeNames.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows.Forms; + +using Vocaluxe.Menu; + +namespace Vocaluxe.PartyModes +{ + public class PartyScreenChallengeNames : CMenuParty + { + // Version number for theme files. Increment it, if you've changed something on the theme files! + const int ScreenVersion = 1; + + public PartyScreenChallengeNames() + { + } + + protected override void Init() + { + base.Init(); + + _ThemeName = "PartyScreenChallengeNames"; + _ScreenVersion = ScreenVersion; + } + + public override void LoadTheme(string XmlPath) + { + base.LoadTheme(XmlPath); + } + + public override bool HandleInput(KeyEvent KeyEvent) + { + base.HandleInput(KeyEvent); + + if (KeyEvent.KeyPressed) + { + + } + else + { + switch (KeyEvent.Key) + { + case Keys.Back: + case Keys.Escape: + FadeTo(EScreens.ScreenParty); + break; + } + } + return true; + } + + public override bool HandleMouse(MouseEvent MouseEvent) + { + base.HandleMouse(MouseEvent); + + if (MouseEvent.LB && IsMouseOver(MouseEvent)) + { + + } + + if (MouseEvent.RB) + { + FadeTo(EScreens.ScreenParty); + } + + return true; + } + + public override void OnShow() + { + base.OnShow(); + } + + public override bool UpdateGame() + { + return true; + } + + public override bool Draw() + { + base.Draw(); + return true; + } + + public override void OnClose() + { + base.OnClose(); + } + } +} diff --git a/Vocaluxe.sln b/Vocaluxe.sln index 4fcb3b6a..3f653674 100644 --- a/Vocaluxe.sln +++ b/Vocaluxe.sln @@ -3,11 +3,14 @@ Microsoft Visual Studio Solution File, Format Version 11.00 # Visual C# Express 2010 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Vocaluxe", "Vocaluxe\Vocaluxe.csproj", "{2A1E0F2D-5392-4BB7-B0A1-A9DFA13E79FF}" ProjectSection(ProjectDependencies) = postProject + {6F3E1874-F28A-40E9-AFBD-31934D593679} = {6F3E1874-F28A-40E9-AFBD-31934D593679} {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC} = {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC} EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VocaluxeLib", "VocaluxeLib\VocaluxeLib.csproj", "{D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PartyModeChallenge", "PartyModeChallenge\PartyModeChallenge.csproj", "{6F3E1874-F28A-40E9-AFBD-31934D593679}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution DebugLinux|x64 = DebugLinux|x64 @@ -46,6 +49,14 @@ Global {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseWin|x64.ActiveCfg = ReleaseWin|x64 {D2B6DDEF-E0E1-4DDF-A73A-E6ACEF5C95EC}.ReleaseWin|x86.ActiveCfg = ReleaseWin|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugLinux|x64.ActiveCfg = DebugLinux|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugLinux|x86.ActiveCfg = DebugLinux|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x64.ActiveCfg = DebugWin|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.DebugWin|x86.ActiveCfg = DebugWin|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x64.ActiveCfg = ReleaseLinux|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseLinux|x86.ActiveCfg = ReleaseLinux|x86 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseWin|x64.ActiveCfg = ReleaseWin|x64 + {6F3E1874-F28A-40E9-AFBD-31934D593679}.ReleaseWin|x86.ActiveCfg = ReleaseWin|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/Vocaluxe/Base/CParty.cs b/Vocaluxe/Base/CParty.cs index 72076ad2..7d618986 100644 --- a/Vocaluxe/Base/CParty.cs +++ b/Vocaluxe/Base/CParty.cs @@ -279,7 +279,10 @@ namespace Vocaluxe.Base pm.PartyModeID); if (Screen != null) + { + Screen.AssignPartyMode(pm.PartyMode); pm.PartyMode.AddScreen(Screen, screenfile); + } else return pm; } diff --git a/VocaluxeLib/Menu/CMenuParty.cs b/VocaluxeLib/Menu/CMenuParty.cs index e726e707..ac967eb3 100644 --- a/VocaluxeLib/Menu/CMenuParty.cs +++ b/VocaluxeLib/Menu/CMenuParty.cs @@ -2,12 +2,17 @@ using System.Collections.Generic; using System.Text; +using Vocaluxe.PartyModes; + namespace Vocaluxe.Menu { public abstract class CMenuParty : CMenu { + protected IPartyMode _PartyMode; + public CMenuParty() { + _PartyMode = new CPartyModeNone(); } public void SetPartyModeID(int PartyModeID) @@ -20,6 +25,11 @@ namespace Vocaluxe.Menu return _PartyModeID; } + public void AssignPartyMode(IPartyMode PartyMode) + { + _PartyMode = PartyMode; + } + /* public sealed override void LoadTheme() { diff --git a/VocaluxeLib/Menu/IMenu.cs b/VocaluxeLib/Menu/IMenu.cs index a50a085c..8ec23110 100644 --- a/VocaluxeLib/Menu/IMenu.cs +++ b/VocaluxeLib/Menu/IMenu.cs @@ -6,6 +6,7 @@ using System.Windows.Forms; using Vocaluxe.Menu.SingNotes; using Vocaluxe.Menu.SongMenu; +using Vocaluxe.PartyModes; namespace Vocaluxe.Menu { @@ -47,6 +48,8 @@ namespace Vocaluxe.Menu { void SetPartyModeID(int PartyModeID); int GetPartyModeID(); + + void AssignPartyMode(IPartyMode PartyMode); } public interface IConfig diff --git a/VocaluxeLib/PartyModes/CPartyMode.cs b/VocaluxeLib/PartyModes/CPartyMode.cs index fd95f35d..d81b2d67 100644 --- a/VocaluxeLib/PartyModes/CPartyMode.cs +++ b/VocaluxeLib/PartyModes/CPartyMode.cs @@ -12,6 +12,7 @@ namespace Vocaluxe.PartyModes protected ScreenSongOptions _ScreenSongOptions; protected Dictionary _Screens; protected string _Folder; + protected Delegate _Callback; public CPartyMode() { @@ -38,6 +39,11 @@ namespace Vocaluxe.PartyModes _Screens.Add(ScreenName, Screen); } + public void SetPartyModeCallback(Delegate Callback) + { + _Callback = Callback; + } + public virtual CMenuParty GetNextPartyScreen() { return null; diff --git a/VocaluxeLib/PartyModes/IPartyMode.cs b/VocaluxeLib/PartyModes/IPartyMode.cs index c583340c..40d37bd3 100644 --- a/VocaluxeLib/PartyModes/IPartyMode.cs +++ b/VocaluxeLib/PartyModes/IPartyMode.cs @@ -54,6 +54,7 @@ namespace Vocaluxe.PartyModes bool Init(string Folder); void Initialize(Basic Base); void AddScreen(CMenuParty Screen, string ScreenName); + void SetPartyModeCallback(Delegate Callback); CMenuParty GetNextPartyScreen(); EScreens GetStartScreen();