blob: 92c5610d66b63e2f7d372f9f5aa7b230f02bfadc (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
/** @file
Declares menubar interface functions.
Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved. <BR>
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
|