mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2025-04-18 20:36:45 +02:00
refactoring menu
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
This commit is contained in:
parent
416fb4aa77
commit
24e779c6f8
@ -7,10 +7,14 @@ extern "C" {
|
||||
* memset and memcpy has to be provided for clang
|
||||
*/
|
||||
|
||||
#if !defined(_MSC_VER)
|
||||
|
||||
#if 1 //!defined(_MSC_VER)
|
||||
#ifdef __GNUC__
|
||||
void* memset(void* dst, int ch, UINT64 count) __attribute__ ((used));
|
||||
void* memcpy(void* dst, const void* src, UINT64 count) __attribute__ ((used));
|
||||
#else
|
||||
void* memset(void* dst, int ch, UINT64 count);
|
||||
void* memcpy(void* dst, const void* src, UINT64 count);
|
||||
#endif
|
||||
|
||||
void* memset(void* dst, int ch, UINT64 count)
|
||||
{
|
||||
|
@ -149,8 +149,8 @@ LOADER_ENTRY * DuplicateLoaderEntry(IN LOADER_ENTRY *Entry)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
DuplicateEntry = (__typeof__(DuplicateEntry))AllocateZeroPool(sizeof(LOADER_ENTRY));
|
||||
// DuplicateEntry = new LOADER_ENTRY();
|
||||
// DuplicateEntry = (__typeof__(DuplicateEntry))AllocateZeroPool(sizeof(LOADER_ENTRY));
|
||||
DuplicateEntry = new LOADER_ENTRY();
|
||||
if (DuplicateEntry) {
|
||||
// DuplicateEntry->Tag = Entry->Tag;
|
||||
DuplicateEntry->AtClick = ActionEnter;
|
||||
@ -179,7 +179,8 @@ CHAR16 *AddLoadOption(IN CONST CHAR16 *LoadOptions, IN CONST CHAR16 *LoadOption)
|
||||
return EfiStrDuplicate(LoadOption);
|
||||
}
|
||||
// If there is no option or it is already present duplicate original
|
||||
else if ((LoadOption == NULL) || StrStr(LoadOptions, LoadOption)) return EfiStrDuplicate(LoadOptions);
|
||||
else if ((LoadOption == NULL) || StrStr(LoadOptions, LoadOption))
|
||||
return EfiStrDuplicate(LoadOptions);
|
||||
// Otherwise add option
|
||||
return PoolPrint(L"%s %s", LoadOptions, LoadOption);
|
||||
}
|
||||
|
@ -68,6 +68,8 @@
|
||||
//#define TAG_EXIT_OLD (101)
|
||||
//#define TAG_RETURN_OLD ((UINTN)(-1))
|
||||
|
||||
typedef VOID(*MENU_STYLE_FUNC)(IN UINTN Function, IN CONST CHAR16 *ParamText);
|
||||
|
||||
//typedef struct _refit_menu_screen REFIT_MENU_SCREEN;
|
||||
class REFIT_MENU_SCREEN;
|
||||
class REFIT_MENU_SWITCH;
|
||||
@ -395,14 +397,14 @@ public:
|
||||
ACTION mAction;
|
||||
UINTN mItemID;
|
||||
XPointer *mPointer;
|
||||
SCROLL_STATE *ScrollState,
|
||||
SCROLL_STATE ScrollState,
|
||||
|
||||
REFIT_MENU_SCREEN()
|
||||
: ID(0), Title(0), TitleImage(0),
|
||||
TimeoutSeconds(0), TimeoutText(0), Theme(0), AnimeRun(0),
|
||||
Once(0), LastDraw(0), CurrentFrame(0),
|
||||
Frames(0), FrameTime(0), FilmPlace({0,0,0,0}),
|
||||
Film(0), PointerLive(false)
|
||||
Film(0)
|
||||
{};
|
||||
|
||||
REFIT_MENU_SCREEN( UINTN ID_,
|
||||
@ -426,7 +428,7 @@ public:
|
||||
TimeoutText(TimeoutText_), Theme(Theme_), AnimeRun(AnimeRun_),
|
||||
Once(Once_), LastDraw(LastDraw_), CurrentFrame(CurrentFrame_),
|
||||
Frames(Frames_), FrameTime(FrameTime_), FilmPlace(FilmPlace_),
|
||||
Film(Film_), PointerLive(false)
|
||||
Film(Film_)
|
||||
{};
|
||||
|
||||
REFIT_MENU_SCREEN( UINTN ID_,
|
||||
@ -451,7 +453,7 @@ public:
|
||||
TimeoutText(TimeoutText_), Theme(Theme_), AnimeRun(AnimeRun_),
|
||||
Once(Once_), LastDraw(LastDraw_), CurrentFrame(CurrentFrame_),
|
||||
Frames(Frames_), FrameTime(FrameTime_), FilmPlace(FilmPlace_),
|
||||
Film(Film_), PointerLive(false)
|
||||
Film(Film_)
|
||||
{
|
||||
Entries.AddReference(entry, false);
|
||||
};
|
||||
@ -479,7 +481,7 @@ public:
|
||||
TimeoutText(TimeoutText_), Theme(Theme_), AnimeRun(AnimeRun_),
|
||||
Once(Once_), LastDraw(LastDraw_), CurrentFrame(CurrentFrame_),
|
||||
Frames(Frames_), FrameTime(FrameTime_), FilmPlace(FilmPlace_),
|
||||
Film(Film_), PointerLive(false)
|
||||
Film(Film_)
|
||||
{
|
||||
Entries.AddReference(entry1, false);
|
||||
Entries.AddReference(entry2, false);
|
||||
@ -487,9 +489,28 @@ public:
|
||||
//Scroll functions
|
||||
VOID InitScroll(IN INTN ItemCount, IN UINTN MaxCount,
|
||||
IN UINTN VisibleSpace, IN INTN Selected);
|
||||
VOID UpdateScroll(IN OUT SCROLL_STATE *State, IN UINTN Movement);
|
||||
VOID UpdateScroll(IN UINTN Movement);
|
||||
VOID HidePointer();
|
||||
EFI_STATUS MouseBirth();
|
||||
VOID KillMouse();
|
||||
VOID AddMenuInfo(CONST CHAR16 *Line);
|
||||
VOID AddMenuInfoLine(IN CONST CHAR16 *InfoLine);
|
||||
VOID AddMenuEntry(IN REFIT_MENU_ENTRY *Entry, bool freeIt);
|
||||
VOID FreeMenu();
|
||||
INTN FindMenuShortcutEntry(IN CHAR16 Shortcut);
|
||||
UINTN InputDialog(IN MENU_STYLE_FUNC StyleFunc);
|
||||
UINTN RunGenericMenu(IN MENU_STYLE_FUNC StyleFunc, IN OUT INTN *DefaultEntryIndex, OUT REFIT_ABSTRACT_MENU_ENTRY **ChosenEntry);
|
||||
UINTN RunMenu(OUT REFIT_ABSTRACT_MENU_ENTRY **ChosenEntry);
|
||||
UINTN RunMainMenu(IN INTN DefaultSelection, OUT REFIT_ABSTRACT_MENU_ENTRY **ChosenEntry);
|
||||
|
||||
VOID DrawMainMenuLabel(IN CONST CHAR16 *Text, IN INTN XPos, IN INTN YPos);
|
||||
VOID CountItems();
|
||||
|
||||
//Style functions
|
||||
virtual VOID MainMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamText);
|
||||
virtual VOID MainMenuVerticalStyle(IN UINTN Function, IN CONST CHAR16 *ParamText);
|
||||
virtual VOID GraphicsMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamText);
|
||||
virtual VOID TextMenuStyle(IN UINTN Function, IN CONST CHAR16 *ParamText);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user