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