1 /** @file 2 FrontPage routines to handle the callbacks and browser calls 3 4 Copyright (c) 2004 - 2015, Intel Corporation. All rights reserved.<BR> 5 This program and the accompanying materials 6 are licensed and made available under the terms and conditions of the BSD License 7 which accompanies this distribution. The full text of the license may be found at 8 http://opensource.org/licenses/bsd-license.php 9 10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 12 13 **/ 14 15 16 #ifndef _BOOT_MANAGER_MENU_H_ 17 #define _BOOT_MANAGER_MENU_H_ 18 19 #include <Uefi.h> 20 #include <Guid/MdeModuleHii.h> 21 #include <Library/UefiBootManagerLib.h> 22 #include <Library/UefiBootServicesTableLib.h> 23 #include <Library/UefiLib.h> 24 #include <Library/HiiLib.h> 25 #include <Library/MemoryAllocationLib.h> 26 #include <Library/DebugLib.h> 27 #include <Library/BaseMemoryLib.h> 28 #include <Library/DevicePathLib.h> 29 #include <Protocol/LoadedImage.h> 30 #include <Protocol/BootLogo.h> 31 32 #define TITLE_TOKEN_COUNT 1 33 #define HELP_TOKEN_COUNT 3 34 35 typedef struct _BOOT_MENU_SCREEN { 36 UINTN StartCol; 37 UINTN StartRow; 38 UINTN Width; 39 UINTN Height; 40 } BOOT_MENU_SCREEN; 41 42 typedef struct _BOOT_MENU_SCROLL_BAR_CONTROL { 43 BOOLEAN HasScrollBar; 44 UINTN ItemCountPerScreen; 45 UINTN FirstItem; 46 UINTN LastItem; 47 } BOOT_MENU_SCROLL_BAR_CONTROL; 48 49 typedef struct _BOOT_MENU_POPUP_DATA { 50 EFI_STRING_ID TitleToken[TITLE_TOKEN_COUNT]; // Title string ID 51 UINTN ItemCount; // Selectable item count 52 EFI_STRING_ID *PtrTokens; // All of selectable items string ID 53 EFI_STRING_ID HelpToken[HELP_TOKEN_COUNT]; // All of help string ID 54 UINTN SelectItem; // Current select item 55 BOOT_MENU_SCREEN MenuScreen; // Boot menu screen information 56 BOOT_MENU_SCROLL_BAR_CONTROL ScrollBarControl; // Boot menu scroll bar inoformation 57 } BOOT_MENU_POPUP_DATA; 58 59 #endif 60 61