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