gAdjustNumber = GetToken (STRING_TOKEN (ADJUST_NUMBER), gHiiHandle);\r
gSaveChanges = GetToken (STRING_TOKEN (SAVE_CHANGES), gHiiHandle);\r
gOptionMismatch = GetToken (STRING_TOKEN (OPTION_MISMATCH), gHiiHandle);\r
+ gFormSuppress = GetToken (STRING_TOKEN (FORM_SUPPRESSED), gHiiHandle);\r
return ;\r
}\r
\r
FreePool (gAdjustNumber);\r
FreePool (gSaveChanges);\r
FreePool (gOptionMismatch);\r
+ FreePool (gFormSuppress);\r
return ;\r
}\r
\r
FORM_BROWSER_STATEMENT *Statement;\r
EFI_HII_CONFIG_ACCESS_PROTOCOL *ConfigAccess;\r
FORM_BROWSER_FORMSET *FormSet;\r
+ EFI_INPUT_KEY Key;\r
\r
gMenuRefreshHead = NULL;\r
gResetRequired = FALSE;\r
//\r
// IFR is updated during callback, force to reparse the IFR binary\r
//\r
+ mHiiPackageListUpdated = FALSE;\r
Selection->Action = UI_ACTION_REFRESH_FORMSET;\r
goto Done;\r
}\r
return EFI_NOT_FOUND;\r
}\r
\r
+ //\r
+ // Check Form is suppressed.\r
+ //\r
+ if (Selection->Form->SuppressExpression != NULL) {\r
+ Status = EvaluateExpression (Selection->FormSet, Selection->Form, Selection->Form->SuppressExpression);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ if (Selection->Form->SuppressExpression->Result.Value.b) {\r
+ //\r
+ // Form is suppressed. \r
+ //\r
+ do {\r
+ CreateDialog (4, TRUE, 0, NULL, &Key, gEmptyString, gFormSuppress, gPressEnter, gEmptyString);\r
+ } while (Key.UnicodeChar != CHAR_CARRIAGE_RETURN);\r
+\r
+ return EFI_NOT_FOUND;\r
+ }\r
+ }\r
+ \r
//\r
// Load Questions' Value for display\r
//\r
//\r
// Force to reparse IFR binary of target Formset\r
//\r
+ mHiiPackageListUpdated = FALSE;\r
Selection->Action = UI_ACTION_REFRESH_FORMSET;\r
}\r
}\r