3 Copyright (c) 2004 - 2007, Intel Corporation
4 All rights reserved. This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
33 #define REGULAR_NUMERIC 0
34 #define TIME_NUMERIC 1
35 #define DATE_NUMERIC 2
37 #define SUBTITLE_INDENT 2
53 } UI_SCREEN_OPERATION
;
80 #define UI_ACTION_NONE 0
81 #define UI_ACTION_REFRESH_FORM 1
82 #define UI_ACTION_REFRESH_FORMSET 2
83 #define UI_ACTION_EXIT 3
86 EFI_HII_HANDLE Handle
;
89 // Target formset/form/Question information
102 // Ation for Browser to taken:
103 // UI_ACTION_NONE - navigation inside a form
104 // UI_ACTION_REFRESH_FORM - re-evaluate expressions and repaint form
105 // UI_ACTION_REFRESH_FORMSET - re-parse formset IFR binary
110 // Current selected fomset/form/Question
112 FORM_BROWSER_FORMSET
*FormSet
;
113 FORM_BROWSER_FORM
*Form
;
114 FORM_BROWSER_STATEMENT
*Statement
;
117 #define UI_MENU_OPTION_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'm')
118 #define UI_MENU_LIST_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'l')
124 EFI_HII_HANDLE Handle
;
125 FORM_BROWSER_STATEMENT
*ThisTag
;
132 UINTN Skip
; // Number of lines
135 // Display item sequence for date/time
136 // Date: Month/Day/Year
139 // Time: Hour : Minute : Second
149 #define MENU_OPTION_FROM_LINK(a) CR (a, UI_MENU_OPTION, Link, UI_MENU_OPTION_SIGNATURE)
159 typedef struct _MENU_REFRESH_ENTRY
{
160 struct _MENU_REFRESH_ENTRY
*Next
;
161 UI_MENU_OPTION
*MenuOption
; // Describes the entry needing an update
162 UI_MENU_SELECTION
*Selection
;
165 UINTN CurrentAttribute
;
166 } MENU_REFRESH_ENTRY
;
170 UI_SCREEN_OPERATION ScreenOperation
;
171 } SCAN_CODE_TO_SCREEN_OPERATION
;
174 UI_SCREEN_OPERATION ScreenOperation
;
175 UI_CONTROL_FLAG ControlFlag
;
176 } SCREEN_OPERATION_T0_CONTROL_FLAG
;
179 extern LIST_ENTRY gMenuList
;
180 extern MENU_REFRESH_ENTRY
*gMenuRefreshHead
;
181 extern UI_MENU_SELECTION
*gCurrentSelection
;
199 UiRemoveMenuListEntry (
200 OUT UI_MENU_SELECTION
*Selection
212 IN UI_MENU_SELECTION
*Selection
225 IN EFI_HII_HANDLE Handle
,
226 IN FORM_BROWSER_STATEMENT
*Statement
,
227 IN UINT16 NumberOfLines
,
228 IN UINT16 MenuItemCount
234 IN OUT UI_MENU_SELECTION
*Selection
246 IN OUT UI_MENU_SELECTION
*Selection
275 UiWaitForSingleEvent (
277 IN UINT64 Timeout
, OPTIONAL
278 IN UINT8 RefreshInterval OPTIONAL
284 IN UINTN ScreenWidth
,
285 IN UINTN NumberOfLines
,
286 IN CHAR16
*ArrayOfStrings
,
293 IN UI_MENU_OPTION
*MenuOption
,
295 OUT CHAR16
*StringPtr
300 GetSelectionInputPopUp (
301 IN UI_MENU_SELECTION
*Selection
,
302 IN UI_MENU_OPTION
*MenuOption
308 IN UI_MENU_SELECTION
*Selection
,
309 IN UI_MENU_OPTION
*MenuOption
315 IN UINTN MessageType
,
322 ProcessQuestionConfig (
323 IN UI_MENU_SELECTION
*Selection
,
324 IN FORM_BROWSER_STATEMENT
*Question
329 PrintFormattedNumber (
330 IN FORM_BROWSER_STATEMENT
*Question
,
331 IN OUT CHAR16
*FormattedNumber
,
338 IN FORM_BROWSER_STATEMENT
*Question
,
339 IN EFI_HII_VALUE
*OptionValue
345 IN UI_MENU_SELECTION
*Selection
,
346 IN UI_MENU_OPTION
*MenuOption
,
348 OUT CHAR16
**OptionString
354 IN CHAR16
*StringPtr
,
355 OUT CHAR16
**FormattedString
,
362 IN UI_MENU_OPTION
*MenuOption
,
385 IN CHAR16
*InputString
,
388 OUT CHAR16
**OutputString
394 IN FORM_BROWSER_STATEMENT
*Statement
,
395 IN EFI_HII_HANDLE Handle
408 OUT EFI_INPUT_KEY
*Key
432 IN FORM_BROWSER_FORMSET
*FormSet
,
437 FORM_BROWSER_STATEMENT
*
439 IN FORM_BROWSER_FORMSET
*FormSet
,
440 IN FORM_BROWSER_FORM
*Form
,
447 IN FORM_BROWSER_FORM
*Form
,
454 IN EFI_HII_VALUE
*Value
460 IN EFI_HII_VALUE
*Value1
,
461 IN EFI_HII_VALUE
*Value2
,
462 IN EFI_HII_HANDLE HiiHandle OPTIONAL
468 IN FORM_BROWSER_FORMSET
*FormSet
,
469 IN FORM_BROWSER_FORM
*Form
,
470 IN OUT FORM_EXPRESSION
*Expression