Merge pull request #470 from Vocaluxe/SongScreen_KeyNavigation
Page UP/DOWN, HOME and END keys on Song screen (final implementation)
This commit is contained in:
4 files changed
+77
-37
No files matched your search
+3
-1
@@ -142,7 +142,9 @@ Song screen
|
||||
[CTRL] + [V] to sing all songs from a category
|
||||
[NUM_1]..[NUM_6] to use a Joker for team 1..6
|
||||
[A]..[Z] to jump to category/song title starting with that letters (multiple letters possible)
|
||||
[PAGE UP] or [PAGE DOWN] if inside a category: Go up/down one category / if category view is disabled: Scroll one page up/down
|
||||
[PAGE UP] or [PAGE DOWN] to scroll one page up/down
|
||||
[CTRL] + [PAGE UP or DOWN] to go inside next or previous category while being in a category
|
||||
[HOME] or [END] to scroll up to first song or down to last song
|
||||
|
||||
Name selection screen
|
||||
[1]..[6] to activate player selection.
|
||||
|
||||
@@ -363,38 +363,6 @@ namespace Vocaluxe.Screens
|
||||
_ShowHighscore();
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.PageUp:
|
||||
if (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF)
|
||||
{
|
||||
int numSongsPerPage = (CConfig.SongMenu == ESongMenu.TR_CONFIG_TILE_BOARD ? 24 : 15);
|
||||
if (keyEvent.Mod == EModifier.Ctrl)
|
||||
_SongMenu.SetSelectedSong(0);
|
||||
else
|
||||
{
|
||||
if ((_SongMenu.GetSelectedSongNr() - numSongsPerPage) <= 0)
|
||||
_SongMenu.SetSelectedSong(0);
|
||||
else
|
||||
_SongMenu.SetSelectedSong(_SongMenu.GetSelectedSongNr() - numSongsPerPage);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.PageDown:
|
||||
if (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_OFF)
|
||||
{
|
||||
int numSongsPerPage = (CConfig.SongMenu == ESongMenu.TR_CONFIG_TILE_BOARD ? 24 : 15);
|
||||
if (keyEvent.Mod == EModifier.Ctrl)
|
||||
_SongMenu.SetSelectedSong(CSongs.NumSongsVisible - 1);
|
||||
else
|
||||
{
|
||||
if ((_SongMenu.GetSelectedSongNr() + numSongsPerPage) >= CSongs.NumSongsVisible)
|
||||
_SongMenu.SetSelectedSong(CSongs.NumSongsVisible - 1);
|
||||
else
|
||||
_SongMenu.SetSelectedSong(_SongMenu.GetSelectedSongNr() + numSongsPerPage);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!_SearchActive)
|
||||
{
|
||||
|
||||
@@ -344,19 +344,53 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
break;
|
||||
|
||||
case Keys.PageUp:
|
||||
if (catChangePossible)
|
||||
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
|
||||
{
|
||||
_PrevCategory();
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
else if (moveAllowed)
|
||||
{
|
||||
if ((_SelectionNr - _ListLength) <= 0)
|
||||
_SelectionNr = 0;
|
||||
else
|
||||
_SelectionNr = _SelectionNr - _ListLength;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.PageDown:
|
||||
if (catChangePossible)
|
||||
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
|
||||
{
|
||||
_NextCategory();
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
else if (moveAllowed)
|
||||
{
|
||||
int maxCount_PageDown = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
|
||||
if ((_SelectionNr + _ListLength) >= maxCount_PageDown)
|
||||
_SelectionNr = maxCount_PageDown - 1;
|
||||
else
|
||||
_SelectionNr = _SelectionNr + _ListLength;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Home:
|
||||
if (moveAllowed)
|
||||
{
|
||||
_SelectionNr = 0;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.End:
|
||||
int maxCount_End = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
|
||||
if (moveAllowed)
|
||||
{
|
||||
_SelectionNr = maxCount_End - 1;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
|
||||
@@ -335,19 +335,55 @@ namespace VocaluxeLib.Menu.SongMenu
|
||||
break;
|
||||
|
||||
case Keys.PageUp:
|
||||
if (catChangePossible)
|
||||
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
|
||||
{
|
||||
_PrevCategory();
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
else if (moveAllowed)
|
||||
{
|
||||
int numSongsPerPage = _NumH * _NumW;
|
||||
if ((_SelectionNr - numSongsPerPage) <= 0)
|
||||
_SelectionNr = 0;
|
||||
else
|
||||
_SelectionNr = _SelectionNr - numSongsPerPage;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.PageDown:
|
||||
if (catChangePossible)
|
||||
if (catChangePossible && CBase.Songs.IsInCategory() && (keyEvent.Mod == EModifier.Ctrl || keyEvent.Mod == EModifier.Alt))
|
||||
{
|
||||
_NextCategory();
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
else if (moveAllowed)
|
||||
{
|
||||
int numSongsPerPage = _NumH * _NumW;
|
||||
int maxCount_PageDown = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
|
||||
if ((_SelectionNr + numSongsPerPage) >= maxCount_PageDown)
|
||||
_SelectionNr = maxCount_PageDown - 1;
|
||||
else
|
||||
_SelectionNr = _SelectionNr + numSongsPerPage;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Home:
|
||||
if (moveAllowed)
|
||||
{
|
||||
_SelectionNr = 0;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.End:
|
||||
int maxCount_End = (CBase.Songs.GetTabs() == EOffOn.TR_CONFIG_ON && !CBase.Songs.IsInCategory() ? CBase.Songs.GetNumCategories() : CBase.Songs.GetNumSongsVisible());
|
||||
if (moveAllowed)
|
||||
{
|
||||
_SelectionNr = maxCount_End - 1;
|
||||
keyEvent.Handled = true;
|
||||
}
|
||||
break;
|
||||
|
||||
case Keys.Left:
|
||||
|
||||
Reference in new issue
Block a user