]> git.proxmox.com Git - mirror_edk2.git/blame - IntelFrameworkModulePkg/Universal/SetupBrowserDxe/Ui.h
Merge in a bug fixed in EDK tree.
[mirror_edk2.git] / IntelFrameworkModulePkg / Universal / SetupBrowserDxe / Ui.h
CommitLineData
3db51098 1/**@file\r
2\r
103b6520 3\r
ececc2eb 4Copyright (c) 2006, Intel Corporation\r
5All rights reserved. This program and the accompanying materials\r
6are licensed and made available under the terms and conditions of the BSD License\r
7which accompanies this distribution. The full text of the license may be found at\r
8http://opensource.org/licenses/bsd-license.php\r
9\r
10THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
11WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
103b6520 12\r
3db51098 13**/\r
103b6520 14\r
103b6520 15\r
16#ifndef _UI_H\r
17#define _UI_H\r
18\r
103b6520 19\r
20//\r
21// Globals\r
22//\r
23#define REGULAR_NUMERIC 0\r
24#define TIME_NUMERIC 1\r
25#define DATE_NUMERIC 2\r
26\r
27typedef enum {\r
28 UiNoOperation,\r
29 UiDefault,\r
30 UiSelect,\r
31 UiUp,\r
32 UiDown,\r
33 UiLeft,\r
34 UiRight,\r
35 UiReset,\r
36 UiSave,\r
37 UiPrevious,\r
38 UiPageUp,\r
39 UiPageDown,\r
40 UiMaxOperation\r
41} UI_SCREEN_OPERATION;\r
42\r
43typedef enum {\r
44 CfInitialization,\r
45 CfCheckSelection,\r
46 CfRepaint,\r
47 CfRefreshHighLight,\r
48 CfUpdateHelpString,\r
49 CfPrepareToReadKey,\r
50 CfReadKey,\r
51 CfScreenOperation,\r
52 CfUiPrevious,\r
53 CfUiSelect,\r
54 CfUiReset,\r
55 CfUiLeft,\r
56 CfUiRight,\r
57 CfUiUp,\r
58 CfUiPageUp,\r
59 CfUiPageDown,\r
60 CfUiDown,\r
61 CfUiSave,\r
62 CfUiDefault,\r
63 CfUiNoOperation,\r
64 CfExit,\r
65 CfMaxControlFlag\r
66} UI_CONTROL_FLAG;\r
67\r
68#define UI_MENU_OPTION_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'm')\r
69#define UI_MENU_LIST_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'l')\r
70\r
71typedef struct {\r
72 UINTN Signature;\r
73 LIST_ENTRY Link;\r
74\r
75 UINTN Row;\r
76 UINTN Col;\r
77 UINTN OptCol;\r
78 CHAR16 *Description;\r
79 UINTN Skip;\r
80\r
81 UINTN IfrNumber;\r
82 VOID *FormBinary;\r
83 EFI_HII_HANDLE Handle;\r
84 EFI_TAG *Tags;\r
85 UINTN TagIndex;\r
86 EFI_TAG *ThisTag;\r
87 UINT16 FormId;\r
88 BOOLEAN Previous;\r
89 UINT16 EntryNumber;\r
90 UINT16 Consistency;\r
91 BOOLEAN GrayOut;\r
92} UI_MENU_OPTION;\r
93\r
94typedef struct {\r
95 UINTN Signature;\r
96 LIST_ENTRY MenuLink;\r
97\r
98 UI_MENU_OPTION Selection;\r
99 UINTN FormerEntryNumber;\r
100} UI_MENU_LIST;\r
101\r
102typedef struct _MENU_REFRESH_ENTRY {\r
103 struct _MENU_REFRESH_ENTRY *Next;\r
104 EFI_FILE_FORM_TAGS *FileFormTagsHead;\r
105 UINTN CurrentColumn;\r
106 UINTN CurrentRow;\r
107 UINTN CurrentAttribute;\r
108 UI_MENU_OPTION *MenuOption; // Describes the entry needing an update\r
109} MENU_REFRESH_ENTRY;\r
110\r
111typedef struct {\r
112 UINT16 ScanCode;\r
113 UI_SCREEN_OPERATION ScreenOperation;\r
114} SCAN_CODE_TO_SCREEN_OPERATION;\r
115\r
116typedef struct {\r
117 UI_SCREEN_OPERATION ScreenOperation;\r
118 UI_CONTROL_FLAG ControlFlag;\r
119} SCREEN_OPERATION_T0_CONTROL_FLAG;\r
120\r
121LIST_ENTRY Menu;\r
122LIST_ENTRY gMenuList;\r
123MENU_REFRESH_ENTRY *gMenuRefreshHead;\r
124\r
125INTN gEntryNumber;\r
126BOOLEAN gLastOpr;\r
127//\r
128// Global Functions\r
129//\r
130VOID\r
131UiInitMenu (\r
132 VOID\r
133 )\r
134;\r
135\r
136VOID\r
137UiInitMenuList (\r
138 VOID\r
139 )\r
140;\r
141\r
142VOID\r
143UiRemoveMenuListEntry (\r
144 IN UI_MENU_OPTION *Selection,\r
145 OUT UI_MENU_OPTION **PreviousSelection\r
146 )\r
147;\r
148\r
149VOID\r
150UiFreeMenuList (\r
151 VOID\r
152 )\r
153;\r
154\r
155VOID\r
156UiAddMenuListEntry (\r
157 IN UI_MENU_OPTION *Selection\r
158 )\r
159;\r
160\r
161VOID\r
162UiFreeMenu (\r
163 VOID\r
164 )\r
165;\r
166\r
167VOID\r
168UiAddMenuOption (\r
169 IN CHAR16 *String,\r
170 IN EFI_HII_HANDLE Handle,\r
171 IN EFI_TAG *Tag,\r
172 IN VOID *FormBinary,\r
173 IN UINTN IfrNumber\r
174 )\r
175;\r
176\r
177VOID\r
178UiAddSubMenuOption (\r
179 IN CHAR16 *String,\r
180 IN EFI_HII_HANDLE Handle,\r
181 IN EFI_TAG *Tag,\r
182 IN UINTN TagIndex,\r
183 IN UINT16 FormId,\r
184 IN UINT16 MenuItemCount\r
185 )\r
186;\r
187\r
188UI_MENU_OPTION *\r
189UiDisplayMenu (\r
190 IN BOOLEAN SubMenu,\r
191 IN EFI_FILE_FORM_TAGS *FileFormTagsHead,\r
192 OUT EFI_IFR_DATA_ARRAY *PageData\r
193 )\r
194;\r
195\r
196VOID\r
197InitPage (\r
198 VOID\r
199 )\r
200;\r
201\r
202UI_MENU_OPTION *\r
203SetupBrowser (\r
204 IN UI_MENU_OPTION *Selection,\r
205 IN BOOLEAN Callback,\r
206 IN EFI_FILE_FORM_TAGS *FileFormTagsHead,\r
207 IN UINT8 *CallbackData\r
208 )\r
209;\r
210\r
211\r
212VOID\r
213SetUnicodeMem (\r
214 IN VOID *Buffer,\r
215 IN UINTN Size,\r
216 IN CHAR16 Value\r
217 )\r
218;\r
219\r
220EFI_STATUS\r
221UiWaitForSingleEvent (\r
222 IN EFI_EVENT Event,\r
223 IN UINT64 Timeout OPTIONAL\r
224 )\r
225;\r
226\r
227VOID\r
228CreatePopUp (\r
229 IN UINTN ScreenWidth,\r
230 IN UINTN NumberOfLines,\r
231 IN CHAR16 *ArrayOfStrings,\r
232 ...\r
233 )\r
234;\r
235\r
236EFI_STATUS\r
237ReadString (\r
238 IN UI_MENU_OPTION *MenuOption,\r
239 OUT CHAR16 *StringPtr\r
240 )\r
241;\r
242\r
243EFI_STATUS\r
244ReadPassword (\r
245 IN UI_MENU_OPTION *MenuOption,\r
246 IN BOOLEAN PromptForPassword,\r
247 IN EFI_TAG *Tag,\r
248 IN EFI_IFR_DATA_ARRAY *PageData,\r
249 IN BOOLEAN SecondEntry,\r
250 IN EFI_FILE_FORM_TAGS *FileFormTags,\r
251 OUT CHAR16 *StringPtr\r
252 )\r
253;\r
254\r
255VOID\r
256EncodePassword (\r
257 IN CHAR16 *Password,\r
258 IN UINT8 MaxSize\r
259 )\r
260;\r
261\r
262EFI_STATUS\r
263GetSelectionInputPopUp (\r
264 IN UI_MENU_OPTION *MenuOption,\r
265 IN EFI_TAG *Tag,\r
266 IN UINTN ValueCount,\r
267 OUT UINT16 *Value,\r
268 OUT UINT16 *KeyValue\r
269 )\r
270;\r
271\r
272EFI_STATUS\r
273GetSelectionInputLeftRight (\r
274 IN UI_MENU_OPTION *MenuOption,\r
275 IN EFI_TAG *Tag,\r
276 IN UINTN ValueCount,\r
277 OUT UINT16 *Value\r
278 )\r
279;\r
280\r
281EFI_STATUS\r
282GetNumericInput (\r
283 IN UI_MENU_OPTION *MenuOption,\r
284 IN EFI_FILE_FORM_TAGS *FileFormTagsHead,\r
285 IN BOOLEAN ManualInput,\r
286 IN EFI_TAG *Tag,\r
287 IN UINTN NumericType,\r
288 OUT UINT16 *Value\r
289 )\r
290;\r
291\r
292VOID\r
293UpdateStatusBar (\r
294 IN UINTN MessageType,\r
295 IN UINT8 Flags,\r
296 IN BOOLEAN State\r
297 )\r
298;\r
299\r
300EFI_STATUS\r
301ProcessOptions (\r
302 IN UI_MENU_OPTION *MenuOption,\r
303 IN BOOLEAN Selected,\r
304 IN EFI_FILE_FORM_TAGS *FileFormTagsHead,\r
305 IN EFI_IFR_DATA_ARRAY *PageData,\r
306 OUT CHAR16 **OptionString\r
307 )\r
308;\r
309\r
310VOID\r
311ProcessHelpString (\r
312 IN CHAR16 *StringPtr,\r
313 OUT CHAR16 **FormattedString,\r
314 IN UINTN RowCount\r
315 )\r
316;\r
317\r
318VOID\r
319UpdateKeyHelp (\r
320 IN UI_MENU_OPTION *Selection,\r
321 IN BOOLEAN Selected\r
322 )\r
323;\r
324\r
325BOOLEAN\r
326ValueIsNotValid (\r
327 IN BOOLEAN Complex,\r
328 IN UINT16 Value,\r
329 IN EFI_TAG *Tag,\r
330 IN EFI_FILE_FORM_TAGS *FileFormTags,\r
331 IN STRING_REF *PopUp\r
332 )\r
333;\r
334\r
335VOID\r
336FreeData (\r
337 IN EFI_FILE_FORM_TAGS *FileFormTagsHead,\r
338 IN CHAR16 *FormattedString,\r
339 IN CHAR16 *OptionString\r
340 )\r
341;\r
342\r
343VOID\r
344ClearLines (\r
345 UINTN LeftColumn,\r
346 UINTN RightColumn,\r
347 UINTN TopRow,\r
348 UINTN BottomRow,\r
349 UINTN TextAttribute\r
350 )\r
351;\r
352\r
353UINTN\r
354GetStringWidth (\r
355 CHAR16 *String\r
356 )\r
357;\r
358\r
359UINT16\r
360GetLineByWidth (\r
361 IN CHAR16 *InputString,\r
362 IN UINT16 LineWidth,\r
363 IN OUT UINTN *Index,\r
364 OUT CHAR16 **OutputString\r
365 )\r
366;\r
367\r
368UINT16\r
369GetWidth (\r
370 IN EFI_TAG *Tag,\r
371 IN EFI_HII_HANDLE Handle\r
372 )\r
373;\r
374\r
375VOID\r
376NewStrCat (\r
377 CHAR16 *Destination,\r
378 CHAR16 *Source\r
379 )\r
380;\r
381\r
382VOID\r
383IfrToFormTag (\r
384 IN UINT8 OpCode,\r
385 IN EFI_TAG *TargetTag,\r
386 IN VOID *FormData,\r
387 EFI_VARIABLE_DEFINITION *VariableDefinitionsHead\r
388 )\r
389;\r
390\r
391EFI_STATUS\r
392ExtractNvValue (\r
393 IN EFI_FILE_FORM_TAGS *FileFormTags,\r
394 IN UINT16 VariableId,\r
395 IN UINT16 VariableSize,\r
396 IN UINT16 OffsetValue,\r
397 OUT VOID **Buffer\r
398 )\r
399;\r
400\r
401EFI_STATUS\r
402ExtractRequestedNvMap (\r
403 IN EFI_FILE_FORM_TAGS *FileFormTags,\r
404 IN UINT16 VariableId,\r
405 OUT EFI_VARIABLE_DEFINITION **VariableDefinition\r
406 )\r
407;\r
408\r
409BOOLEAN\r
410ValueIsScroll (\r
411 IN BOOLEAN Direction,\r
412 IN LIST_ENTRY *CurrentPos\r
413 )\r
414;\r
415\r
416UINTN\r
417AdjustDateAndTimePosition (\r
418 IN BOOLEAN DirectionUp,\r
419 IN LIST_ENTRY **CurrentPosition\r
420 )\r
421;\r
422\r
423EFI_STATUS\r
424WaitForKeyStroke (\r
425 OUT EFI_INPUT_KEY *Key\r
426 )\r
427;\r
428#endif // _UI_H\r