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