From 479e19a6d5670cfbb4406ffa00f5f094a18fd03c Mon Sep 17 00:00:00 2001 From: li-elvin Date: Tue, 23 Feb 2010 09:40:43 +0000 Subject: [PATCH] Driver health entry in device manager page is not totally hidden, the original code just change string to empty string, if cursor is at empty string, there is no focus at all. Dynamically create subtitle and action entry of driver health when driver health protocol is installed. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10047 6f19259b-4bc3-4df7-8a09-765794883524 --- .../BdsDxe/DeviceMngr/DeviceManager.c | 21 ++++++++++++++----- .../BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr | 12 +---------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c index 9e4fff6d33..b545b6c849 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManager.c @@ -464,13 +464,24 @@ CallDeviceManager ( &NumHandles, &DriverHealthHandles ); + // - // If there are no drivers installed driver health protocol + // If there are no drivers installed driver health protocol, do not create driver health entry in UI // - if (NumHandles == 0) { - HiiSetString (HiiHandle, STRING_TOKEN (STR_DM_DRIVER_HEALTH_TITLE), GetStringById (STRING_TOKEN (STR_EMPTY_STRING)), NULL); - HiiSetString (HiiHandle, STRING_TOKEN (STR_DRIVER_HEALTH_ALL_HEALTHY), GetStringById (STRING_TOKEN (STR_EMPTY_STRING)), NULL); - } else { + if (NumHandles != 0) { + // + // If driver health protocol is installed, create Driver Health subtitle and entry + // + HiiCreateSubTitleOpCode (StartOpCodeHandle, STRING_TOKEN (STR_DM_DRIVER_HEALTH_TITLE), 0, 0, 0); + HiiCreateActionOpCode ( + StartOpCodeHandle, // Container for dynamic created opcodes + DEVICE_MANAGER_KEY_DRIVER_HEALTH, // Question ID + STRING_TOKEN(STR_DRIVER_HEALTH_ALL_HEALTHY), // Prompt text + STRING_TOKEN(STR_DRIVER_HEALTH_STATUS_HELP), // Help text + EFI_IFR_FLAG_CALLBACK, // Question flag + 0 // Action String ID + ); + // // Check All Driver health status // diff --git a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr index c08ad26214..41a25e4a39 100644 --- a/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr +++ b/IntelFrameworkModulePkg/Universal/BdsDxe/DeviceMngr/DeviceManagerVfr.Vfr @@ -2,7 +2,7 @@ // // Device Manager formset. // -// Copyright (c) 2004 - 2009, Intel Corporation.
+// Copyright (c) 2004 - 2010, Intel Corporation.
// All rights reserved. This program and the accompanying materials // are licensed and made available under the terms and conditions of the BSD License // which accompanies this distribution. The full text of the license may be found at @@ -66,16 +66,6 @@ formset label LABEL_DEVICES_LIST; label LABEL_END; - - subtitle text = STRING_TOKEN(STR_LAST_STRING); - subtitle text = STRING_TOKEN(STR_DM_DRIVER_HEALTH_TITLE); - - text - help = STRING_TOKEN(STR_DRIVER_HEALTH_STATUS_HELP), - text = STRING_TOKEN(STR_DRIVER_HEALTH_ALL_HEALTHY), - text = STRING_TOKEN(STR_LAST_STRING), - flags = INTERACTIVE, - key = DEVICE_MANAGER_KEY_DRIVER_HEALTH; subtitle text = STRING_TOKEN(STR_EMPTY_STRING);