summaryrefslogtreecommitdiff
path: root/EdkModulePkg/Universal/UserInterface/SetupBrowser/Dxe/Ui.h
diff options
context:
space:
mode:
Diffstat (limited to 'EdkModulePkg/Universal/UserInterface/SetupBrowser/Dxe/Ui.h')
-rw-r--r--EdkModulePkg/Universal/UserInterface/SetupBrowser/Dxe/Ui.h435
1 files changed, 435 insertions, 0 deletions
diff --git a/EdkModulePkg/Universal/UserInterface/SetupBrowser/Dxe/Ui.h b/EdkModulePkg/Universal/UserInterface/SetupBrowser/Dxe/Ui.h
new file mode 100644
index 0000000..522f4ce
--- /dev/null
+++ b/EdkModulePkg/Universal/UserInterface/SetupBrowser/Dxe/Ui.h
@@ -0,0 +1,435 @@
+/*++
+
+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.
+
+Module Name:
+
+ Ui.h
+
+Abstract:
+
+ Head file UI
+
+Revision History
+
+--*/
+
+#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