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