/** Clear retangle with specified text attribute. @param LeftColumn Left column of retangle. @param RightColumn Right column of retangle. @param TopRow Start row of retangle. @param BottomRow End row of retangle. @param TextAttribute The character foreground and background. **/ VOID EFIAPI ClearLines ( IN UINTN LeftColumn, IN UINTN RightColumn, IN UINTN TopRow, IN UINTN BottomRow, IN UINTN TextAttribute ) { CHAR16 *Buffer; UINTN Row; // // For now, allocate an arbitrarily long buffer // Buffer = AllocateZeroPool (0x10000); ASSERT (Buffer != NULL); // // Set foreground and background as defined // gST->ConOut->SetAttribute (gST->ConOut, TextAttribute); // // Much faster to buffer the long string instead of print it a character at a time // LibSetUnicodeMem (Buffer, RightColumn - LeftColumn, L' '); // // Clear the desired area with the appropriate foreground/background // for (Row = TopRow; Row <= BottomRow; Row++) { PrintStringAt (LeftColumn, Row, Buffer); } gST->ConOut->SetCursorPosition (gST->ConOut, LeftColumn, TopRow); FreePool (Buffer); }
/** Initialize the HII String Token to the correct values. **/ VOID InitializeLibStrings ( VOID ) { mLibUnknownString = L"!"; gEnterString = LibGetToken (STRING_TOKEN (ENTER_STRING), mCDLStringPackHandle); gEnterCommitString = LibGetToken (STRING_TOKEN (ENTER_COMMIT_STRING), mCDLStringPackHandle); gEnterEscapeString = LibGetToken (STRING_TOKEN (ENTER_ESCAPE_STRING), mCDLStringPackHandle); gEscapeString = LibGetToken (STRING_TOKEN (ESCAPE_STRING), mCDLStringPackHandle); gMoveHighlight = LibGetToken (STRING_TOKEN (MOVE_HIGHLIGHT), mCDLStringPackHandle); gDecNumericInput = LibGetToken (STRING_TOKEN (DEC_NUMERIC_INPUT), mCDLStringPackHandle); gHexNumericInput = LibGetToken (STRING_TOKEN (HEX_NUMERIC_INPUT), mCDLStringPackHandle); gToggleCheckBox = LibGetToken (STRING_TOKEN (TOGGLE_CHECK_BOX), mCDLStringPackHandle); gAreYouSure = LibGetToken (STRING_TOKEN (ARE_YOU_SURE), mCDLStringPackHandle); gYesResponse = LibGetToken (STRING_TOKEN (ARE_YOU_SURE_YES), mCDLStringPackHandle); gNoResponse = LibGetToken (STRING_TOKEN (ARE_YOU_SURE_NO), mCDLStringPackHandle); gPlusString = LibGetToken (STRING_TOKEN (PLUS_STRING), mCDLStringPackHandle); gMinusString = LibGetToken (STRING_TOKEN (MINUS_STRING), mCDLStringPackHandle); gAdjustNumber = LibGetToken (STRING_TOKEN (ADJUST_NUMBER), mCDLStringPackHandle); gSaveChanges = LibGetToken (STRING_TOKEN (SAVE_CHANGES), mCDLStringPackHandle); gLibEmptyString = LibGetToken (STRING_TOKEN (EMPTY_STRING), mCDLStringPackHandle); gNvUpdateMessage = LibGetToken (STRING_TOKEN (NV_UPDATE_MESSAGE), mCDLStringPackHandle); gInputErrorMessage = LibGetToken (STRING_TOKEN (INPUT_ERROR_MESSAGE), mCDLStringPackHandle); // // SpaceBuffer; // mSpaceBuffer = AllocatePool ((SPACE_BUFFER_SIZE + 1) * sizeof (CHAR16)); ASSERT (mSpaceBuffer != NULL); LibSetUnicodeMem (mSpaceBuffer, SPACE_BUFFER_SIZE, L' '); mSpaceBuffer[SPACE_BUFFER_SIZE] = L'\0'; }