Temp = 0;\r
Row = OriginalRow;\r
\r
- //\r
- // If Question has refresh guid, register the op-code.\r
- //\r
- if (!CompareGuid (&Statement->RefreshGuid, &gZeroGuid)) {\r
- if (gMenuEventGuidRefreshHead == NULL) {\r
- MenuUpdateEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
- gMenuEventGuidRefreshHead = MenuUpdateEntry;\r
- } else {\r
- MenuUpdateEntry = gMenuEventGuidRefreshHead;\r
- while (MenuUpdateEntry->Next != NULL) {\r
- MenuUpdateEntry = MenuUpdateEntry->Next; \r
- }\r
- MenuUpdateEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
- MenuUpdateEntry = MenuUpdateEntry->Next; \r
- }\r
- ASSERT (MenuUpdateEntry != NULL);\r
- Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, RefreshQuestionNotify, MenuUpdateEntry, &Statement->RefreshGuid, &MenuUpdateEntry->Event);\r
- ASSERT (!EFI_ERROR (Status));\r
- MenuUpdateEntry->MenuOption = MenuOption;\r
- MenuUpdateEntry->Selection = Selection;\r
- MenuUpdateEntry->CurrentColumn = MenuOption->OptCol;\r
- MenuUpdateEntry->CurrentRow = MenuOption->Row;\r
- if (MenuOption->GrayOut) {\r
- MenuUpdateEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
- } else {\r
- MenuUpdateEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
- }\r
- }\r
- \r
- //\r
- // If Question request refresh, register the op-code\r
- //\r
- if (Statement->RefreshInterval != 0) {\r
- //\r
- // Menu will be refreshed at minimal interval of all Questions\r
- // which have refresh request\r
- //\r
- if (MinRefreshInterval == 0 || Statement->RefreshInterval < MinRefreshInterval) {\r
- MinRefreshInterval = Statement->RefreshInterval;\r
- }\r
- \r
- if (gMenuRefreshHead == NULL) {\r
- MenuRefreshEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
- gMenuRefreshHead = MenuRefreshEntry;\r
- } else {\r
- MenuRefreshEntry = gMenuRefreshHead;\r
- while (MenuRefreshEntry->Next != NULL) {\r
- MenuRefreshEntry = MenuRefreshEntry->Next; \r
- }\r
- MenuRefreshEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
- MenuRefreshEntry = MenuRefreshEntry->Next;\r
- }\r
- ASSERT (MenuRefreshEntry != NULL); \r
- MenuRefreshEntry->MenuOption = MenuOption;\r
- MenuRefreshEntry->Selection = Selection;\r
- MenuRefreshEntry->CurrentColumn = MenuOption->OptCol;\r
- MenuRefreshEntry->CurrentRow = MenuOption->Row;\r
- if (MenuOption->GrayOut) {\r
- MenuRefreshEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
- } else { \r
- MenuRefreshEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
- }\r
- }\r
-\r
Status = ProcessOptions (Selection, MenuOption, FALSE, &OptionString);\r
if (EFI_ERROR (Status)) {\r
//\r
\r
FreePool (OptionString);\r
}\r
+\r
+ //\r
+ // If Question has refresh guid, register the op-code.\r
+ //\r
+ if (!CompareGuid (&Statement->RefreshGuid, &gZeroGuid)) {\r
+ if (gMenuEventGuidRefreshHead == NULL) {\r
+ MenuUpdateEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+ gMenuEventGuidRefreshHead = MenuUpdateEntry;\r
+ } else {\r
+ MenuUpdateEntry = gMenuEventGuidRefreshHead;\r
+ while (MenuUpdateEntry->Next != NULL) {\r
+ MenuUpdateEntry = MenuUpdateEntry->Next; \r
+ }\r
+ MenuUpdateEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+ MenuUpdateEntry = MenuUpdateEntry->Next; \r
+ }\r
+ ASSERT (MenuUpdateEntry != NULL);\r
+ Status = gBS->CreateEventEx (EVT_NOTIFY_SIGNAL, TPL_NOTIFY, RefreshQuestionNotify, MenuUpdateEntry, &Statement->RefreshGuid, &MenuUpdateEntry->Event);\r
+ ASSERT (!EFI_ERROR (Status));\r
+ MenuUpdateEntry->MenuOption = MenuOption;\r
+ MenuUpdateEntry->Selection = Selection;\r
+ MenuUpdateEntry->CurrentColumn = MenuOption->OptCol;\r
+ MenuUpdateEntry->CurrentRow = MenuOption->Row;\r
+ if (MenuOption->GrayOut) {\r
+ MenuUpdateEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
+ } else {\r
+ MenuUpdateEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
+ }\r
+ }\r
+ \r
+ //\r
+ // If Question request refresh, register the op-code\r
+ //\r
+ if (Statement->RefreshInterval != 0) {\r
+ //\r
+ // Menu will be refreshed at minimal interval of all Questions\r
+ // which have refresh request\r
+ //\r
+ if (MinRefreshInterval == 0 || Statement->RefreshInterval < MinRefreshInterval) {\r
+ MinRefreshInterval = Statement->RefreshInterval;\r
+ }\r
+ \r
+ if (gMenuRefreshHead == NULL) {\r
+ MenuRefreshEntry = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+ gMenuRefreshHead = MenuRefreshEntry;\r
+ } else {\r
+ MenuRefreshEntry = gMenuRefreshHead;\r
+ while (MenuRefreshEntry->Next != NULL) {\r
+ MenuRefreshEntry = MenuRefreshEntry->Next; \r
+ }\r
+ MenuRefreshEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
+ MenuRefreshEntry = MenuRefreshEntry->Next;\r
+ }\r
+ ASSERT (MenuRefreshEntry != NULL); \r
+ MenuRefreshEntry->MenuOption = MenuOption;\r
+ MenuRefreshEntry->Selection = Selection;\r
+ MenuRefreshEntry->CurrentColumn = MenuOption->OptCol;\r
+ MenuRefreshEntry->CurrentRow = MenuOption->Row;\r
+ if (MenuOption->GrayOut) {\r
+ MenuRefreshEntry->CurrentAttribute = FIELD_TEXT_GRAYED | FIELD_BACKGROUND;\r
+ } else { \r
+ MenuRefreshEntry->CurrentAttribute = PcdGet8 (PcdBrowserFieldTextColor) | FIELD_BACKGROUND;\r
+ }\r
+ }\r
+ \r
//\r
// If this is a text op with secondary text information\r
//\r