/** @file Declares menubar interface functions. Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef _LIB_MENU_BAR_H_ #define _LIB_MENU_BAR_H_ #define SCAN_CONTROL_E 5 #define SCAN_CONTROL_F 6 #define SCAN_CONTROL_G 7 #define SCAN_CONTROL_K 11 #define SCAN_CONTROL_O 15 #define SCAN_CONTROL_Q 17 #define SCAN_CONTROL_R 18 #define SCAN_CONTROL_S 19 #define SCAN_CONTROL_T 20 #define SCAN_CONTROL_U 21 #define SCAN_CONTROL_W 23 #define SCAN_CONTROL_Z 26 typedef EFI_STATUS (*MENU_ITEM_FUNCTION) ( VOID ); typedef struct _EDITOR_MENU_ITEM { EFI_STRING_ID NameToken; CHAR16 FunctionKeyToken; MENU_ITEM_FUNCTION Function; } EDITOR_MENU_ITEM; /** Initializa the menu bar with the specified items. @param[in] Items The items to display and their functions. @retval EFI_SUCCESS The initialization was correct. @retval EFI_OUT_OF_RESOURCES A memory allocation failed. **/ EFI_STATUS MenuBarInit ( IN CONST EDITOR_MENU_ITEM *Items ); /** Initialize the control hot-key with the specified items. @param[in] Items The hot-key functions. @retval EFI_SUCCESS The initialization was correct. **/ EFI_STATUS ControlHotKeyInit ( IN MENU_ITEM_FUNCTION *Items ); /** Cleanup function for a menu bar. frees all allocated memory. **/ VOID MenuBarCleanup ( VOID ); /** Refresh function for the menu bar. @param[in] LastRow The last printable row. @param[in] LastCol The last printable column. @retval EFI_SUCCESS The refresh was successful. **/ EFI_STATUS MenuBarRefresh ( IN CONST UINTN LastRow, IN CONST UINTN LastCol ); /** Function to dispatch the correct function based on a function key (F1...) @param[in] Key The pressed key. @retval EFI_NOT_FOUND The key was not a valid function key (an error was sent to the status bar). @return The return value from the called dispatch function. **/ EFI_STATUS MenuBarDispatchFunctionKey ( IN CONST EFI_INPUT_KEY *Key ); /** Function to dispatch the correct function based on a control-based key (ctrl+o...) @param[in] KeyData The pressed key. @retval EFI_NOT_FOUND The key was not a valid control-based key (an error was sent to the status bar). @return EFI_SUCCESS. **/ EFI_STATUS MenuBarDispatchControlHotKey ( IN CONST EFI_KEY_DATA *KeyData ); #endif