| /**@file | |
| Copyright (c) 2006, Intel Corporation | |
| All rights reserved. This program and the accompanying materials | |
| are licensed and made available under the terms and conditions of the BSD License | |
| which accompanies this distribution. The full text of the license may be found at | |
| http://opensource.org/licenses/bsd-license.php | |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. | |
| **/ | |
| #ifndef _UI_H | |
| #define _UI_H | |
| // | |
| // Globals | |
| // | |
| #define REGULAR_NUMERIC 0 | |
| #define TIME_NUMERIC 1 | |
| #define DATE_NUMERIC 2 | |
| typedef enum { | |
| UiNoOperation, | |
| UiDefault, | |
| UiSelect, | |
| UiUp, | |
| UiDown, | |
| UiLeft, | |
| UiRight, | |
| UiReset, | |
| UiSave, | |
| UiPrevious, | |
| UiPageUp, | |
| UiPageDown, | |
| UiMaxOperation | |
| } UI_SCREEN_OPERATION; | |
| typedef enum { | |
| CfInitialization, | |
| CfCheckSelection, | |
| CfRepaint, | |
| CfRefreshHighLight, | |
| CfUpdateHelpString, | |
| CfPrepareToReadKey, | |
| CfReadKey, | |
| CfScreenOperation, | |
| CfUiPrevious, | |
| CfUiSelect, | |
| CfUiReset, | |
| CfUiLeft, | |
| CfUiRight, | |
| CfUiUp, | |
| CfUiPageUp, | |
| CfUiPageDown, | |
| CfUiDown, | |
| CfUiSave, | |
| CfUiDefault, | |
| CfUiNoOperation, | |
| CfExit, | |
| CfMaxControlFlag | |
| } UI_CONTROL_FLAG; | |
| #define UI_MENU_OPTION_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'm') | |
| #define UI_MENU_LIST_SIGNATURE EFI_SIGNATURE_32 ('u', 'i', 'm', 'l') | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY Link; | |
| UINTN Row; | |
| UINTN Col; | |
| UINTN OptCol; | |
| CHAR16 *Description; | |
| UINTN Skip; | |
| UINTN IfrNumber; | |
| VOID *FormBinary; | |
| EFI_HII_HANDLE Handle; | |
| EFI_TAG *Tags; | |
| UINTN TagIndex; | |
| EFI_TAG *ThisTag; | |
| UINT16 FormId; | |
| BOOLEAN Previous; | |
| UINT16 EntryNumber; | |
| UINT16 Consistency; | |
| BOOLEAN GrayOut; | |
| } UI_MENU_OPTION; | |
| typedef struct { | |
| UINTN Signature; | |
| LIST_ENTRY MenuLink; | |
| UI_MENU_OPTION Selection; | |
| UINTN FormerEntryNumber; | |
| } UI_MENU_LIST; | |
| typedef struct _MENU_REFRESH_ENTRY { | |
| struct _MENU_REFRESH_ENTRY *Next; | |
| EFI_FILE_FORM_TAGS *FileFormTagsHead; | |
| UINTN CurrentColumn; | |
| UINTN CurrentRow; | |
| UINTN CurrentAttribute; | |
| UI_MENU_OPTION *MenuOption; // Describes the entry needing an update | |
| } MENU_REFRESH_ENTRY; | |
| typedef struct { | |
| UINT16 ScanCode; | |
| UI_SCREEN_OPERATION ScreenOperation; | |
| } SCAN_CODE_TO_SCREEN_OPERATION; | |
| typedef struct { | |
| UI_SCREEN_OPERATION ScreenOperation; | |
| UI_CONTROL_FLAG ControlFlag; | |
| } SCREEN_OPERATION_T0_CONTROL_FLAG; | |
| LIST_ENTRY Menu; | |
| LIST_ENTRY gMenuList; | |
| MENU_REFRESH_ENTRY *gMenuRefreshHead; | |
| INTN gEntryNumber; | |
| BOOLEAN gLastOpr; | |
| // | |
| // Global Functions | |
| // | |
| VOID | |
| UiInitMenu ( | |
| VOID | |
| ) | |
| ; | |
| VOID | |
| UiInitMenuList ( | |
| VOID | |
| ) | |
| ; | |
| VOID | |
| UiRemoveMenuListEntry ( | |
| IN UI_MENU_OPTION *Selection, | |
| OUT UI_MENU_OPTION **PreviousSelection | |
| ) | |
| ; | |
| VOID | |
| UiFreeMenuList ( | |
| VOID | |
| ) | |
| ; | |
| VOID | |
| UiAddMenuListEntry ( | |
| IN UI_MENU_OPTION *Selection | |
| ) | |
| ; | |
| VOID | |
| UiFreeMenu ( | |
| VOID | |
| ) | |
| ; | |
| VOID | |
| UiAddMenuOption ( | |
| IN CHAR16 *String, | |
| IN EFI_HII_HANDLE Handle, | |
| IN EFI_TAG *Tag, | |
| IN VOID *FormBinary, | |
| IN UINTN IfrNumber | |
| ) | |
| ; | |
| VOID | |
| UiAddSubMenuOption ( | |
| IN CHAR16 *String, | |
| IN EFI_HII_HANDLE Handle, | |
| IN EFI_TAG *Tag, | |
| IN UINTN TagIndex, | |
| IN UINT16 FormId, | |
| IN UINT16 MenuItemCount | |
| ) | |
| ; | |
| UI_MENU_OPTION * | |
| UiDisplayMenu ( | |
| IN BOOLEAN SubMenu, | |
| IN EFI_FILE_FORM_TAGS *FileFormTagsHead, | |
| OUT EFI_IFR_DATA_ARRAY *PageData | |
| ) | |
| ; | |
| VOID | |
| InitPage ( | |
| VOID | |
| ) | |
| ; | |
| UI_MENU_OPTION * | |
| SetupBrowser ( | |
| IN UI_MENU_OPTION *Selection, | |
| IN BOOLEAN Callback, | |
| IN EFI_FILE_FORM_TAGS *FileFormTagsHead, | |
| IN UINT8 *CallbackData | |
| ) | |
| ; | |
| VOID | |
| SetUnicodeMem ( | |
| IN VOID *Buffer, | |
| IN UINTN Size, | |
| IN CHAR16 Value | |
| ) | |
| ; | |
| EFI_STATUS | |
| UiWaitForSingleEvent ( | |
| IN EFI_EVENT Event, | |
| IN UINT64 Timeout OPTIONAL | |
| ) | |
| ; | |
| VOID | |
| CreatePopUp ( | |
| IN UINTN ScreenWidth, | |
| IN UINTN NumberOfLines, | |
| IN CHAR16 *ArrayOfStrings, | |
| ... | |
| ) | |
| ; | |
| EFI_STATUS | |
| ReadString ( | |
| IN UI_MENU_OPTION *MenuOption, | |
| OUT CHAR16 *StringPtr | |
| ) | |
| ; | |
| EFI_STATUS | |
| ReadPassword ( | |
| IN UI_MENU_OPTION *MenuOption, | |
| IN BOOLEAN PromptForPassword, | |
| IN EFI_TAG *Tag, | |
| IN EFI_IFR_DATA_ARRAY *PageData, | |
| IN BOOLEAN SecondEntry, | |
| IN EFI_FILE_FORM_TAGS *FileFormTags, | |
| OUT CHAR16 *StringPtr | |
| ) | |
| ; | |
| VOID | |
| EncodePassword ( | |
| IN CHAR16 *Password, | |
| IN UINT8 MaxSize | |
| ) | |
| ; | |
| EFI_STATUS | |
| GetSelectionInputPopUp ( | |
| IN UI_MENU_OPTION *MenuOption, | |
| IN EFI_TAG *Tag, | |
| IN UINTN ValueCount, | |
| OUT UINT16 *Value, | |
| OUT UINT16 *KeyValue | |
| ) | |
| ; | |
| EFI_STATUS | |
| GetSelectionInputLeftRight ( | |
| IN UI_MENU_OPTION *MenuOption, | |
| IN EFI_TAG *Tag, | |
| IN UINTN ValueCount, | |
| OUT UINT16 *Value | |
| ) | |
| ; | |
| EFI_STATUS | |
| GetNumericInput ( | |
| IN UI_MENU_OPTION *MenuOption, | |
| IN EFI_FILE_FORM_TAGS *FileFormTagsHead, | |
| IN BOOLEAN ManualInput, | |
| IN EFI_TAG *Tag, | |
| IN UINTN NumericType, | |
| OUT UINT16 *Value | |
| ) | |
| ; | |
| VOID | |
| UpdateStatusBar ( | |
| IN UINTN MessageType, | |
| IN UINT8 Flags, | |
| IN BOOLEAN State | |
| ) | |
| ; | |
| EFI_STATUS | |
| ProcessOptions ( | |
| IN UI_MENU_OPTION *MenuOption, | |
| IN BOOLEAN Selected, | |
| IN EFI_FILE_FORM_TAGS *FileFormTagsHead, | |
| IN EFI_IFR_DATA_ARRAY *PageData, | |
| OUT CHAR16 **OptionString | |
| ) | |
| ; | |
| VOID | |
| ProcessHelpString ( | |
| IN CHAR16 *StringPtr, | |
| OUT CHAR16 **FormattedString, | |
| IN UINTN RowCount | |
| ) | |
| ; | |
| VOID | |
| UpdateKeyHelp ( | |
| IN UI_MENU_OPTION *Selection, | |
| IN BOOLEAN Selected | |
| ) | |
| ; | |
| BOOLEAN | |
| ValueIsNotValid ( | |
| IN BOOLEAN Complex, | |
| IN UINT16 Value, | |
| IN EFI_TAG *Tag, | |
| IN EFI_FILE_FORM_TAGS *FileFormTags, | |
| IN STRING_REF *PopUp | |
| ) | |
| ; | |
| VOID | |
| FreeData ( | |
| IN EFI_FILE_FORM_TAGS *FileFormTagsHead, | |
| IN CHAR16 *FormattedString, | |
| IN CHAR16 *OptionString | |
| ) | |
| ; | |
| VOID | |
| ClearLines ( | |
| UINTN LeftColumn, | |
| UINTN RightColumn, | |
| UINTN TopRow, | |
| UINTN BottomRow, | |
| UINTN TextAttribute | |
| ) | |
| ; | |
| UINTN | |
| GetStringWidth ( | |
| CHAR16 *String | |
| ) | |
| ; | |
| UINT16 | |
| GetLineByWidth ( | |
| IN CHAR16 *InputString, | |
| IN UINT16 LineWidth, | |
| IN OUT UINTN *Index, | |
| OUT CHAR16 **OutputString | |
| ) | |
| ; | |
| UINT16 | |
| GetWidth ( | |
| IN EFI_TAG *Tag, | |
| IN EFI_HII_HANDLE Handle | |
| ) | |
| ; | |
| VOID | |
| NewStrCat ( | |
| CHAR16 *Destination, | |
| CHAR16 *Source | |
| ) | |
| ; | |
| VOID | |
| IfrToFormTag ( | |
| IN UINT8 OpCode, | |
| IN EFI_TAG *TargetTag, | |
| IN VOID *FormData, | |
| EFI_VARIABLE_DEFINITION *VariableDefinitionsHead | |
| ) | |
| ; | |
| EFI_STATUS | |
| ExtractNvValue ( | |
| IN EFI_FILE_FORM_TAGS *FileFormTags, | |
| IN UINT16 VariableId, | |
| IN UINT16 VariableSize, | |
| IN UINT16 OffsetValue, | |
| OUT VOID **Buffer | |
| ) | |
| ; | |
| EFI_STATUS | |
| ExtractRequestedNvMap ( | |
| IN EFI_FILE_FORM_TAGS *FileFormTags, | |
| IN UINT16 VariableId, | |
| OUT EFI_VARIABLE_DEFINITION **VariableDefinition | |
| ) | |
| ; | |
| BOOLEAN | |
| ValueIsScroll ( | |
| IN BOOLEAN Direction, | |
| IN LIST_ENTRY *CurrentPos | |
| ) | |
| ; | |
| UINTN | |
| AdjustDateAndTimePosition ( | |
| IN BOOLEAN DirectionUp, | |
| IN LIST_ENTRY **CurrentPosition | |
| ) | |
| ; | |
| EFI_STATUS | |
| WaitForKeyStroke ( | |
| OUT EFI_INPUT_KEY *Key | |
| ) | |
| ; | |
| #endif // _UI_H |