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.
28 //@MT:#include "Tiano.h"
29 //@MT:#include "EfiDriverLib.h"
31 //@MT:#include "GraphicsLib.h"
32 //@MT:#include "EfiPrintLib.h"
37 #define REGULAR_NUMERIC 0
38 #define TIME_NUMERIC 1
39 #define DATE_NUMERIC 2
41 #define SUBTITLE_INDENT 2
57 } UI_SCREEN_OPERATION
;
84 #define UI_ACTION_NONE 0
85 #define UI_ACTION_REFRESH_FORM 1
86 #define UI_ACTION_REFRESH_FORMSET 2
87 #define UI_ACTION_EXIT 3
90 EFI_HII_HANDLE Handle
;
93 // Target formset/form/Question information
106 // Ation for Browser to taken:
107 // UI_ACTION_NONE - navigation inside a form
108 // UI_ACTION_REFRESH_FORM - re-evaluate expressions and repaint form
109 // UI_ACTION_REFRESH_FORMSET - re-parse formset IFR binary
114 // Current selected fomset/form/Question
116 FORM_BROWSER_FORMSET
*FormSet
;
117 FORM_BROWSER_FORM
*Form
;
118 FORM_BROWSER_STATEMENT
*Statement
;
121 #define UI_MENU_OPTION_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'm')
122 #define UI_MENU_LIST_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'l')
128 EFI_HII_HANDLE Handle
;
129 FORM_BROWSER_STATEMENT
*ThisTag
;
136 UINTN Skip
; // Number of lines
139 // Display item sequence for date/time
140 // Date: Month/Day/Year
143 // Time: Hour : Minute : Second
153 #define MENU_OPTION_FROM_LINK(a) CR (a, UI_MENU_OPTION, Link, UI_MENU_OPTION_SIGNATURE)
163 typedef struct _MENU_REFRESH_ENTRY
{
164 struct _MENU_REFRESH_ENTRY
*Next
;
165 UI_MENU_OPTION
*MenuOption
; // Describes the entry needing an update
166 UI_MENU_SELECTION
*Selection
;
169 UINTN CurrentAttribute
;
170 } MENU_REFRESH_ENTRY
;
174 UI_SCREEN_OPERATION ScreenOperation
;
175 } SCAN_CODE_TO_SCREEN_OPERATION
;
178 UI_SCREEN_OPERATION ScreenOperation
;
179 UI_CONTROL_FLAG ControlFlag
;
180 } SCREEN_OPERATION_T0_CONTROL_FLAG
;
183 extern LIST_ENTRY gMenuList
;
184 extern MENU_REFRESH_ENTRY
*gMenuRefreshHead
;
185 extern UI_MENU_SELECTION
*gCurrentSelection
;
203 UiRemoveMenuListEntry (
204 OUT UI_MENU_SELECTION
*Selection
216 IN UI_MENU_SELECTION
*Selection
229 IN EFI_HII_HANDLE Handle
,
230 IN FORM_BROWSER_STATEMENT
*Statement
,
231 IN UINT16 NumberOfLines
,
232 IN UINT16 MenuItemCount
238 IN OUT UI_MENU_SELECTION
*Selection
250 IN OUT UI_MENU_SELECTION
*Selection
279 UiWaitForSingleEvent (
281 IN UINT64 Timeout
, OPTIONAL
282 IN UINT8 RefreshInterval OPTIONAL
288 IN UINTN ScreenWidth
,
289 IN UINTN NumberOfLines
,
290 IN CHAR16
*ArrayOfStrings
,
297 IN UI_MENU_OPTION
*MenuOption
,
299 OUT CHAR16
*StringPtr
304 GetSelectionInputPopUp (
305 IN UI_MENU_SELECTION
*Selection
,
306 IN UI_MENU_OPTION
*MenuOption
312 IN UI_MENU_SELECTION
*Selection
,
313 IN UI_MENU_OPTION
*MenuOption
319 IN UINTN MessageType
,
326 ProcessQuestionConfig (
327 IN UI_MENU_SELECTION
*Selection
,
328 IN FORM_BROWSER_STATEMENT
*Question
333 PrintFormattedNumber (
334 IN FORM_BROWSER_STATEMENT
*Question
,
335 IN OUT CHAR16
*FormattedNumber
,
342 IN FORM_BROWSER_STATEMENT
*Question
,
343 IN EFI_HII_VALUE
*OptionValue
349 IN UI_MENU_SELECTION
*Selection
,
350 IN UI_MENU_OPTION
*MenuOption
,
352 OUT CHAR16
**OptionString
358 IN CHAR16
*StringPtr
,
359 OUT CHAR16
**FormattedString
,
366 IN UI_MENU_OPTION
*MenuOption
,
389 IN CHAR16
*InputString
,
392 OUT CHAR16
**OutputString
398 IN FORM_BROWSER_STATEMENT
*Statement
,
399 IN EFI_HII_HANDLE Handle
412 OUT EFI_INPUT_KEY
*Key
436 IN FORM_BROWSER_FORMSET
*FormSet
,
441 FORM_BROWSER_STATEMENT
*
443 IN FORM_BROWSER_FORMSET
*FormSet
,
444 IN FORM_BROWSER_FORM
*Form
,
451 IN FORM_BROWSER_FORM
*Form
,
458 IN EFI_HII_VALUE
*Value
464 IN EFI_HII_VALUE
*Value1
,
465 IN EFI_HII_VALUE
*Value2
,
466 IN EFI_HII_HANDLE HiiHandle OPTIONAL
472 IN FORM_BROWSER_FORMSET
*FormSet
,
473 IN FORM_BROWSER_FORM
*Form
,
474 IN OUT FORM_EXPRESSION
*Expression