]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/SetupBrowserDxe/Setup.h
Update SetupBrowser to support call to SendForm() by specify a formset class GUID...
[mirror_edk2.git] / MdeModulePkg / Universal / SetupBrowserDxe / Setup.h
index 91b5aaee40e6334b8d281396ac2d25abd3aa984d..d375b2155136dbe5493293be7afeabb661792180 100644 (file)
@@ -71,9 +71,8 @@ extern UINT8  SetupBrowserStrings[];
 // Definition for function key setting\r
 //\r
 #define NONE_FUNCTION_KEY_SETTING     0\r
-#define DEFAULT_FUNCTION_KEY_SETTING  (FUNCTION_ONE | FUNCTION_NINE | FUNCTION_TEN)\r
+#define DEFAULT_FUNCTION_KEY_SETTING  (FUNCTION_NINE | FUNCTION_TEN)\r
 \r
-#define FUNCTION_ONE                  (1 << 0)\r
 #define FUNCTION_NINE                 (1 << 2)\r
 #define FUNCTION_TEN                  (1 << 3)\r
 \r
@@ -346,6 +345,7 @@ typedef struct {
 \r
   EFI_HII_VALUE         HiiValue;         // Edit copy for checkbox, numberic, oneof\r
   UINT8                 *BufferValue;     // Edit copy for string, password, orderedlist\r
+  UINT8                 ValueType;        // Data type for orderedlist value array\r
 \r
   //\r
   // OpCode specific members\r
@@ -443,6 +443,64 @@ typedef struct {
   LIST_ENTRY                      FormListHead;         // Form list (FORM_BROWSER_FORM)\r
 } FORM_BROWSER_FORMSET;\r
 \r
+#define BROWSER_CONTEXT_SIGNATURE  SIGNATURE_32 ('B', 'C', 'T', 'X')\r
+\r
+typedef struct {\r
+  UINTN                 Signature;\r
+  LIST_ENTRY            Link;\r
+\r
+  //\r
+  // Globals defined in Setup.c\r
+  //\r
+  BANNER_DATA           *BannerData;\r
+  UINTN                 ClassOfVfr;\r
+  UINTN                 FunctionKeySetting;\r
+  BOOLEAN               ResetRequired;\r
+  BOOLEAN               NvUpdateRequired;\r
+  UINT16                Direction;\r
+  EFI_SCREEN_DESCRIPTOR ScreenDimensions;\r
+  CHAR16                *FunctionNineString;\r
+  CHAR16                *FunctionTenString;\r
+  CHAR16                *EnterString;\r
+  CHAR16                *EnterCommitString;\r
+  CHAR16                *EnterEscapeString;\r
+  CHAR16                *EscapeString;\r
+  CHAR16                *SaveFailed;\r
+  CHAR16                *MoveHighlight;\r
+  CHAR16                *MakeSelection;\r
+  CHAR16                *DecNumericInput;\r
+  CHAR16                *HexNumericInput;\r
+  CHAR16                *ToggleCheckBox;\r
+  CHAR16                *PromptForData;\r
+  CHAR16                *PromptForPassword;\r
+  CHAR16                *PromptForNewPassword;\r
+  CHAR16                *ConfirmPassword;\r
+  CHAR16                *ConfirmError;\r
+  CHAR16                *PassowordInvalid;\r
+  CHAR16                *PressEnter;\r
+  CHAR16                *EmptyString;\r
+  CHAR16                *AreYouSure;\r
+  CHAR16                *YesResponse;\r
+  CHAR16                *NoResponse;\r
+  CHAR16                *MiniString;\r
+  CHAR16                *PlusString;\r
+  CHAR16                *MinusString;\r
+  CHAR16                *AdjustNumber;\r
+  CHAR16                *SaveChanges;\r
+  CHAR16                *OptionMismatch;\r
+  CHAR16                PromptBlockWidth;\r
+  CHAR16                OptionBlockWidth;\r
+  CHAR16                HelpBlockWidth;\r
+  FORM_BROWSER_FORMSET  *OldFormSet;\r
+\r
+  //\r
+  // Globals defined in Ui.c\r
+  //\r
+  LIST_ENTRY           MenuOption;\r
+  VOID                 *MenuRefreshHead;\r
+} BROWSER_CONTEXT;\r
+\r
+#define BROWSER_CONTEXT_FROM_LINK(a)  CR (a, BROWSER_CONTEXT, Link, BROWSER_CONTEXT_SIGNATURE)\r
 \r
 extern EFI_HII_DATABASE_PROTOCOL         *mHiiDatabase;\r
 extern EFI_HII_STRING_PROTOCOL           *mHiiString;\r
@@ -457,15 +515,12 @@ extern BOOLEAN               gNvUpdateRequired;
 extern EFI_HII_HANDLE        gHiiHandle;\r
 extern UINT16                gDirection;\r
 extern EFI_SCREEN_DESCRIPTOR gScreenDimensions;\r
-extern BOOLEAN               gUpArrow;\r
-extern BOOLEAN               gDownArrow;\r
 \r
 extern FORM_BROWSER_FORMSET  *gOldFormSet;\r
 \r
 //\r
 // Browser Global Strings\r
 //\r
-extern CHAR16            *gFunctionOneString;\r
 extern CHAR16            *gFunctionNineString;\r
 extern CHAR16            *gFunctionTenString;\r
 extern CHAR16            *gEnterString;\r
@@ -977,6 +1032,26 @@ GetIfrBinaryData (
   OUT UINT8            **BinaryData\r
   );\r
 \r
+/**\r
+  Save globals used by previous call to SendForm(). SendForm() may be called from \r
+  HiiConfigAccess.Callback(), this will cause SendForm() be reentried.\r
+  So, save globals of previous call to SendForm() and restore them upon exit.\r
+\r
+**/\r
+VOID\r
+SaveBrowserContext (\r
+  VOID\r
+  );\r
+\r
+/**\r
+  Restore globals used by previous call to SendForm().\r
+\r
+**/\r
+VOID\r
+RestoreBrowserContext (\r
+  VOID\r
+  );\r
+\r
 /**\r
   This is the routine which an external caller uses to direct the browser\r
   where to obtain it's information.\r