UINT8 DigitUint8;\r
UI_MENU_LIST *CurrentMenu;\r
UI_MENU_LIST *MenuList;\r
+ FORM_BROWSER_FORM *RefForm;\r
\r
CopyMem (&LocalScreen, &gScreenDimensions, sizeof (EFI_SCREEN_DESCRIPTOR));\r
\r
NextMenuOption = NULL;\r
PreviousMenuOption = NULL;\r
SavedMenuOption = NULL;\r
+ RefForm = NULL;\r
\r
ZeroMem (&Key, sizeof (EFI_INPUT_KEY));\r
\r
//\r
// Goto another Hii Package list\r
//\r
- ControlFlag = CfCheckSelection;\r
Selection->Action = UI_ACTION_REFRESH_FORMSET;\r
\r
StringPtr = GetToken (Statement->RefDevicePath, Selection->FormSet->HiiHandle);\r
//\r
// Goto another Formset, check for uncommitted data\r
//\r
- ControlFlag = CfCheckSelection;\r
Selection->Action = UI_ACTION_REFRESH_FORMSET;\r
\r
CopyMem (&Selection->FormSetGuid, &Statement->RefFormSetId, sizeof (EFI_GUID));\r
Selection->FormId = Statement->RefFormId;\r
Selection->QuestionId = Statement->RefQuestionId;\r
} else if (Statement->RefFormId != 0) {\r
+ //\r
+ // Check Ref From is suppressed.\r
+ //\r
+ RefForm = IdToForm (Selection->FormSet, Statement->RefFormId);\r
+\r
+ if (RefForm->SuppressExpression != NULL) {\r
+ Status = EvaluateExpression (Selection->FormSet, RefForm, RefForm->SuppressExpression);\r
+ if (EFI_ERROR (Status)) {\r
+ return Status;\r
+ }\r
+\r
+ if (RefForm->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
+ Repaint = TRUE;\r
+ break;\r
+ }\r
+ }\r
+\r
//\r
// Goto another form inside this formset,\r
//\r
Selection->Action = UI_ACTION_REFRESH_FORM;\r
}\r
\r
- if (OptionString != NULL) {\r
- FreePool (OptionString);\r
- }\r
+ if (OptionString != NULL) {\r
+ FreePool (OptionString);\r
+ }\r
break;\r
}\r
break;\r