1 /** @file 2 Declares menubar interface functions. 3 4 Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved. <BR> 5 SPDX-License-Identifier: BSD-2-Clause-Patent 6 7 **/ 8 9 #ifndef _LIB_MENU_BAR_H_ 10 #define _LIB_MENU_BAR_H_ 11 12 #define SCAN_CONTROL_E 5 13 #define SCAN_CONTROL_F 6 14 #define SCAN_CONTROL_G 7 15 #define SCAN_CONTROL_K 11 16 #define SCAN_CONTROL_O 15 17 #define SCAN_CONTROL_Q 17 18 #define SCAN_CONTROL_R 18 19 #define SCAN_CONTROL_S 19 20 #define SCAN_CONTROL_T 20 21 #define SCAN_CONTROL_U 21 22 #define SCAN_CONTROL_W 23 23 #define SCAN_CONTROL_Z 26 24 25 26 typedef 27 EFI_STATUS 28 (*MENU_ITEM_FUNCTION) ( 29 VOID 30 ); 31 32 typedef struct _EDITOR_MENU_ITEM { 33 EFI_STRING_ID NameToken; 34 CHAR16 FunctionKeyToken; 35 MENU_ITEM_FUNCTION Function; 36 } EDITOR_MENU_ITEM; 37 38 /** 39 Initializa the menu bar with the specified items. 40 41 @param[in] Items The items to display and their functions. 42 43 @retval EFI_SUCCESS The initialization was correct. 44 @retval EFI_OUT_OF_RESOURCES A memory allocation failed. 45 **/ 46 EFI_STATUS 47 MenuBarInit ( 48 IN CONST EDITOR_MENU_ITEM *Items 49 ); 50 51 /** 52 Initialize the control hot-key with the specified items. 53 54 @param[in] Items The hot-key functions. 55 56 @retval EFI_SUCCESS The initialization was correct. 57 **/ 58 EFI_STATUS 59 ControlHotKeyInit ( 60 IN MENU_ITEM_FUNCTION *Items 61 ); 62 63 /** 64 Cleanup function for a menu bar. frees all allocated memory. 65 **/ 66 VOID 67 MenuBarCleanup ( 68 VOID 69 ); 70 71 /** 72 Refresh function for the menu bar. 73 74 @param[in] LastRow The last printable row. 75 @param[in] LastCol The last printable column. 76 77 @retval EFI_SUCCESS The refresh was successful. 78 **/ 79 EFI_STATUS 80 MenuBarRefresh ( 81 IN CONST UINTN LastRow, 82 IN CONST UINTN LastCol 83 ); 84 85 /** 86 Function to dispatch the correct function based on a function key (F1...) 87 88 @param[in] Key The pressed key. 89 90 @retval EFI_NOT_FOUND The key was not a valid function key 91 (an error was sent to the status bar). 92 @return The return value from the called dispatch function. 93 **/ 94 EFI_STATUS 95 MenuBarDispatchFunctionKey ( 96 IN CONST EFI_INPUT_KEY *Key 97 ); 98 99 /** 100 Function to dispatch the correct function based on a control-based key (ctrl+o...) 101 102 @param[in] KeyData The pressed key. 103 104 @retval EFI_NOT_FOUND The key was not a valid control-based key 105 (an error was sent to the status bar). 106 @return EFI_SUCCESS. 107 **/ 108 EFI_STATUS 109 MenuBarDispatchControlHotKey ( 110 IN CONST EFI_KEY_DATA *KeyData 111 ); 112 113 #endif 114