Index: reactos/base/setup/usetup/genlist.c =================================================================== --- reactos/base/setup/usetup/genlist.c (revision 72700) +++ reactos/base/setup/usetup/genlist.c (working copy) @@ -149,12 +149,15 @@ COORD coPos; DWORD Written; SHORT i; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); /* Draw upper left corner */ coPos.X = GenericList->Left; coPos.Y = GenericList->Top; + ch = (bBorder ? 0xDA : '+'); FillConsoleOutputCharacterA (StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -162,8 +165,9 @@ /* Draw upper edge */ coPos.X = GenericList->Left + 1; coPos.Y = GenericList->Top; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA (StdOutput, - 0xC4, // '-', + ch, GenericList->Right - GenericList->Left - 1, coPos, &Written); @@ -171,8 +175,9 @@ /* Draw upper right corner */ coPos.X = GenericList->Right; coPos.Y = GenericList->Top; + ch = (bBorder ? 0xBF : '+'); FillConsoleOutputCharacterA (StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); @@ -182,15 +187,17 @@ { coPos.X = GenericList->Left; coPos.Y = i; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA (StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); coPos.X = GenericList->Right; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA (StdOutput, - 0xB3, //'|', + ch, 1, coPos, &Written); @@ -199,8 +206,9 @@ /* Draw lower left corner */ coPos.X = GenericList->Left; coPos.Y = GenericList->Bottom; + ch = (bBorder ? 0xC0 : '+'); FillConsoleOutputCharacterA (StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -208,8 +216,9 @@ /* Draw lower edge */ coPos.X = GenericList->Left + 1; coPos.Y = GenericList->Bottom; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA (StdOutput, - 0xC4, // '-', + ch, GenericList->Right - GenericList->Left - 1, coPos, &Written); @@ -217,8 +226,9 @@ /* Draw lower right corner */ coPos.X = GenericList->Right; coPos.Y = GenericList->Bottom; + ch = (bBorder ? 0xD9 : '+'); FillConsoleOutputCharacterA (StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); @@ -300,6 +310,8 @@ { COORD coPos; DWORD Written; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); coPos.X = GenericList->Right + 1; coPos.Y = GenericList->Top; @@ -306,8 +318,9 @@ if (GenericList->FirstShown != GenericList->ListHead.Flink) { + ch = (bBorder ? 0x18 : 'A'); FillConsoleOutputCharacterA (StdOutput, - '\x18', + ch, 1, coPos, &Written); @@ -314,8 +327,9 @@ } else { + ch = ' '; FillConsoleOutputCharacterA (StdOutput, - ' ', + ch, 1, coPos, &Written); @@ -324,8 +338,9 @@ coPos.Y = GenericList->Bottom; if (GenericList->LastShown != GenericList->ListHead.Blink) { + ch = (bBorder ? 0x19 : 'V'); FillConsoleOutputCharacterA (StdOutput, - '\x19', + ch, 1, coPos, &Written); @@ -332,8 +347,9 @@ } else { + ch = ' '; FillConsoleOutputCharacterA (StdOutput, - ' ', + ch, 1, coPos, &Written); Index: reactos/base/setup/usetup/interface/consup.c =================================================================== --- reactos/base/setup/usetup/interface/consup.c (revision 72700) +++ reactos/base/setup/usetup/interface/consup.c (working copy) @@ -362,6 +362,7 @@ COORD coPos; DWORD Length; DWORD Written; + CHAR ch; coPos.X = x; coPos.Y = y; @@ -376,9 +377,10 @@ &Written); coPos.Y++; + ch = (IsBorderCharAvailable() ? 0xCD : '~'); FillConsoleOutputCharacterA( StdOutput, - 0xCD, + ch, Length, coPos, &Written); @@ -785,6 +787,11 @@ { CONSOLE_ClearStatusTextX(coPos.X, Length); } + else if (Flags & TEXT_STYLE_UNDERLINE) + { + CONSOLE_ClearTextXY(coPos.X, coPos.Y, Length); + CONSOLE_ClearTextXY(coPos.X, coPos.Y + 1, Length); + } else /* TEXT_TYPE_REGULAR (Default) */ { CONSOLE_ClearTextXY(coPos.X, coPos.Y, Length); Index: reactos/base/setup/usetup/interface/usetup.c =================================================================== --- reactos/base/setup/usetup/interface/usetup.c (revision 72700) +++ reactos/base/setup/usetup/interface/usetup.c (working copy) @@ -104,6 +104,19 @@ /* FUNCTIONS ****************************************************************/ +BOOL IsBorderCharAvailable(VOID) +{ + LANGID langid = (LANGID)(wcstol(SelectedLanguageId, NULL, 16) & 0xFFFF); + switch (langid) + { + case 0x0411: // Japanese + case 0x0418: // Romanian + return FALSE; + default: + return TRUE; + } +} + static VOID PrintString(char* fmt,...) { @@ -131,12 +144,15 @@ { COORD coPos; DWORD Written; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); /* draw upper left corner */ coPos.X = xLeft; coPos.Y = yTop; + ch = (bBorder ? 0xDA : '+'); // '+' FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -144,8 +160,9 @@ /* draw upper edge */ coPos.X = xLeft + 1; coPos.Y = yTop; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Width - 2, coPos, &Written); @@ -153,8 +170,9 @@ /* draw upper right corner */ coPos.X = xLeft + Width - 1; coPos.Y = yTop; + ch = (bBorder ? 0xBF : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); @@ -163,22 +181,25 @@ for (coPos.Y = yTop + 1; coPos.Y < yTop + Height - 1; coPos.Y++) { coPos.X = xLeft; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); coPos.X = xLeft + 1; + ch = ' '; FillConsoleOutputCharacterA(StdOutput, - ' ', + ch, Width - 2, coPos, &Written); coPos.X = xLeft + Width - 1; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); @@ -187,8 +208,9 @@ /* draw lower left corner */ coPos.X = xLeft; coPos.Y = yTop + Height - 1; + ch = (bBorder ? 0xC0 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -196,8 +218,9 @@ /* draw lower edge */ coPos.X = xLeft + 1; coPos.Y = yTop + Height - 1; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Width - 2, coPos, &Written); @@ -205,8 +228,9 @@ /* draw lower right corner */ coPos.X = xLeft + Width - 1; coPos.Y = yTop + Height - 1; + ch = (bBorder ? 0xD9 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); @@ -231,6 +255,8 @@ BOOLEAN LastLine; SHORT Width; SHORT Height; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); /* Count text lines and longest line */ MaxLength = 0; @@ -335,22 +361,25 @@ { coPos.Y = yTop + Height - 3; coPos.X = xLeft; + ch = (bBorder ? 0xC3 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xC3, // '+', + ch, 1, coPos, &Written); coPos.X = xLeft + 1; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Width - 2, coPos, &Written); coPos.X = xLeft + Width - 1; + ch = (bBorder ? 0xB4 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xB4, // '+', + ch, 1, coPos, &Written); @@ -749,6 +778,13 @@ /* Redraw language selection page in native language */ MUIDisplayPage(LANGUAGE_PAGE); + + /* Redraw list box frame */ + DrawGenericList(LanguageList, + 2, + 18, + xScreen - 3, + yScreen - 3); } RefreshPage = FALSE; Index: reactos/base/setup/usetup/lang/ja-JP.h =================================================================== --- reactos/base/setup/usetup/lang/ja-JP.h (revision 72700) +++ reactos/base/setup/usetup/lang/ja-JP.h (working copy) @@ -24,7 +24,7 @@ { 8, 10, - "\x07 ²Ý½Ä°Ù¼ÞÆ ¼Ö³½Ù ¹Þݺަ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", + "* ²Ý½Ä°Ù¼ÞÆ ¼Ö³½Ù ¹Þݺަ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -36,7 +36,7 @@ { 8, 13, - "\x07 ººÃÞ ¾ÝÀ¸ ¼À ¹ÞݺÞÊ »²¼­³Ã·Æ ¼½ÃÑÉ ·Ã²É ¹ÞݺÞÆ ¾¯Ã²»ÚϽ¡", + "* ººÃÞ ¾ÝÀ¸ ¼À ¹ÞݺÞÊ »²¼­³Ã·Æ ¼½ÃÑÉ ·Ã²É ¹ÞݺÞÆ ¾¯Ã²»ÚϽ¡", TEXT_STYLE_NORMAL }, { @@ -82,25 +82,25 @@ { 8, 15, - "\x07 ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 ReactOS ¦ ¼­³Ì¸ Ó¼¸Ê º³¼Ý ½ÙÆÊ R ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ReactOS ¦ ¼­³Ì¸ Ó¼¸Ê º³¼Ý ½ÙÆÊ R ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 19, - "\x07 ReactOS É ×²¾Ý½¼Þ®³¹Ý¦ Ë®³¼Þ ½ÙÆÊ L ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ReactOS É ×²¾Ý½¼Þ®³¹Ý¦ Ë®³¼Þ ½ÙÆÊ L ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 21, - "\x07 ReactOS ¦ ²Ý½Ä°Ù ¾½ÞÆ Á­³¼½Ù ÊÞ±²Ê F3 ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ReactOS ¦ ²Ý½Ä°Ù ¾½ÞÆ Á­³¼½Ù ÊÞ±²Ê F3 ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -170,13 +170,13 @@ { 8, 23, - "\x07 ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 25, - "\x07 ReactOS ¦ ²Ý½Ä°Ù¾½ÞÆ Á­³¼ ½Ù ÊÞ±²Ê F3 ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ReactOS ¦ ²Ý½Ä°Ù¾½ÞÆ Á­³¼ ½Ù ÊÞ±²Ê F3 ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -439,25 +439,25 @@ { 8, 15, - "\x07 OS ¦ º³¼Ý ½ÙÆÊ U ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* OS ¦ º³¼Ý ½ÙÆÊ U ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 ¶²Ì¸ ºÝ¿°Ù¦ Ë׸ÆÊ R ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ¶²Ì¸ ºÝ¿°Ù¦ Ë׸ÆÊ R ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 19, - "\x07 Ò²ÝÍß°¼ÞÆ ÓÄÞÙÆÊ ESC ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* Ò²ÝÍß°¼ÞÆ ÓÄÞÙÆÊ ESC ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 21, - "\x07 ºÝËß­°À¦ »²·ÄÞ³ ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ºÝËß­°À¦ »²·ÄÞ³ ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -491,7 +491,7 @@ { 8, 10, - "\x07 UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ºÝËß­°ÀÉ ¼­Ù²¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", + "* UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ºÝËß­°ÀÉ ¼­Ù²¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -503,7 +503,7 @@ { 8, 13, - "\x07 ºÝËß­°ÀÉ ¼­Ù²¦ Íݺ³¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙ ÊÞ±²Ê ESC ·°¦", + "* ºÝËß­°ÀÉ ¼­Ù²¦ Íݺ³¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙ ÊÞ±²Ê ESC ·°¦", TEXT_STYLE_NORMAL }, { @@ -628,7 +628,7 @@ }, { 8, 10, - "\x07 UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ÃÞ¨½ÌßÚ²É ¼­Ù²¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", + "* UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ÃÞ¨½ÌßÚ²É ¼­Ù²¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -640,7 +640,7 @@ { 8, 13, - "\x07 ÃÞ¨½ÌßÚ²É ¼­Ù²¦ Íݺ³¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙÆÊ ESC ·°¦", + "* ÃÞ¨½ÌßÚ²É ¼­Ù²¦ Íݺ³¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙÆÊ ESC ·°¦", TEXT_STYLE_NORMAL }, { @@ -779,38 +779,38 @@ { 8, 11, - "\x07 UP Ó¼¸Ê DOWN ·°¦ µ¼Ã Ø½Ä ´ÝÄØ°¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", + "* UP Ó¼¸Ê DOWN ·°¦ µ¼Ã Ø½Ä ´ÝÄØ°¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 13, - "\x07 ¾ÝÀ¸»ÚÀ Ê߰è¼®ÝÆ ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ¾ÝÀ¸»ÚÀ Ê߰è¼®ÝÆ ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 15, - "\x07 Press P to create a primary partition.", -// "\x07 ±À×¼² Ê߰è¼®Ý ¦ »¸¾² ½ÙÆÊ C ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* Press P to create a primary partition.", +// "* ±À×¼² Ê߰è¼®Ý ¦ »¸¾² ½ÙÆÊ C ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 Press E to create an extended partition.", + "* Press E to create an extended partition.", TEXT_STYLE_NORMAL }, { 8, 19, - "\x07 Press L to create a logical partition.", + "* Press L to create a logical partition.", TEXT_STYLE_NORMAL }, { 8, 21, - "\x07 ·¿ÝÉ Ê߰輮ݦ »¸¼Þ® ½ÙÆÊ D ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ·¿ÝÉ Ê߰輮ݦ »¸¼Þ® ½ÙÆÊ D ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -886,7 +886,7 @@ { 8, 20, - "\x07 Press ENTER to delete the system partition. You will be asked", + "* Press ENTER to delete the system partition. You will be asked", TEXT_STYLE_NORMAL }, { @@ -898,7 +898,7 @@ { 8, 24, - "\x07 Press ESC to return to the previous page. The partition will", + "* Press ESC to return to the previous page. The partition will", TEXT_STYLE_NORMAL }, { @@ -1116,7 +1116,7 @@ { 8, 10, - "\x07 UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ·°ÎÞ°ÄÞÉ ¼­Ù²¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", + "* UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ·°ÎÞ°ÄÞÉ ¼­Ù²¦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -1128,7 +1128,7 @@ { 8, 13, - "\x07 ·°ÎÞ°ÄÞÉ ¼­Ù²¦ Íݺ³ ¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙÆÊ ESC·°¦", + "* ·°ÎÞ°ÄÞÉ ¼­Ù²¦ Íݺ³ ¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙÆÊ ESC·°¦", TEXT_STYLE_NORMAL }, { @@ -1168,7 +1168,7 @@ { 8, 10, - "\x07 UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ·°ÎÞ°ÄÞ Ú²±³Ä¦ ¾ÝÀ¸ ¼Ã¤", + "* UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ÷½Ù ·°ÎÞ°ÄÞ Ú²±³Ä¦ ¾ÝÀ¸ ¼Ã¤", TEXT_STYLE_NORMAL }, { @@ -1180,7 +1180,7 @@ { 8, 13, - "\x07 ·°ÎÞ°ÄÞ Ú²±³Ä¦ Íݺ³ ¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙÆÊ ESC ·°¦", + "* ·°ÎÞ°ÄÞ Ú²±³Ä¦ Íݺ³ ¾½ÞÆ Ï´É Íß°¼ÞÆ ÓÄÞÙÆÊ ESC ·°¦", TEXT_STYLE_NORMAL }, { @@ -1250,19 +1250,19 @@ { 8, 19, - "\x07 UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ̧²Ù ¼½ÃѦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", + "* UP Ó¼¸Ê DOWN ·°¦ µ¼Ã ̧²Ù ¼½ÃѦ ¾ÝÀ¸ ¼Ã ¸ÀÞ»²¡", 0 }, { 8, 21, - "\x07 Ê߰輮ݦ Ì«°Ï¯Ä ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* Ê߰輮ݦ Ì«°Ï¯Ä ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", 0 }, { 8, 23, - "\x07 ÍÞÂÉ Ê߰輮ݦ ¾ÝÀ¸ ½Ù ÊÞ±²¤ ESC ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ÍÞÂÉ Ê߰輮ݦ ¾ÝÀ¸ ½Ù ÊÞ±²¤ ESC ·°¦ µ¼Ã ¸ÀÞ»²¡", 0 }, { @@ -1297,7 +1297,7 @@ { 8, 18, - "\x07 ºÉ Ê߰輮ݦ »¸¼Þ® ½ÙÆÊ D ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ºÉ Ê߰輮ݦ »¸¼Þ® ½ÙÆÊ D ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -1309,7 +1309,7 @@ { 8, 21, - "\x07 ·¬Ý¾Ù ½ÙÆÊ ESC ·°¦ µ¼Ã ¸ÀÞ»²¡", + "* ·¬Ý¾Ù ½ÙÆÊ ESC ·°¦ µ¼Ã ¸ÀÞ»²¡", TEXT_STYLE_NORMAL }, { @@ -1367,8 +1367,8 @@ "»ÚϾݡ ¾¯Ä±¯Ìߦ Á­³¼ ½Ù ÊÞ±²¤ ReactOS ¦ ²Ý½Ä°Ù ½ÙÆÊ ¾¯Ä±¯Ìߦ\n" "Ó³²ÁÄÞ ¼Þ¯º³ ½Ù ËÂÖ³¶Þ ±ØϽ¡\n" "\n" - " \x07 ¾¯Ä±¯Ìߦ ¿Þ¯º³ ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡\n" - " \x07 ¾¯Ä±¯Ìߦ Á­³¼ ½ÙÆÊ F3 ·°¦ µ¼Ã ¸ÀÞ»²¡", + " * ¾¯Ä±¯Ìߦ ¿Þ¯º³ ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡\n" + " * ¾¯Ä±¯Ìߦ Á­³¼ ½ÙÆÊ F3 ·°¦ µ¼Ã ¸ÀÞ»²¡", "F3 = Á­³¼ ENTER = ¿Þ¯º³" }, { @@ -1433,8 +1433,8 @@ "\n" "Ê߰輮ݦ »¸¾² ÏÀÊ »¸¼Þ® ¼Ã¤ ºÉ Ê߰è¼®Ý ðÌÞÙ¦ ʶ² Ã޷Ͻ\n" "\n" - " \x07 ¾¯Ä±¯Ìߦ Á­³¼ ½ÙÆÊ F3 ·°¦ µ¼Ã ¸ÀÞ»²¡\n" - " \x07 ¿Þ¯º³ ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", + " * ¾¯Ä±¯Ìߦ Á­³¼ ½ÙÆÊ F3 ·°¦ µ¼Ã ¸ÀÞ»²¡\n" + " * ¿Þ¯º³ ½ÙÆÊ ENTER ·°¦ µ¼Ã ¸ÀÞ»²¡", "F3 = Á­³¼ ENTER = ¿Þ¯º³" }, { Index: reactos/base/setup/usetup/partlist.c =================================================================== --- reactos/base/setup/usetup/partlist.c (revision 72700) +++ reactos/base/setup/usetup/partlist.c (working copy) @@ -1900,6 +1900,8 @@ SHORT LastLine; BOOL CurrentPartLineFound = FALSE; BOOL CurrentDiskLineFound = FALSE; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); /* Calculate the line of the current disk and partition */ CurrentDiskLine = 0; @@ -1975,8 +1977,9 @@ /* draw upper left corner */ coPos.X = List->Left; coPos.Y = List->Top; + ch = (bBorder ? 0xDA : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -1986,8 +1989,9 @@ coPos.Y = List->Top; if (List->Offset == 0) { + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 1, coPos, &Written); @@ -1994,8 +1998,9 @@ } else { + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 5, coPos, &Written); @@ -2006,8 +2011,9 @@ coPos, &Written); coPos.X = List->Right - 2; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, 2, coPos, &Written); @@ -2016,8 +2022,9 @@ /* draw upper right corner */ coPos.X = List->Right; coPos.Y = List->Top; + ch = (bBorder ? 0xBF : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); @@ -2027,15 +2034,17 @@ { coPos.X = List->Left; coPos.Y = i; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); coPos.X = List->Right; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xB3, //'|', + ch, 1, coPos, &Written); @@ -2044,8 +2053,9 @@ /* draw lower left corner */ coPos.X = List->Left; coPos.Y = List->Bottom; + ch = (bBorder ? 0xC0 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -2055,8 +2065,9 @@ coPos.Y = List->Bottom; if (LastLine - List->Offset <= List->Bottom - List->Top - 2) { + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 1, coPos, &Written); @@ -2063,8 +2074,9 @@ } else { + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 5, coPos, &Written); @@ -2074,19 +2086,21 @@ 3, coPos, &Written); - coPos.X = List->Right - 2; - FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', - 2, - coPos, - &Written); + coPos.X = List->Right - 2; + ch = (bBorder ? 0xC4 : '-'); + FillConsoleOutputCharacterA(StdOutput, + ch, + 2, + coPos, + &Written); } /* draw lower right corner */ coPos.X = List->Right; coPos.Y = List->Bottom; + ch = (bBorder ? 0xD9 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); Index: reactos/base/setup/usetup/progress.c =================================================================== --- reactos/base/setup/usetup/progress.c (revision 72700) +++ reactos/base/setup/usetup/progress.c (working copy) @@ -17,12 +17,15 @@ COORD coPos; DWORD Written; SHORT i; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); /* draw upper left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Top + 1; + ch = (bBorder ? 0xDA : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -30,8 +33,9 @@ /* draw upper edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Top + 1; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -39,8 +43,9 @@ /* draw upper right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Top + 1; + ch = (bBorder ? 0xBF : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); @@ -50,15 +55,17 @@ { coPos.X = Bar->Left; coPos.Y = i; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); coPos.X = Bar->Right; + ch = (bBorder ? 0xB3 : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xB3, //'|', + ch, 1, coPos, &Written); @@ -67,8 +74,9 @@ /* draw lower left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Bottom; + ch = (bBorder ? 0xC0 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -76,8 +84,9 @@ /* draw lower edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Bottom; + ch = (bBorder ? 0xC4 : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -85,8 +94,9 @@ /* draw lower right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Bottom; + ch = (bBorder ? 0xD9 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); @@ -101,12 +111,15 @@ COORD coPos; DWORD Written; SHORT i; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); /* draw upper left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Top + 1; + ch = (bBorder ? 0xC9 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xC9, // '+', + ch, 1, coPos, &Written); @@ -114,8 +127,9 @@ /* draw upper edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Top + 1; + ch = (bBorder ? 0xCD : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xCD, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -123,8 +137,9 @@ /* draw upper right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Top + 1; + ch = (bBorder ? 0xBB : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xBB, // '+', + ch, 1, coPos, &Written); @@ -134,15 +149,17 @@ { coPos.X = Bar->Left; coPos.Y = i; + ch = (bBorder ? 0xBA : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xBA, // '|', + ch, 1, coPos, &Written); coPos.X = Bar->Right; + ch = (bBorder ? 0xBA : '|'); FillConsoleOutputCharacterA(StdOutput, - 0xBA, //'|', + ch, 1, coPos, &Written); @@ -151,8 +168,9 @@ /* draw lower left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Bottom; + ch = (bBorder ? 0xC8 : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xC8, // '+', + ch, 1, coPos, &Written); @@ -160,8 +178,9 @@ /* draw lower edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Bottom; + ch = (bBorder ? 0xCD : '-'); FillConsoleOutputCharacterA(StdOutput, - 0xCD, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -169,8 +188,9 @@ /* draw lower right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Bottom; + ch = (bBorder ? 0xBC : '+'); FillConsoleOutputCharacterA(StdOutput, - 0xBC, // '+', + ch, 1, coPos, &Written); @@ -313,6 +333,8 @@ DWORD Written; ULONG NewPercent; ULONG NewPos; + CHAR ch; + BOOL bBorder = IsBorderCharAvailable(); if (Step > Bar->StepCount) return; @@ -349,8 +371,9 @@ for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++) { coPos.X = Bar->Left + 1; + ch = (bBorder ? 0xDB : '#'); FillConsoleOutputCharacterA(StdOutput, - 0xDB, + ch, Bar->Pos / 2, coPos, &Written); @@ -358,8 +381,9 @@ if (NewPos & 1) { + ch = (bBorder ? 0xDD : '.'); FillConsoleOutputCharacterA(StdOutput, - 0xDD, + ch, 1, coPos, &Written); Index: reactos/base/setup/usetup/usetup.h =================================================================== --- reactos/base/setup/usetup/usetup.h (revision 72700) +++ reactos/base/setup/usetup/usetup.h (working copy) @@ -184,4 +184,6 @@ InsertTailList(current, &((NewEntry)->ListEntryField));\ } +extern BOOL IsBorderCharAvailable(VOID); + #endif /* _USETUP_PCH_ */