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 MenuBarInit (
     54   IN CONST EDITOR_MENU_ITEM  *Items
     55   );
     56 
     57 /**
     58   Initialize the control hot-key with the specified items.
     59 
     60   @param[in] Items              The hot-key functions.
     61 
     62   @retval EFI_SUCCESS           The initialization was correct.
     63 **/
     64 EFI_STATUS
     65 ControlHotKeyInit (
     66   IN MENU_ITEM_FUNCTION  *Items
     67   );
     68 
     69 /**
     70   Cleanup function for a menu bar.  frees all allocated memory.
     71 **/
     72 VOID
     73 MenuBarCleanup (
     74   VOID
     75   );
     76 
     77 /**
     78   Refresh function for the menu bar.
     79 
     80   @param[in] LastRow            The last printable row.
     81   @param[in] LastCol            The last printable column.
     82 
     83   @retval EFI_SUCCESS           The refresh was successful.
     84 **/
     85 EFI_STATUS
     86 MenuBarRefresh (
     87   IN CONST UINTN LastRow,
     88   IN CONST UINTN LastCol
     89   );
     90 
     91 /**
     92   Function to dispatch the correct function based on a function key (F1...)
     93 
     94   @param[in] Key                The pressed key.
     95 
     96   @retval EFI_NOT_FOUND         The key was not a valid function key
     97                                 (an error was sent to the status bar).
     98   @return The return value from the called dispatch function.
     99 **/
    100 EFI_STATUS
    101 MenuBarDispatchFunctionKey (
    102   IN CONST EFI_INPUT_KEY   *Key
    103   );
    104 
    105 /**
    106   Function to dispatch the correct function based on a control-based key (ctrl+o...)
    107 
    108   @param[in] Key                The pressed key.
    109 
    110   @retval EFI_NOT_FOUND         The key was not a valid control-based key
    111                                 (an error was sent to the status bar).
    112   @return EFI_SUCCESS.
    113 **/
    114 EFI_STATUS
    115 MenuBarDispatchControlHotKey (
    116   IN CONST EFI_INPUT_KEY   *Key
    117   );
    118 
    119 #endif
    120