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