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