blob: 8cd846f28b36cb219d7047fb0c91730a4fa06b59 [file] [log] [blame]
Vishal Bhoj82c80712015-12-15 21:13:33 +05301/** @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
32typedef
33EFI_STATUS
34(*MENU_ITEM_FUNCTION) (
35 VOID
36 );
37
38typedef 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**/
52EFI_STATUS
53EFIAPI
54MenuBarInit (
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**/
65EFI_STATUS
66EFIAPI
67ControlHotKeyInit (
68 IN MENU_ITEM_FUNCTION *Items
69 );
70
71/**
72 Cleanup function for a menu bar. frees all allocated memory.
73**/
74VOID
75EFIAPI
76MenuBarCleanup (
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**/
88EFI_STATUS
89EFIAPI
90MenuBarRefresh (
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**/
104EFI_STATUS
105EFIAPI
106MenuBarDispatchFunctionKey (
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**/
119EFI_STATUS
120EFIAPI
121MenuBarDispatchControlHotKey (
122 IN CONST EFI_INPUT_KEY *Key
123 );
124
125#endif