Index: reactos/base/setup/usetup/genlist.c =================================================================== --- reactos/base/setup/usetup/genlist.c (revision 72721) +++ reactos/base/setup/usetup/genlist.c (working copy) @@ -149,12 +149,14 @@ COORD coPos; DWORD Written; SHORT i; + CHAR ch; /* Draw upper left corner */ coPos.X = GenericList->Left; coPos.Y = GenericList->Top; + ch = GetSpecialChar(SCT_SINGLE_UPPER_LEFT); FillConsoleOutputCharacterA (StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -162,8 +164,9 @@ /* Draw upper edge */ coPos.X = GenericList->Left + 1; coPos.Y = GenericList->Top; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA (StdOutput, - 0xC4, // '-', + ch, GenericList->Right - GenericList->Left - 1, coPos, &Written); @@ -171,19 +174,21 @@ /* Draw upper right corner */ coPos.X = GenericList->Right; coPos.Y = GenericList->Top; + ch = GetSpecialChar(SCT_SINGLE_UPPER_RIGHT); FillConsoleOutputCharacterA (StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); /* Draw left and right edge */ + ch = GetSpecialChar(SCT_SINGLE_VERTICAL_BAR); for (i = GenericList->Top + 1; i < GenericList->Bottom; i++) { coPos.X = GenericList->Left; coPos.Y = i; FillConsoleOutputCharacterA (StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); @@ -190,7 +195,7 @@ coPos.X = GenericList->Right; FillConsoleOutputCharacterA (StdOutput, - 0xB3, //'|', + ch, 1, coPos, &Written); @@ -199,8 +204,9 @@ /* Draw lower left corner */ coPos.X = GenericList->Left; coPos.Y = GenericList->Bottom; + ch = GetSpecialChar(SCT_SINGLE_LOWER_LEFT); FillConsoleOutputCharacterA (StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -208,8 +214,9 @@ /* Draw lower edge */ coPos.X = GenericList->Left + 1; coPos.Y = GenericList->Bottom; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA (StdOutput, - 0xC4, // '-', + ch, GenericList->Right - GenericList->Left - 1, coPos, &Written); @@ -217,8 +224,9 @@ /* Draw lower right corner */ coPos.X = GenericList->Right; coPos.Y = GenericList->Bottom; + ch = GetSpecialChar(SCT_SINGLE_LOWER_RIGHT); FillConsoleOutputCharacterA (StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); @@ -300,6 +308,7 @@ { COORD coPos; DWORD Written; + CHAR ch; coPos.X = GenericList->Right + 1; coPos.Y = GenericList->Top; @@ -306,8 +315,9 @@ if (GenericList->FirstShown != GenericList->ListHead.Flink) { + ch = GetSpecialChar(SCT_UP_ARROW); FillConsoleOutputCharacterA (StdOutput, - '\x18', + ch, 1, coPos, &Written); @@ -314,8 +324,9 @@ } else { + ch = ' '; FillConsoleOutputCharacterA (StdOutput, - ' ', + ch, 1, coPos, &Written); @@ -324,8 +335,9 @@ coPos.Y = GenericList->Bottom; if (GenericList->LastShown != GenericList->ListHead.Blink) { + ch = GetSpecialChar(SCT_DOWN_ARROW); FillConsoleOutputCharacterA (StdOutput, - '\x19', + ch, 1, coPos, &Written); @@ -332,8 +344,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 72721) +++ 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 = GetSpecialChar(SCT_UNDERLINE); 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 72721) +++ reactos/base/setup/usetup/interface/usetup.c (working copy) @@ -23,7 +23,7 @@ * PURPOSE: Text-mode setup * PROGRAMMER: Eric Kohl * Casper S. Hornstrup (chorns@users.sourceforge.net) - * Herv Poussineau (hpoussin@reactos.org) + * HervEPoussineau (hpoussin@reactos.org) */ #include @@ -104,6 +104,26 @@ /* FUNCTIONS ****************************************************************/ +CHAR GetSpecialChar(SPECIAL_CHAR_TYPE type) +{ + static const CHAR table[] = + "\x07\x18\x19\xB3\xB4\xBA\xBB\xBC\xBF\xC0\xC3\xC4\xC8\xC9\xCD\xD9\xDA\xDB\xDD"; + CHAR ch; + LANGID langid = (LANGID)(wcstol(SelectedLanguageId, NULL, 16) & 0xFFFF); + + switch (langid) + { + case 0x0411: // Japanese + case 0x0418: // Romanian + ch = (CHAR)(0x81 + type); + break; + default: + ch = table[(BYTE)type]; + break; + } + return ch; +} + static VOID PrintString(char* fmt,...) { @@ -131,12 +151,14 @@ { COORD coPos; DWORD Written; + CHAR ch; /* draw upper left corner */ coPos.X = xLeft; coPos.Y = yTop; + ch = GetSpecialChar(SCT_SINGLE_UPPER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -144,8 +166,9 @@ /* draw upper edge */ coPos.X = xLeft + 1; coPos.Y = yTop; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Width - 2, coPos, &Written); @@ -153,18 +176,20 @@ /* draw upper right corner */ coPos.X = xLeft + Width - 1; coPos.Y = yTop; + ch = GetSpecialChar(SCT_SINGLE_UPPER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); /* Draw right edge, inner space and left edge */ + ch = GetSpecialChar(SCT_SINGLE_VERTICAL_BAR); for (coPos.Y = yTop + 1; coPos.Y < yTop + Height - 1; coPos.Y++) { coPos.X = xLeft; FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); @@ -178,7 +203,7 @@ coPos.X = xLeft + Width - 1; FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); @@ -187,8 +212,9 @@ /* draw lower left corner */ coPos.X = xLeft; coPos.Y = yTop + Height - 1; + ch = GetSpecialChar(SCT_SINGLE_LOWER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -196,8 +222,9 @@ /* draw lower edge */ coPos.X = xLeft + 1; coPos.Y = yTop + Height - 1; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Width - 2, coPos, &Written); @@ -205,8 +232,9 @@ /* draw lower right corner */ coPos.X = xLeft + Width - 1; coPos.Y = yTop + Height - 1; + ch = GetSpecialChar(SCT_SINGLE_LOWER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); @@ -231,6 +259,7 @@ BOOLEAN LastLine; SHORT Width; SHORT Height; + CHAR ch; /* Count text lines and longest line */ MaxLength = 0; @@ -335,22 +364,25 @@ { coPos.Y = yTop + Height - 3; coPos.X = xLeft; + ch = GetSpecialChar(SCT_SINGLE_LEFT_TEE); FillConsoleOutputCharacterA(StdOutput, - 0xC3, // '+', + ch, 1, coPos, &Written); coPos.X = xLeft + 1; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Width - 2, coPos, &Written); coPos.X = xLeft + Width - 1; + ch = GetSpecialChar(SCT_SINGLE_RIGHT_TEE); FillConsoleOutputCharacterA(StdOutput, - 0xB4, // '+', + ch, 1, coPos, &Written); @@ -749,6 +781,32 @@ /* Redraw language selection page in native language */ MUIDisplayPage(LANGUAGE_PAGE); + + /* Redraw list box frame */ + DrawGenericList(LanguageList, + 2, + 18, + xScreen - 3, + yScreen - 3); + + if (0) + { + COORD coPos; + DWORD Written; + + for (coPos.Y = 0; coPos.Y < 0x10; coPos.Y++) + { + for (coPos.X = 0; coPos.X < 0x10; coPos.X++) + { + CHAR ch = coPos.X | (coPos.Y << 4); + FillConsoleOutputCharacterA(StdOutput, + ch, + 1, + coPos, + &Written); + } + } + } } RefreshPage = FALSE; Index: reactos/base/setup/usetup/lang/ja-JP.h =================================================================== --- reactos/base/setup/usetup/lang/ja-JP.h (revision 72721) +++ reactos/base/setup/usetup/lang/ja-JP.h (working copy) @@ -24,7 +24,7 @@ { 8, 10, - "\x07 ݽİټ ֳ ݺަ ޻", + "\x81 ݽİټ ֳ ݺަ ޻", TEXT_STYLE_NORMAL }, { @@ -36,7 +36,7 @@ { 8, 13, - "\x07 ݺ ÷ ò ݺ òϽ", + "\x81 ݺ ÷ ò ݺ òϽ", TEXT_STYLE_NORMAL }, { @@ -82,25 +82,25 @@ { 8, 15, - "\x07 ReactOS ݽİ ENTER ޻", + "\x81 ReactOS ݽİ ENTER ޻", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 ReactOS ̸ Ӽ R ޻", + "\x81 ReactOS ̸ Ӽ R ޻", TEXT_STYLE_NORMAL }, { 8, 19, - "\x07 ReactOS ײݽޮݦ ˮ L ޻", + "\x81 ReactOS ײݽޮݦ ˮ L ޻", TEXT_STYLE_NORMAL }, { 8, 21, - "\x07 ReactOS ݽİ ޱ F3 ޻", + "\x81 ReactOS ݽİ ޱ F3 ޻", TEXT_STYLE_NORMAL }, { @@ -170,13 +170,13 @@ { 8, 23, - "\x07 ReactOS ݽİ ENTER ޻", + "\x81 ReactOS ݽİ ENTER ޻", TEXT_STYLE_NORMAL }, { 8, 25, - "\x07 ReactOS ݽİپ ޱ F3 ޻", + "\x81 ReactOS ݽİپ ޱ F3 ޻", TEXT_STYLE_NORMAL }, { @@ -439,25 +439,25 @@ { 8, 15, - "\x07 OS U ޻", + "\x81 OS U ޻", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 ̸ ݿ٦ ׸ R ޻", + "\x81 ̸ ݿ٦ ׸ R ޻", TEXT_STYLE_NORMAL }, { 8, 19, - "\x07 Ҳ߰ ESC ޻", + "\x81 Ҳ߰ ESC ޻", TEXT_STYLE_NORMAL }, { 8, 21, - "\x07 ߭ ޳ ENTER ޻", + "\x81 ߭ ޳ ENTER ޻", TEXT_STYLE_NORMAL }, { @@ -491,7 +491,7 @@ { 8, 10, - "\x07 UP Ӽ DOWN ÷ ߭ ٲ ޻", + "\x81 UP Ӽ DOWN ÷ ߭ ٲ ޻", TEXT_STYLE_NORMAL }, { @@ -503,7 +503,7 @@ { 8, 13, - "\x07 ߭ ٲ ݺ ϴ ߰ ޱ ESC ", + "\x81 ߭ ٲ ݺ ϴ ߰ ޱ ESC ", TEXT_STYLE_NORMAL }, { @@ -628,7 +628,7 @@ }, { 8, 10, - "\x07 UP Ӽ DOWN ÷ ިڲ ٲ ޻", + "\x81 UP Ӽ DOWN ÷ ިڲ ٲ ޻", TEXT_STYLE_NORMAL }, { @@ -640,7 +640,7 @@ { 8, 13, - "\x07 ިڲ ٲ ݺ ϴ ߰ ESC ", + "\x81 ިڲ ٲ ݺ ϴ ߰ ESC ", TEXT_STYLE_NORMAL }, { @@ -779,38 +779,38 @@ { 8, 11, - "\x07 UP Ӽ DOWN ؽ ذ ޻", + "\x81 UP Ӽ DOWN ؽ ذ ޻", TEXT_STYLE_NORMAL }, { 8, 13, - "\x07 ߰è ReactOS ݽİ ENTER ޻", + "\x81 ߰è ReactOS ݽİ ENTER ޻", TEXT_STYLE_NORMAL }, { 8, 15, - "\x07 Press P to create a primary partition.", -// "\x07 ׼ ߰è C ޻", + "\x81 ײذ ߰èݦ P ޻", +// "\x81 ׼ ߰è C ޻", TEXT_STYLE_NORMAL }, { 8, 17, - "\x07 Press E to create an extended partition.", + "\x81 ߰è E ޻", TEXT_STYLE_NORMAL }, { 8, 19, - "\x07 Press L to create a logical partition.", + "\x81 ߰è L ޻", TEXT_STYLE_NORMAL }, { 8, 21, - "\x07 ߰èݦ ޮ D ޻", + "\x81 ߰èݦ ޮ D ޻", TEXT_STYLE_NORMAL }, { @@ -886,7 +886,7 @@ { 8, 20, - "\x07 Press ENTER to delete the system partition. You will be asked", + "\x81 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", + "\x81 Press ESC to return to the previous page. The partition will", TEXT_STYLE_NORMAL }, { @@ -1116,7 +1116,7 @@ { 8, 10, - "\x07 UP Ӽ DOWN ÷ ް ٲ ޻", + "\x81 UP Ӽ DOWN ÷ ް ٲ ޻", TEXT_STYLE_NORMAL }, { @@ -1128,7 +1128,7 @@ { 8, 13, - "\x07 ް ٲ ݺ ϴ ߰ ESC", + "\x81 ް ٲ ݺ ϴ ߰ ESC", TEXT_STYLE_NORMAL }, { @@ -1168,7 +1168,7 @@ { 8, 10, - "\x07 UP Ӽ DOWN ÷ ް ڲĦ ä", + "\x81 UP Ӽ DOWN ÷ ް ڲĦ ä", TEXT_STYLE_NORMAL }, { @@ -1180,7 +1180,7 @@ { 8, 13, - "\x07 ް ڲĦ ݺ ϴ ߰ ESC ", + "\x81 ް ڲĦ ݺ ϴ ߰ ESC ", TEXT_STYLE_NORMAL }, { @@ -1250,19 +1250,19 @@ { 8, 19, - "\x07 UP Ӽ DOWN ̧ Ѧ ޻", + "\x81 UP Ӽ DOWN ̧ Ѧ ޻", 0 }, { 8, 21, - "\x07 ߰èݦ ̫ϯ ENTER ޻", + "\x81 ߰èݦ ̫ϯ ENTER ޻", 0 }, { 8, 23, - "\x07 ߰èݦ ޱ ESC ޻", + "\x81 ߰èݦ ޱ ESC ޻", 0 }, { @@ -1297,7 +1297,7 @@ { 8, 18, - "\x07 ߰èݦ ޮ D ޻", + "\x81 ߰èݦ ޮ D ޻", TEXT_STYLE_NORMAL }, { @@ -1309,7 +1309,7 @@ { 8, 21, - "\x07 ݾ ESC ޻", + "\x81 ݾ ESC ޻", TEXT_STYLE_NORMAL }, { @@ -1367,8 +1367,8 @@ "Ͼݡ ıߦ ޱ ReactOS ݽİ ıߦ\n" "ӳ ޯ ֳ Ͻ\n" "\n" - " \x07 ıߦ ޯ ENTER ޻\n" - " \x07 ıߦ F3 ޻", + " \x81 ıߦ ޯ ENTER ޻\n" + " \x81 ıߦ F3 ޻", "F3 = ENTER = ޯ" }, { @@ -1433,8 +1433,8 @@ "\n" "߰èݦ ޮ ä ߰è ð٦ ʶ ޷Ͻ\n" "\n" - " \x07 ıߦ F3 ޻\n" - " \x07 ޯ ENTER ޻", + " \x81 ıߦ F3 ޻\n" + " \x81 ޯ ENTER ޻", "F3 = ENTER = ޯ" }, { @@ -1442,7 +1442,7 @@ "׼ ߰èݦ ݻ޲\n" "߰è Ų ٺ ޷Ͼ!\n" "\n" - " * ޯ ƶ ޻", + " \x81 ޯ ƶ ޻", NULL }, { @@ -1449,7 +1449,7 @@ //ERROR_DELETE_SPACE, "ݶ ި ߰ ޮ ٺ ޷Ͼ!\n" "\n" - " * ޯ ƶ ޻", + " \x81 ޯ ƶ ޻", NULL }, { @@ -1567,37 +1567,37 @@ }, { //ERROR_DIRECTORY_NAME, - "Invalid directory name.\n" + "̾ ިڸ Ҳ ޽\n" "\n" - " * Press any key to continue." + " \x81 ޯ ƶ ޻", }, { //ERROR_INSUFFICIENT_PARTITION_SIZE, - "The selected partition is not large enough to install ReactOS.\n" - "The install partition must have a size of at least %lu MB.\n" + " ߰è ReactOS ݽİ ޭ \n" + "Ͼݡ ݽİ ߰è Ÿ %lu MB ޮ ޽\n" "\n" - " * Press any key to continue.", + " \x81 ޯ ƶ ޻", NULL }, { //ERROR_PARTITION_TABLE_FULL, - "You can not create a new primary or extended partition in the\n" - "partition table of this disk because the partition table is full.\n" + "߰è ð ߲ Ҥ ި ׼ \n" + "߰è ޷Ͼݡ\n" "\n" - " * Press any key to continue." + " \x81 ޯ ƶ ޻", }, { //ERROR_ONLY_ONE_EXTENDED, - "You can not create more than one extended partition per disk.\n" - "\n" - " * Press any key to continue." + "1 ި 2 ޮ ߰è \n" + "޷Ͼݡ\n" + " \x81 ޯ ƶ ޻", }, { //ERROR_FORMATTING_PARTITION, - "Setup is unable to format the partition:\n" + "ı ߰è ̫ϯ ޷Ͼ:\n" " %S\n" "\n" - "ENTER = Reboot computer" + "ENTER = ߭ ޳" }, { NULL, Index: reactos/base/setup/usetup/partlist.c =================================================================== --- reactos/base/setup/usetup/partlist.c (revision 72721) +++ reactos/base/setup/usetup/partlist.c (working copy) @@ -1900,6 +1900,7 @@ SHORT LastLine; BOOL CurrentPartLineFound = FALSE; BOOL CurrentDiskLineFound = FALSE; + CHAR ch; /* Calculate the line of the current disk and partition */ CurrentDiskLine = 0; @@ -1975,8 +1976,9 @@ /* draw upper left corner */ coPos.X = List->Left; coPos.Y = List->Top; + ch = GetSpecialChar(SCT_SINGLE_UPPER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -1986,8 +1988,9 @@ coPos.Y = List->Top; if (List->Offset == 0) { + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 1, coPos, &Written); @@ -1994,8 +1997,9 @@ } else { + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 5, coPos, &Written); @@ -2005,9 +2009,17 @@ 3, coPos, &Written); + coPos.X++; + ch = GetSpecialChar(SCT_UP_ARROW); + FillConsoleOutputCharacterA(StdOutput, + ch, + 1, + coPos, + &Written); coPos.X = List->Right - 2; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, 2, coPos, &Written); @@ -2016,19 +2028,21 @@ /* draw upper right corner */ coPos.X = List->Right; coPos.Y = List->Top; + ch = GetSpecialChar(SCT_SINGLE_UPPER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); /* draw left and right edge */ + ch = GetSpecialChar(SCT_SINGLE_VERTICAL_BAR); for (i = List->Top + 1; i < List->Bottom; i++) { coPos.X = List->Left; coPos.Y = i; FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); @@ -2035,7 +2049,7 @@ coPos.X = List->Right; FillConsoleOutputCharacterA(StdOutput, - 0xB3, //'|', + ch, 1, coPos, &Written); @@ -2044,8 +2058,9 @@ /* draw lower left corner */ coPos.X = List->Left; coPos.Y = List->Bottom; + ch = GetSpecialChar(SCT_SINGLE_LOWER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -2055,8 +2070,9 @@ coPos.Y = List->Bottom; if (LastLine - List->Offset <= List->Bottom - List->Top - 2) { + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 1, coPos, &Written); @@ -2063,8 +2079,9 @@ } else { + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, List->Right - List->Left - 5, coPos, &Written); @@ -2074,19 +2091,28 @@ 3, coPos, &Written); - coPos.X = List->Right - 2; - FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', - 2, - coPos, - &Written); + coPos.X++; + ch = GetSpecialChar(SCT_DOWN_ARROW); + FillConsoleOutputCharacterA(StdOutput, + ch, + 1, + coPos, + &Written); + coPos.X = List->Right - 2; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); + FillConsoleOutputCharacterA(StdOutput, + ch, + 2, + coPos, + &Written); } /* draw lower right corner */ coPos.X = List->Right; coPos.Y = List->Bottom; + ch = GetSpecialChar(SCT_SINGLE_LOWER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); Index: reactos/base/setup/usetup/progress.c =================================================================== --- reactos/base/setup/usetup/progress.c (revision 72721) +++ reactos/base/setup/usetup/progress.c (working copy) @@ -17,12 +17,14 @@ COORD coPos; DWORD Written; SHORT i; + CHAR ch; /* draw upper left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Top + 1; + ch = GetSpecialChar(SCT_SINGLE_UPPER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xDA, // '+', + ch, 1, coPos, &Written); @@ -30,8 +32,9 @@ /* draw upper edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Top + 1; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -39,19 +42,21 @@ /* draw upper right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Top + 1; + ch = GetSpecialChar(SCT_SINGLE_UPPER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xBF, // '+', + ch, 1, coPos, &Written); /* draw left and right edge */ + ch = GetSpecialChar(SCT_SINGLE_VERTICAL_BAR); for (i = Bar->Top + 2; i < Bar->Bottom; i++) { coPos.X = Bar->Left; coPos.Y = i; FillConsoleOutputCharacterA(StdOutput, - 0xB3, // '|', + ch, 1, coPos, &Written); @@ -58,7 +63,7 @@ coPos.X = Bar->Right; FillConsoleOutputCharacterA(StdOutput, - 0xB3, //'|', + ch, 1, coPos, &Written); @@ -67,8 +72,9 @@ /* draw lower left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Bottom; + ch = GetSpecialChar(SCT_SINGLE_LOWER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xC0, // '+', + ch, 1, coPos, &Written); @@ -76,8 +82,9 @@ /* draw lower edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Bottom; + ch = GetSpecialChar(SCT_SINGLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xC4, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -85,8 +92,9 @@ /* draw lower right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Bottom; + ch = GetSpecialChar(SCT_SINGLE_LOWER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xD9, // '+', + ch, 1, coPos, &Written); @@ -101,12 +109,14 @@ COORD coPos; DWORD Written; SHORT i; + CHAR ch; /* draw upper left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Top + 1; + ch = GetSpecialChar(SCT_DOUBLE_UPPER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xC9, // '+', + ch, 1, coPos, &Written); @@ -114,8 +124,9 @@ /* draw upper edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Top + 1; + ch = GetSpecialChar(SCT_DOUBLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xCD, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -123,19 +134,21 @@ /* draw upper right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Top + 1; + ch = GetSpecialChar(SCT_DOUBLE_UPPER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xBB, // '+', + ch, 1, coPos, &Written); /* draw left and right edge */ + ch = GetSpecialChar(SCT_DOUBLE_VERTICAL_BAR); for (i = Bar->Top + 2; i < Bar->Bottom; i++) { coPos.X = Bar->Left; coPos.Y = i; FillConsoleOutputCharacterA(StdOutput, - 0xBA, // '|', + ch, 1, coPos, &Written); @@ -142,7 +155,7 @@ coPos.X = Bar->Right; FillConsoleOutputCharacterA(StdOutput, - 0xBA, //'|', + ch, 1, coPos, &Written); @@ -151,8 +164,9 @@ /* draw lower left corner */ coPos.X = Bar->Left; coPos.Y = Bar->Bottom; + ch = GetSpecialChar(SCT_DOUBLE_LOWER_LEFT); FillConsoleOutputCharacterA(StdOutput, - 0xC8, // '+', + ch, 1, coPos, &Written); @@ -160,8 +174,9 @@ /* draw lower edge */ coPos.X = Bar->Left + 1; coPos.Y = Bar->Bottom; + ch = GetSpecialChar(SCT_DOUBLE_HORIZONTAL_BAR); FillConsoleOutputCharacterA(StdOutput, - 0xCD, // '-', + ch, Bar->Right - Bar->Left - 1, coPos, &Written); @@ -169,8 +184,9 @@ /* draw lower right corner */ coPos.X = Bar->Right; coPos.Y = Bar->Bottom; + ch = GetSpecialChar(SCT_DOUBLE_LOWER_RIGHT); FillConsoleOutputCharacterA(StdOutput, - 0xBC, // '+', + ch, 1, coPos, &Written); @@ -313,6 +329,7 @@ DWORD Written; ULONG NewPercent; ULONG NewPos; + CHAR ch; if (Step > Bar->StepCount) return; @@ -349,8 +366,9 @@ for (coPos.Y = Bar->Top + 2; coPos.Y <= Bar->Bottom - 1; coPos.Y++) { coPos.X = Bar->Left + 1; + ch = GetSpecialChar(SCT_FULL_BLOCK); FillConsoleOutputCharacterA(StdOutput, - 0xDB, + ch, Bar->Pos / 2, coPos, &Written); @@ -358,8 +376,9 @@ if (NewPos & 1) { + ch = GetSpecialChar(SCT_HALF_BLOCK); FillConsoleOutputCharacterA(StdOutput, - 0xDD, + ch, 1, coPos, &Written); Index: reactos/base/setup/usetup/usetup.h =================================================================== --- reactos/base/setup/usetup/usetup.h (revision 72721) +++ reactos/base/setup/usetup/usetup.h (working copy) @@ -184,4 +184,30 @@ InsertTailList(current, &((NewEntry)->ListEntryField));\ } +typedef enum SPECIAL_CHAR_TYPE +{ + SCT_BULLET, + SCT_UP_ARROW, + SCT_DOWN_ARROW, + SCT_SINGLE_VERTICAL_BAR, + SCT_SINGLE_RIGHT_TEE, + SCT_DOUBLE_VERTICAL_BAR, + SCT_DOUBLE_UPPER_RIGHT, + SCT_DOUBLE_LOWER_RIGHT, + SCT_SINGLE_UPPER_RIGHT, + SCT_SINGLE_LOWER_LEFT, + SCT_SINGLE_LEFT_TEE, + SCT_SINGLE_HORIZONTAL_BAR, + SCT_DOUBLE_LOWER_LEFT, + SCT_DOUBLE_UPPER_LEFT, + SCT_DOUBLE_HORIZONTAL_BAR, + SCT_SINGLE_LOWER_RIGHT, + SCT_SINGLE_UPPER_LEFT, + SCT_FULL_BLOCK, + SCT_HALF_BLOCK, + SCT_UNDERLINE = SCT_DOUBLE_HORIZONTAL_BAR +} SPECIAL_CHAR_TYPE; + +extern CHAR GetSpecialChar(SPECIAL_CHAR_TYPE type); + #endif /* _USETUP_PCH_ */ Index: reactos/media/vgafonts/28606-8x8.bin =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Index: reactos/media/vgafonts/932-8x8.bin =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream