From 2de3b849570daed52becd7c089e0b63cf3f5d5d0 Mon Sep 17 00:00:00 2001 From: jief Date: Sat, 29 Feb 2020 15:56:36 +0300 Subject: [PATCH] Moved DriveImage and BadgeImage down the hierarchy because only loader use them. --- rEFIt_UEFI/Platform/Settings.cpp | 2 +- rEFIt_UEFI/Platform/Settings.h | 2 +- rEFIt_UEFI/gui/menu_items/menu_items.h | 85 ++++++++++++++++---------- rEFIt_UEFI/refit/menu.cpp | 45 ++++++-------- 4 files changed, 74 insertions(+), 60 deletions(-) diff --git a/rEFIt_UEFI/Platform/Settings.cpp b/rEFIt_UEFI/Platform/Settings.cpp index 120f325a6..616929894 100644 --- a/rEFIt_UEFI/Platform/Settings.cpp +++ b/rEFIt_UEFI/Platform/Settings.cpp @@ -472,7 +472,7 @@ GetBootFromOption(VOID) // check if this entry corresponds to Boot# variable and then set BootCurrent // VOID -SetBootCurrent(REFIT_MENU_ENTRY_LOADER *Entry) +SetBootCurrent(REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER *Entry) { EFI_STATUS Status; BO_BOOT_OPTION BootOption; diff --git a/rEFIt_UEFI/Platform/Settings.h b/rEFIt_UEFI/Platform/Settings.h index c22924306..74702a5cc 100644 --- a/rEFIt_UEFI/Platform/Settings.h +++ b/rEFIt_UEFI/Platform/Settings.h @@ -12,7 +12,7 @@ SetDevices ( // check if this entry corresponds to Boot# variable and then set BootCurrent // VOID -SetBootCurrent(REFIT_MENU_ENTRY_LOADER *LoadedEntry); +SetBootCurrent(REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER *LoadedEntry); CHAR8 diff --git a/rEFIt_UEFI/gui/menu_items/menu_items.h b/rEFIt_UEFI/gui/menu_items/menu_items.h index 7fa5f28a8..7593cebf6 100644 --- a/rEFIt_UEFI/gui/menu_items/menu_items.h +++ b/rEFIt_UEFI/gui/menu_items/menu_items.h @@ -79,7 +79,7 @@ class REFIT_MENU_ITEM_SHUTDOWN; class REFIT_MENU_ITEM_RESET; class REFIT_MENU_ITEM_ABOUT; class REFIT_MENU_ITEM_OPTIONS; -class REFIT_MENU_ENTRY_LOADER; +class REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER; class LOADER_ENTRY; class LEGACY_ENTRY; class REFIT_MENU_ENTRY_OTHER; @@ -94,8 +94,6 @@ class REFIT_ABSTRACT_MENU_ENTRY CHAR16 ShortcutDigit; CHAR16 ShortcutLetter; EG_IMAGE *Image; - EG_IMAGE *DriveImage; - EG_IMAGE *BadgeImage; EG_RECT Place; ACTION AtClick; ACTION AtDoubleClick; @@ -103,9 +101,11 @@ class REFIT_ABSTRACT_MENU_ENTRY ACTION AtMouseOver; REFIT_MENU_SCREEN *SubScreen; + virtual EG_IMAGE* getDriveImage() const { return nullptr; }; + virtual EG_IMAGE* getBadgeImage() const { return nullptr; }; + virtual REFIT_SIMPLE_MENU_ENTRY_TAG* getREFIT_SIMPLE_MENU_ENTRY_TAG() { return nullptr; }; - virtual REFIT_MENU_SWITCH* getREFIT_MENU_SWITCH() { return nullptr; }; virtual REFIT_MENU_CHECKBIT* getREFIT_MENU_CHECKBIT() { return nullptr; }; virtual REFIT_MENU_ENTRY_CLOVER* getREFIT_MENU_ENTRY_CLOVER() { return nullptr; }; @@ -117,19 +117,19 @@ class REFIT_ABSTRACT_MENU_ENTRY virtual REFIT_MENU_ITEM_RESET* getREFIT_MENU_ITEM_RESET() { return nullptr; }; virtual REFIT_MENU_ITEM_ABOUT* getREFIT_MENU_ITEM_ABOUT() { return nullptr; }; virtual REFIT_MENU_ITEM_OPTIONS* getREFIT_MENU_ITEM_OPTIONS() { return nullptr; }; - virtual REFIT_MENU_ENTRY_LOADER* getREFIT_MENU_ENTRY_LOADER() { return nullptr; }; + virtual REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER* getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER() { return nullptr; }; virtual LOADER_ENTRY* getLOADER_ENTRY() { return nullptr; }; virtual LEGACY_ENTRY* getLEGACY_ENTRY() { return nullptr; }; virtual REFIT_MENU_ENTRY_OTHER* getREFIT_MENU_ENTRY_OTHER() { return nullptr; }; virtual REFIT_MENU_ITEM_IEM_ABSTRACT* getREFIT_MENU_ITEM_IEM_ABSTRACT() { return nullptr; }; - REFIT_ABSTRACT_MENU_ENTRY(CONST CHAR16 *Title_) : Title(Title_), Row(0), ShortcutDigit(0), ShortcutLetter(0), Image(NULL), DriveImage(NULL), BadgeImage(NULL), Place({0,0,0,0}), AtClick(ActionNone), AtDoubleClick(ActionNone), AtRightClick(ActionNone), AtMouseOver(ActionNone), SubScreen(NULL) {}; + REFIT_ABSTRACT_MENU_ENTRY(CONST CHAR16 *Title_) : Title(Title_), Row(0), ShortcutDigit(0), ShortcutLetter(0), Image(NULL), Place({0,0,0,0}), AtClick(ActionNone), AtDoubleClick(ActionNone), AtRightClick(ActionNone), AtMouseOver(ActionNone), SubScreen(NULL) {}; REFIT_ABSTRACT_MENU_ENTRY(CONST CHAR16 *Title_, UINTN Row_, - CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, EG_IMAGE* Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, + CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, EG_IMAGE* Image_, EG_RECT Place_, ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) : Title(Title_), Row(Row_), ShortcutDigit(ShortcutDigit_), ShortcutLetter(ShortcutLetter_), - Image(Image_), DriveImage(DriveImage_), BadgeImage(BadgeImage_), Place(Place_), + Image(Image_), Place(Place_), AtClick(AtClick_), AtDoubleClick(AtDoubleClick_), AtRightClick(AtRightClick_), AtMouseOver(AtMouseOver_), SubScreen(SubScreen_) {}; virtual ~REFIT_ABSTRACT_MENU_ENTRY() {}; // virtual destructor : this is vital @@ -168,10 +168,10 @@ public: REFIT_MENU_ENTRY() : REFIT_ABSTRACT_MENU_ENTRY(NULL) {}; REFIT_MENU_ENTRY( CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, + EG_IMAGE *Image_, EG_RECT Place_, ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_ABSTRACT_MENU_ENTRY(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_ABSTRACT_MENU_ENTRY(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; }; @@ -182,10 +182,10 @@ public: REFIT_MENU_ENTRY_OTHER() : REFIT_MENU_ENTRY() {}; REFIT_MENU_ENTRY_OTHER(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, - ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, + EG_IMAGE* Image_, EG_RECT Place_, + ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_MENU_ENTRY(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_MENU_ENTRY(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; virtual REFIT_MENU_ENTRY_OTHER* getREFIT_MENU_ENTRY_OTHER() { return this; }; @@ -194,11 +194,14 @@ public: class REFIT_MENU_ITEM_RETURN : public REFIT_MENU_ENTRY_OTHER { public: + REFIT_MENU_ITEM_RETURN(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, ACTION AtClick_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, NULL, {0, 0, 0, 0}, AtClick_, ActionEnter, ActionNone, ActionNone, NULL) + {}; REFIT_MENU_ITEM_RETURN(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, - ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, + EG_IMAGE* Image_, EG_RECT Place_, + ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; virtual REFIT_MENU_ITEM_RETURN* getREFIT_MENU_ITEM_RETURN() { return this; }; }; @@ -206,22 +209,28 @@ public: class REFIT_MENU_ITEM_SHUTDOWN : public REFIT_MENU_ENTRY_OTHER { public: + REFIT_MENU_ITEM_SHUTDOWN(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, ACTION AtClick_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, NULL, {0, 0, 0, 0}, AtClick_, ActionEnter, ActionNone, ActionNone, NULL) + {}; REFIT_MENU_ITEM_SHUTDOWN(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, - ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, + EG_IMAGE* Image_, EG_RECT Place_, + ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; virtual REFIT_MENU_ITEM_SHUTDOWN* getREFIT_MENU_ITEM_SHUTDOWN() { return this; }; }; class REFIT_MENU_ITEM_RESET : public REFIT_MENU_ENTRY_OTHER { public: + REFIT_MENU_ITEM_RESET(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, ACTION AtClick_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, NULL, {0, 0, 0, 0}, AtClick_, ActionEnter, ActionNone, ActionNone, NULL) + {}; REFIT_MENU_ITEM_RESET(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, - ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, + EG_IMAGE* Image_, EG_RECT Place_, + ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; virtual REFIT_MENU_ITEM_RESET* getREFIT_MENU_ITEM_RESET() { return this; }; }; @@ -229,11 +238,14 @@ public: class REFIT_MENU_ITEM_ABOUT : public REFIT_MENU_ENTRY_OTHER { public: + REFIT_MENU_ITEM_ABOUT(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, ACTION AtClick_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, NULL, {0, 0, 0, 0}, AtClick_, ActionEnter, ActionNone, ActionNone, NULL) + {}; REFIT_MENU_ITEM_ABOUT(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, - ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, + EG_IMAGE* Image_, EG_RECT Place_, + ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; virtual REFIT_MENU_ITEM_ABOUT* getREFIT_MENU_ITEM_ABOUT() { return this; }; }; @@ -241,11 +253,14 @@ public: class REFIT_MENU_ITEM_OPTIONS : public REFIT_MENU_ENTRY_OTHER { public: REFIT_MENU_ITEM_OPTIONS() : REFIT_MENU_ENTRY_OTHER() {}; + REFIT_MENU_ITEM_OPTIONS(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, ACTION AtClick_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, NULL, {0, 0, 0, 0}, AtClick_, ActionEnter, ActionNone, ActionNone, NULL) + {}; REFIT_MENU_ITEM_OPTIONS(CONST CHAR16 *Title_, UINTN Row_, CHAR16 ShortcutDigit_, CHAR16 ShortcutLetter_, - EG_IMAGE *Image_, EG_IMAGE *DriveImage_, EG_IMAGE *BadgeImage_, EG_RECT Place_, - ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, + EG_IMAGE* Image_, EG_RECT Place_, + ACTION AtClick_, ACTION AtDoubleClick_, ACTION AtRightClick_, ACTION AtMouseOver_, REFIT_MENU_SCREEN *SubScreen_) - : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, DriveImage_, BadgeImage_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) + : REFIT_MENU_ENTRY_OTHER(Title_, Row_, ShortcutDigit_, ShortcutLetter_, Image_, Place_, AtClick_, AtDoubleClick_, AtRightClick_, AtMouseOver_, SubScreen_) {}; virtual REFIT_MENU_ITEM_OPTIONS* getREFIT_MENU_ITEM_OPTIONS() { return this; }; }; @@ -279,7 +294,7 @@ public: /* * SUper class of LOADER_ENTRY & LEGACY_ENTRY */ -class REFIT_MENU_ENTRY_LOADER : public REFIT_MENU_ENTRY +class REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER : public REFIT_MENU_ENTRY { public: REFIT_VOLUME *Volume; @@ -288,12 +303,18 @@ public: UINTN BootNum; CONST CHAR16 *LoaderPath; - virtual REFIT_MENU_ENTRY_LOADER* getREFIT_MENU_ENTRY_LOADER() { return this; }; + EG_IMAGE *DriveImage; + EG_IMAGE *BadgeImage; + + virtual EG_IMAGE* getDriveImage() const { return DriveImage; }; + virtual EG_IMAGE* getBadgeImage() const { return BadgeImage; }; + + virtual REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER* getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER() { return this; }; }; struct KERNEL_AND_KEXT_PATCHES; -class LOADER_ENTRY : public REFIT_MENU_ENTRY_LOADER +class LOADER_ENTRY : public REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER { public: CONST CHAR16 *VolName; @@ -317,7 +338,7 @@ public: virtual REFIT_MENU_ENTRY_LOADER_TOOL* getREFIT_MENU_ENTRY_LOADER_TOOL() { return this; }; }; -class LEGACY_ENTRY : public REFIT_MENU_ENTRY_LOADER +class LEGACY_ENTRY : public REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER { public: // REFIT_VOLUME *Volume; diff --git a/rEFIt_UEFI/refit/menu.cpp b/rEFIt_UEFI/refit/menu.cpp index da6a4deb4..5f519daa7 100644 --- a/rEFIt_UEFI/refit/menu.cpp +++ b/rEFIt_UEFI/refit/menu.cpp @@ -217,16 +217,11 @@ BOOLEAN mGuiReady = FALSE; // {0, 0, 0, 0}, ActionEnter, ActionEnter, ActionNone, ActionNone, NULL }; -REFIT_MENU_ITEM_OPTIONS MenuEntryOptions = { L"Options", 1, '\0', 'O', NULL, NULL, NULL, - {0, 0, 0, 0}, ActionEnter, ActionEnter, ActionNone, ActionNone, NULL }; -REFIT_MENU_ITEM_ABOUT MenuEntryAbout = { L"About Clover", 1, 0, 'A', NULL, NULL, NULL, - {0, 0, 0, 0}, ActionEnter, ActionEnter, ActionNone, ActionNone, NULL }; -REFIT_MENU_ITEM_RESET MenuEntryReset = { L"Restart Computer", 1, 0, 'R', NULL, NULL, NULL, - {0, 0, 0, 0}, ActionSelect, ActionEnter, ActionNone, ActionNone, NULL }; -REFIT_MENU_ITEM_SHUTDOWN MenuEntryShutdown = { L"Exit Clover", 1, 0, 'U', NULL, NULL, NULL, - {0, 0, 0, 0}, ActionSelect, ActionEnter, ActionNone, ActionNone, NULL }; -REFIT_MENU_ITEM_RETURN MenuEntryReturn = { L"Return", 0, 0, 0, NULL, NULL, NULL, - {0, 0, 0, 0}, ActionEnter, ActionEnter, ActionNone, ActionNone, NULL }; +REFIT_MENU_ITEM_OPTIONS MenuEntryOptions (L"Options", 1, '\0', 'O', ActionEnter); +REFIT_MENU_ITEM_ABOUT MenuEntryAbout (L"About Clover", 1, 0, 'A', ActionEnter); +REFIT_MENU_ITEM_RESET MenuEntryReset (L"Restart Computer", 1, 0, 'R', ActionSelect); +REFIT_MENU_ITEM_SHUTDOWN MenuEntryShutdown(L"Exit Clover", 1, 0, 'U', ActionSelect); +REFIT_MENU_ITEM_RETURN MenuEntryReturn (L"Return", 0, 0, 0, ActionEnter); @@ -3806,10 +3801,8 @@ VOID DrawMainMenuEntry(REFIT_ABSTRACT_MENU_ENTRY *Entry, BOOLEAN selected, INTN { INTN Scale = GlobalConfig.MainEntriesSize >> 3; //usually it is 128>>3 == 16. if 256>>3 == 32 - if (((Entry->getLOADER_ENTRY()) || (Entry->getLEGACY_ENTRY())) && - !(GlobalConfig.HideBadges & HDBADGES_SWAP) && - (Entry->Row == 0)) { - MainImage = Entry->DriveImage; + if ( Entry->getDriveImage() && !(GlobalConfig.HideBadges & HDBADGES_SWAP) /*&& Entry->Row == 0*/) { + MainImage = Entry->getDriveImage(); } else { MainImage = Entry->Image; } @@ -3832,15 +3825,15 @@ VOID DrawMainMenuEntry(REFIT_ABSTRACT_MENU_ENTRY *Entry, BOOLEAN selected, INTN SelectionImages[0]->HasAlpha = TRUE; SelectionImages[2]->HasAlpha = TRUE; //MainImage->HasAlpha = TRUE; - BltImageCompositeBadge(MainImage, - SelectionImages[((Entry->Row == 0) ? 0 : 2) + (selected ? 0 : 1)], - (Entry->Row == 0) ? Entry->BadgeImage:NULL, - XPos, YPos, Scale); - + BltImageCompositeBadge(MainImage, + SelectionImages[((Entry->Row == 0) ? 0 : 2) + (selected ? 0 : 1)], + Entry->getBadgeImage(), + XPos, YPos, Scale); } else { - BltImageCompositeBadge(SelectionImages[((Entry->Row == 0) ? 0 : 2) + (selected ? 0 : 1)], - MainImage, (Entry->Row == 0) ? Entry->BadgeImage:NULL, - XPos, YPos, Scale); + BltImageCompositeBadge(SelectionImages[((Entry->Row == 0) ? 0 : 2) + (selected ? 0 : 1)], + MainImage, + Entry->getBadgeImage(), + XPos, YPos, Scale); } // draw BCS indicator @@ -5620,7 +5613,7 @@ UINT32 EncodeOptions(CONST CHAR16 *Options) return OptionsBits; } -VOID DecodeOptions(REFIT_MENU_ENTRY_LOADER *Entry) +VOID DecodeOptions(REFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER *Entry) { //set checked option INTN Index; @@ -5694,9 +5687,9 @@ UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN INTN DefaultSelection, OUT RE gSettings.OptionsBits = EncodeOptions(TmpArgs); // DBG("main OptionsBits = 0x%x\n", gSettings.OptionsBits); - if ( MainChosenEntry->getREFIT_MENU_ENTRY_LOADER() ) gSettings.OptionsBits |= EncodeOptions(MainChosenEntry->getREFIT_MENU_ENTRY_LOADER()->LoadOptions); + if ( MainChosenEntry->getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER() ) gSettings.OptionsBits |= EncodeOptions(MainChosenEntry->getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER()->LoadOptions); // DBG("add OptionsBits = 0x%x\n", gSettings.OptionsBits); - if ( MainChosenEntry->getREFIT_MENU_ENTRY_LOADER() ) DecodeOptions(MainChosenEntry->getREFIT_MENU_ENTRY_LOADER()); + if ( MainChosenEntry->getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER() ) DecodeOptions(MainChosenEntry->getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER()); // DBG(" enter menu with LoadOptions: %s\n", ((LOADER_ENTRY*)MainChosenEntry)->LoadOptions); if (MainChosenEntry->getLOADER_ENTRY()) { // Only for non-legacy entries, as LEGACY_ENTRY doesn't have Flags @@ -5712,7 +5705,7 @@ UINTN RunMainMenu(IN REFIT_MENU_SCREEN *Screen, IN INTN DefaultSelection, OUT RE while (!SubMenuExit) { //running details menu SubMenuExit = RunGenericMenu(MainChosenEntry->SubScreen, Style, &SubMenuIndex, &TempChosenEntry); - if ( MainChosenEntry->getREFIT_MENU_ENTRY_LOADER() ) DecodeOptions(MainChosenEntry->getREFIT_MENU_ENTRY_LOADER()); + if ( MainChosenEntry->getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER() ) DecodeOptions(MainChosenEntry->getREFIT_MENU_ITEM_ABSTRACT_ENTRY_LOADER()); // DBG("get OptionsBits = 0x%x\n", gSettings.OptionsBits); // DBG(" TempChosenEntry FlagsBits = 0x%x\n", ((LOADER_ENTRY*)TempChosenEntry)->Flags); if (SubMenuExit == MENU_EXIT_ESCAPE || TempChosenEntry->getREFIT_MENU_ITEM_RETURN() ) {