mirror of
https://github.com/CloverHackyColor/CloverBootloader.git
synced 2025-02-11 00:11:27 +01:00
current changes moving to xtheme
Signed-off-by: Sergey Isakov <isakov-sl@bk.ru>
This commit is contained in:
parent
3f1eb9a02e
commit
13667ae8f8
@ -283,6 +283,16 @@ VOID StrToLower(IN CHAR16 *Str)
|
||||
}
|
||||
|
||||
// TODO remove that and AlertMessage with a printf-like format
|
||||
#if USE_XTHEME
|
||||
STATIC void CreateInfoLines(IN CONST XStringW& Message, OUT XStringWArray* Information)
|
||||
{
|
||||
if (Message.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
Information->Empty();
|
||||
//TODO will fill later
|
||||
}
|
||||
#else
|
||||
STATIC void CreateInfoLines(IN CONST CHAR16 *Message, OUT XStringWArray* Information)
|
||||
{
|
||||
CONST CHAR16 *Ptr;
|
||||
@ -323,7 +333,7 @@ STATIC void CreateInfoLines(IN CONST CHAR16 *Message, OUT XStringWArray* Informa
|
||||
// }
|
||||
// return Information;
|
||||
}
|
||||
|
||||
#endif
|
||||
extern REFIT_MENU_ITEM_RETURN MenuEntryReturn;
|
||||
|
||||
|
||||
@ -331,9 +341,9 @@ extern REFIT_MENU_ITEM_RETURN MenuEntryReturn;
|
||||
// it can be a semitransparent rectangular at the screen centre as it was in Clover v1.0
|
||||
#if USE_XTHEME
|
||||
STATIC REFIT_MENU_SCREEN AlertMessageMenu(0, XStringW(), XStringW(), &MenuEntryReturn, NULL);
|
||||
VOID AlertMessage(IN XStringW& Title, IN XStringW& Message)
|
||||
VOID AlertMessage(IN XStringW& Title, IN CONST XStringW& Message)
|
||||
{
|
||||
CreateInfoLines(Message.data(), &AlertMessageMenu.InfoLines);
|
||||
CreateInfoLines(Message, &AlertMessageMenu.InfoLines);
|
||||
AlertMessageMenu.Title = Title;
|
||||
AlertMessageMenu.RunMenu(NULL);
|
||||
AlertMessageMenu.InfoLines.Empty();
|
||||
@ -369,8 +379,8 @@ VOID AlertMessage(IN CONST CHAR16 *Title, IN CONST CHAR16 *Message)
|
||||
#define TAG_NO 2
|
||||
|
||||
//REFIT_SIMPLE_MENU_ENTRY_TAG(CONST CHAR16 *Title_, UINTN Tag_, ACTION AtClick_)
|
||||
STATIC REFIT_SIMPLE_MENU_ENTRY_TAG YesMessageEntry = { XStringWP(L"Yes"), TAG_YES, ActionEnter };
|
||||
STATIC REFIT_SIMPLE_MENU_ENTRY_TAG NoMessageEntry = { XStringWP(L"No"), TAG_NO, ActionEnter };
|
||||
STATIC REFIT_SIMPLE_MENU_ENTRY_TAG YesMessageEntry(XStringW().takeValueFrom(L"Yes"), TAG_YES, ActionEnter);
|
||||
STATIC REFIT_SIMPLE_MENU_ENTRY_TAG NoMessageEntry(XStringW().takeValueFrom(L"No"), TAG_NO, ActionEnter);
|
||||
|
||||
//REFIT_MENU_SCREEN(UINTN ID, CONST CHAR16* Title, CONST CHAR16* TimeoutText, REFIT_ABSTRACT_MENU_ENTRY* entry1, REFIT_ABSTRACT_MENU_ENTRY* entry2)
|
||||
#if USE_XTHEME
|
||||
@ -379,6 +389,27 @@ STATIC REFIT_MENU_SCREEN YesNoMessageMenu(0, XStringW(), XStringW(), &YesMessag
|
||||
STATIC REFIT_MENU_SCREEN YesNoMessageMenu(0, NULL, NULL, &YesMessageEntry, &NoMessageEntry);
|
||||
#endif
|
||||
// Display a yes/no prompt
|
||||
#if USE_XTHEME
|
||||
BOOLEAN YesNoMessage(IN XStringW& Title, IN CONST XStringW& Message)
|
||||
{
|
||||
BOOLEAN Result = FALSE;
|
||||
UINTN MenuExit;
|
||||
CreateInfoLines(Message, &YesNoMessageMenu.InfoLines);
|
||||
YesNoMessageMenu.Title = Title;
|
||||
do
|
||||
{
|
||||
REFIT_ABSTRACT_MENU_ENTRY *ChosenEntry = NULL;
|
||||
MenuExit = YesNoMessageMenu.RunMenu(&ChosenEntry);
|
||||
if ( ChosenEntry != NULL && ChosenEntry->getREFIT_SIMPLE_MENU_ENTRY_TAG() && ChosenEntry->getREFIT_SIMPLE_MENU_ENTRY_TAG()->Tag == TAG_YES &&
|
||||
((MenuExit == MENU_EXIT_ENTER) || (MenuExit == MENU_EXIT_DETAILS))) {
|
||||
Result = TRUE;
|
||||
MenuExit = MENU_EXIT_ENTER;
|
||||
}
|
||||
} while (MenuExit != MENU_EXIT_ENTER);
|
||||
YesNoMessageMenu.InfoLines.Empty();
|
||||
return Result;
|
||||
}
|
||||
#else
|
||||
BOOLEAN YesNoMessage(IN CHAR16 *Title, IN CONST CHAR16 *Message)
|
||||
{
|
||||
BOOLEAN Result = FALSE;
|
||||
@ -406,7 +437,7 @@ BOOLEAN YesNoMessage(IN CHAR16 *Title, IN CONST CHAR16 *Message)
|
||||
// }
|
||||
return Result;
|
||||
}
|
||||
|
||||
#endif
|
||||
// Ask user for file path from directory menu
|
||||
BOOLEAN AskUserForFilePathFromDir(IN CHAR16 *Title OPTIONAL, IN REFIT_VOLUME *Volume,
|
||||
IN CHAR16 *ParentPath OPTIONAL, IN EFI_FILE *Dir,
|
||||
@ -469,7 +500,11 @@ BOOLEAN AskUserForFilePathFromVolumes(IN CHAR16 *Title OPTIONAL, OUT EFI_DEVICE_
|
||||
Menu.Entries.AddReference(&MenuEntryReturn, false);
|
||||
// Menu.Entries.size() = Count;
|
||||
// Menu.Entries = Entries;
|
||||
#if USE_XTHEME
|
||||
Menu.Title.takeValueFrom(Title);
|
||||
#else
|
||||
Menu.Title = Title;
|
||||
#endif
|
||||
do
|
||||
{
|
||||
REFIT_ABSTRACT_MENU_ENTRY *ChosenEntry = NULL;
|
||||
|
@ -160,7 +160,11 @@ BOOLEAN AddLegacyEntry(IN CONST CHAR16 *FullTitle, IN CONST CHAR16 *LoaderTitle,
|
||||
// create the submenu
|
||||
// SubScreen = (__typeof__(SubScreen))AllocateZeroPool(sizeof(REFIT_MENU_SCREEN));
|
||||
SubScreen = new REFIT_MENU_SCREEN();
|
||||
#if USE_XTHEME
|
||||
SubScreen->Title.SPrintf("Boot Options for %s on %s", LoaderTitle, VolDesc);
|
||||
#else
|
||||
SubScreen->Title = PoolPrint(L"Boot Options for %s on %s", LoaderTitle, VolDesc);
|
||||
#endif
|
||||
SubScreen->TitleImage = Entry->Image;
|
||||
SubScreen->AnimeRun = SubScreen->GetAnime();
|
||||
// default entry
|
||||
|
@ -68,7 +68,7 @@ public:
|
||||
UINTN ID;
|
||||
#if USE_XTHEME
|
||||
XStringW Title;
|
||||
XImage TitleImage;
|
||||
XImage TitleImage;
|
||||
#else
|
||||
CONST CHAR16 *Title; //Title is not const, but *Title is. It will be better to make it XStringW
|
||||
EG_IMAGE *TitleImage;
|
||||
@ -133,7 +133,7 @@ public:
|
||||
#endif
|
||||
|
||||
#if USE_XTHEME
|
||||
REFIT_MENU_SCREEN(UINTN ID, XStringW& Title, XStringW& TimeoutText)
|
||||
REFIT_MENU_SCREEN(UINTN ID, XStringW Title, XStringW TimeoutText)
|
||||
: ID(ID), Title(Title), TitleImage(),
|
||||
TimeoutSeconds(0), TimeoutText(TimeoutText), ThemeName(), AnimeRun(0),
|
||||
Once(0), LastDraw(0), CurrentFrame(0),
|
||||
@ -151,7 +151,7 @@ public:
|
||||
#endif
|
||||
|
||||
#if USE_XTHEME
|
||||
REFIT_MENU_SCREEN(UINTN ID, XStringW& Title, XStringW& TimeoutText, REFIT_ABSTRACT_MENU_ENTRY* entry1, REFIT_ABSTRACT_MENU_ENTRY* entry2)
|
||||
REFIT_MENU_SCREEN(UINTN ID, XStringW Title, XStringW TimeoutText, REFIT_ABSTRACT_MENU_ENTRY* entry1, REFIT_ABSTRACT_MENU_ENTRY* entry2)
|
||||
: ID(ID), Title(Title), TitleImage(),
|
||||
TimeoutSeconds(0), TimeoutText(TimeoutText), ThemeName(), AnimeRun(0),
|
||||
Once(0), LastDraw(0), CurrentFrame(0),
|
||||
|
@ -1564,7 +1564,7 @@ MetaiMatch (
|
||||
if (!mUnicodeCollation) {
|
||||
// quick fix for driver loading on UEFIs without UnicodeCollation
|
||||
//return FALSE;
|
||||
return TRUE;
|
||||
return TRUE; //this is wrong anyway
|
||||
}
|
||||
return mUnicodeCollation->MetaiMatch (mUnicodeCollation, String, Pattern);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user