]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Move the check refresh attribute logical out of the option string check logical.
authorydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 21 Jun 2011 02:58:45 +0000 (02:58 +0000)
committerydong10 <ydong10@6f19259b-4bc3-4df7-8a09-765794883524>
Tue, 21 Jun 2011 02:58:45 +0000 (02:58 +0000)
Signed-off-by: ydong10
Reviewed-by: lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11871 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Universal/SetupBrowserDxe/Ui.c

index de051709c0e300e70f8c2a3626dcb5a25b33a229..1cd8a1a795acc0d080c05a9b02ddeddfd34fd768 100644 (file)
@@ -1910,6 +1910,70 @@ UiDisplayMenu (
           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
@@ -1938,83 +2002,6 @@ UiDisplayMenu (
               OptionString[Count] = CHAR_NULL;\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
-              }\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
-                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
-                gMenuRefreshHead                    = MenuRefreshEntry;\r
-              } else {\r
-                //\r
-                // Advance to the last entry\r
-                //\r
-                for (MenuRefreshEntry = gMenuRefreshHead;\r
-                     MenuRefreshEntry->Next != NULL;\r
-                     MenuRefreshEntry = MenuRefreshEntry->Next\r
-                    )\r
-                  ;\r
-                MenuRefreshEntry->Next = AllocateZeroPool (sizeof (MENU_REFRESH_ENTRY));\r
-                ASSERT (MenuRefreshEntry->Next != NULL);\r
-                MenuRefreshEntry                    = MenuRefreshEntry->Next;\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
             Width       = (UINT16) gOptionBlockWidth;\r
             OriginalRow = Row;\r
 \r