Merge pull request #118 from rikard-softgear/master
Menu navigation enhancement
This commit is contained in:
12
file_io.cpp
12
file_io.cpp
@@ -1245,7 +1245,11 @@ int ScanDirectory(char* path, int mode, const char *extension, int options, cons
|
||||
iSelectedEntry++;
|
||||
if (iSelectedEntry > iFirstEntry + OsdGetSize() - 1) iFirstEntry = iSelectedEntry - OsdGetSize() + 1;
|
||||
}
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
ScanDirectory(path, SCANF_INIT, extension, options, prefix); // jump to first visible item
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
else if (mode == SCANF_PREV)
|
||||
{
|
||||
@@ -1254,7 +1258,11 @@ int ScanDirectory(char* path, int mode, const char *extension, int options, cons
|
||||
iSelectedEntry--;
|
||||
if (iSelectedEntry < iFirstEntry) iFirstEntry = iSelectedEntry;
|
||||
}
|
||||
return 0;
|
||||
else
|
||||
{
|
||||
ScanDirectory(path, SCANF_END, extension, options, prefix); // jump to last visible item
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
else if (mode == SCANF_NEXT_PAGE)
|
||||
{
|
||||
|
||||
40
menu.cpp
40
menu.cpp
@@ -1003,21 +1003,39 @@ void HandleUI(void)
|
||||
// Also set parentstate to the appropriate menustate.
|
||||
if (menumask)
|
||||
{
|
||||
if (down && (menumask >= ((uint32_t)1 << (menusub + 1)))) // Any active entries left?
|
||||
if (down)
|
||||
{
|
||||
do
|
||||
{
|
||||
menusub++;
|
||||
} while ((menumask & ((uint32_t)1 << menusub)) == 0);
|
||||
menustate = parentstate;
|
||||
if((menumask >= ((uint32_t)1 << (menusub + 1)))) // Any active entries left?
|
||||
{
|
||||
do
|
||||
{
|
||||
menusub++;
|
||||
} while ((menumask & ((uint32_t)1 << menusub)) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
menusub = 0; // jump to first item
|
||||
}
|
||||
|
||||
menustate = parentstate;
|
||||
}
|
||||
|
||||
if (up && menusub > 0)
|
||||
if (up)
|
||||
{
|
||||
do
|
||||
{
|
||||
--menusub;
|
||||
} while ((menumask & ((uint32_t)1 << menusub)) == 0);
|
||||
if (menusub > 0)
|
||||
{
|
||||
do
|
||||
{
|
||||
--menusub;
|
||||
} while ((menumask & ((uint32_t)1 << menusub)) == 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
menusub++;
|
||||
} while ((menumask & ((uint32_t)(~0) << (menusub + 1))) != 0); // jump to last item
|
||||
}
|
||||
menustate = parentstate;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user