]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Application/UiApp/FrontPageCustomizedUiSupport.c
MdeModulePkg/UiApp: Retrieve the value of language menu
[mirror_edk2.git] / MdeModulePkg / Application / UiApp / FrontPageCustomizedUiSupport.c
index dc5d1c6c409bd5ce0905fe6c3f1fdb7f54389b09..da0cff7556c84f0e9e2a164637fb049f1229caa3 100644 (file)
@@ -56,6 +56,7 @@ CHAR8                        *gLanguageString;
 EFI_STRING_ID                *gLanguageToken;\r
 UI_HII_DRIVER_INSTANCE       *gHiiDriverList;\r
 extern EFI_HII_HANDLE        gStringPackHandle;\r
+UINT8                        gCurrentLanguageIndex;\r
 \r
 \r
 /**\r
@@ -130,6 +131,7 @@ LanguageChangeHandler (
     GetNextLanguage (&LangCode, Lang);\r
 \r
     if (Index == Value->u8) {\r
+      gCurrentLanguageIndex = Value->u8;\r
       break;\r
     }\r
 \r
@@ -190,6 +192,16 @@ UiSupportLibCallbackHandler (
     return FALSE;\r
   }\r
 \r
+  if (Action == EFI_BROWSER_ACTION_RETRIEVE) {\r
+    if (QuestionId == FRONT_PAGE_KEY_LANGUAGE) {\r
+      Value->u8 = gCurrentLanguageIndex;\r
+      *Status = EFI_SUCCESS;\r
+    } else {\r
+      *Status = EFI_UNSUPPORTED;\r
+    }\r
+    return TRUE;\r
+  }\r
+\r
   if (Action != EFI_BROWSER_ACTION_CHANGED) {\r
     //\r
     // Do nothing for other UEFI Action. Only do call back when data is changed.\r
@@ -347,6 +359,7 @@ UiCreateLanguageMenu (
         EFI_IFR_NUMERIC_SIZE_1,\r
         (UINT8) OptionCount\r
         );\r
+      gCurrentLanguageIndex = (UINT8) OptionCount;\r
     } else {\r
       HiiCreateOneOfOptionOpCode (\r
         OptionsOpCodeHandle,\r