Index: reactos/dll/cpl/console/console.h =================================================================== --- reactos/dll/cpl/console/console.h (revision 74386) +++ reactos/dll/cpl/console/console.h (working copy) @@ -1,6 +1,7 @@ #ifndef CONSOLE_H__ #define CONSOLE_H__ +#include #include #define WIN32_NO_STATUS @@ -36,5 +37,6 @@ BYTE CodePageToCharSet(UINT CodePage); VOID PaintConsole(LPDRAWITEMSTRUCT drawItem, PCONSOLE_STATE_INFO pConInfo); BOOL PaintText(LPDRAWITEMSTRUCT drawItem, PCONSOLE_STATE_INFO pConInfo, TEXT_TYPE TextMode); +HFONT CreateConsoleFont(HWND hwndDlg, PCONSOLE_STATE_INFO pConInfo); #endif /* CONSOLE_H__ */ Index: reactos/dll/cpl/console/font.c =================================================================== --- reactos/dll/cpl/console/font.c (revision 74386) +++ reactos/dll/cpl/console/font.c (working copy) @@ -368,6 +368,9 @@ INT nSel; ULONG FontSize; WCHAR FontSizeStr[20]; + LOGFONTW lf; + INT Width, Height; + HFONT hFont; nSel = (INT)SendDlgItemMessageW(hwndDlg, IDC_LBOX_FONTSIZE, LB_GETCURSEL, 0, 0); @@ -389,9 +392,18 @@ InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_FONT_WINDOW_PREVIEW), NULL, TRUE); InvalidateRect(GetDlgItem(hwndDlg, IDC_STATIC_SELECT_FONT_PREVIEW), NULL, TRUE); - swprintf(FontSizeStr, L"%2d", pConInfo->FontSize.X); + hFont = CreateConsoleFont(hwndDlg, pConInfo); + GetObjectW(hFont, sizeof(lf), &lf); + DeleteObject(hFont); + + Height = abs(lf.lfHeight); + Width = lf.lfWidth; + if (Width == 0) + Width = Height / 2; + + swprintf(FontSizeStr, L"%2d", Width); SetWindowText(GetDlgItem(hwndDlg, IDC_FONT_SIZE_X), FontSizeStr); - swprintf(FontSizeStr, L"%2d", pConInfo->FontSize.Y); + swprintf(FontSizeStr, L"%2d", Height); SetWindowText(GetDlgItem(hwndDlg, IDC_FONT_SIZE_Y), FontSizeStr); } @@ -457,6 +469,9 @@ LB_SETCURSEL, (WPARAM)idx, 0); } + if (ConInfo->FontWeight >= FW_BOLD) + CheckDlgButton(hwndDlg, IDC_CHECK_BOLD_FONTS, BST_CHECKED); + FontTypeChange(hwndDlg, ConInfo); return TRUE; @@ -513,6 +528,20 @@ break; } + case BN_CLICKED: + { + if (LOWORD(wParam) == IDC_CHECK_BOLD_FONTS) + { + if (IsDlgButtonChecked(hwndDlg, IDC_CHECK_BOLD_FONTS) == BST_CHECKED) + ConInfo->FontWeight = FW_BOLD; + else + ConInfo->FontWeight = FW_NORMAL; + + FontTypeChange(hwndDlg, ConInfo); + PropSheet_Changed(GetParent(hwndDlg), hwndDlg); + } + break; + } } break; Index: reactos/dll/cpl/console/lang/bg-BG.rc =================================================================== --- reactos/dll/cpl/console/lang/bg-BG.rc (revision 74386) +++ reactos/dll/cpl/console/lang/bg-BG.rc (working copy) @@ -37,7 +37,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Шрифт:", -1, 10, 105, 33, 10 - CHECKBOX "&Получери шрифтове", IDC_CHECK_BOLD_FONTS, 38, 105, 85, 10 + AUTOCHECKBOX "&Получери шрифтове", IDC_CHECK_BOLD_FONTS, 38, 105, 85, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/cs-CZ.rc =================================================================== --- reactos/dll/cpl/console/lang/cs-CZ.rc (revision 74386) +++ reactos/dll/cpl/console/lang/cs-CZ.rc (working copy) @@ -43,7 +43,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Písmo:", -1, 10, 105, 33, 10 - CHECKBOX "&Tučná písma", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Tučná písma", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/de-DE.rc =================================================================== --- reactos/dll/cpl/console/lang/de-DE.rc (revision 74386) +++ reactos/dll/cpl/console/lang/de-DE.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70 LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Schrift", -1, 10, 105, 35, 10 - CHECKBOX "&Fette Schriften", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 + AUTOCHECKBOX "&Fette Schriften", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 10, 155, 200, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 165, 95, 35 Index: reactos/dll/cpl/console/lang/en-US.rc =================================================================== --- reactos/dll/cpl/console/lang/en-US.rc (revision 74386) +++ reactos/dll/cpl/console/lang/en-US.rc (working copy) @@ -37,7 +37,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Font:", -1, 10, 105, 33, 10 - CHECKBOX "&Bold fonts", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Bold fonts", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/es-ES.rc =================================================================== --- reactos/dll/cpl/console/lang/es-ES.rc (revision 74386) +++ reactos/dll/cpl/console/lang/es-ES.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70 LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Fuente", -1, 10, 105, 35, 10 - CHECKBOX "&Negrita", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 + AUTOCHECKBOX "&Negrita", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 10, 155, 200, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 165, 95, 35 Index: reactos/dll/cpl/console/lang/fr-FR.rc =================================================================== --- reactos/dll/cpl/console/lang/fr-FR.rc (revision 74386) +++ reactos/dll/cpl/console/lang/fr-FR.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Police :", -1, 10, 105, 33, 10 - CHECKBOX "&Gras", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Gras", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/he-IL.rc =================================================================== --- reactos/dll/cpl/console/lang/he-IL.rc (revision 74386) +++ reactos/dll/cpl/console/lang/he-IL.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "גופן:", -1, 10, 105, 33, 10 - CHECKBOX "גופנים מודגשים", IDC_CHECK_BOLD_FONTS, 41, 105, 33, 10 + AUTOCHECKBOX "גופנים מודגשים", IDC_CHECK_BOLD_FONTS, 41, 105, 33, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/id-ID.rc =================================================================== --- reactos/dll/cpl/console/lang/id-ID.rc (revision 74386) +++ reactos/dll/cpl/console/lang/id-ID.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70 LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Font", -1, 10, 105, 35, 10 - CHECKBOX "Font &tebal", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 + AUTOCHECKBOX "Font &tebal", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 10, 155, 200, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 165, 95, 35 Index: reactos/dll/cpl/console/lang/it-IT.rc =================================================================== --- reactos/dll/cpl/console/lang/it-IT.rc (revision 74386) +++ reactos/dll/cpl/console/lang/it-IT.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70 LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Font", -1, 10, 105, 35, 10 - CHECKBOX "&Grassetto fonts", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 + AUTOCHECKBOX "&Grassetto fonts", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 10, 155, 200, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 165, 95, 35 Index: reactos/dll/cpl/console/lang/ja-JP.rc =================================================================== --- reactos/dll/cpl/console/lang/ja-JP.rc (revision 74386) +++ reactos/dll/cpl/console/lang/ja-JP.rc (working copy) @@ -37,7 +37,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "フォント(&F):", -1, 10, 105, 33, 10 - CHECKBOX "太字のフォント(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "太字のフォント(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/no-NO.rc =================================================================== --- reactos/dll/cpl/console/lang/no-NO.rc (revision 74386) +++ reactos/dll/cpl/console/lang/no-NO.rc (working copy) @@ -37,7 +37,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Skrift:", -1, 10, 105, 33, 10 - CHECKBOX "&Fet skrift", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Fet skrift", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/pl-PL.rc =================================================================== --- reactos/dll/cpl/console/lang/pl-PL.rc (revision 74386) +++ reactos/dll/cpl/console/lang/pl-PL.rc (working copy) @@ -44,7 +44,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70 LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Czcionka", -1, 10, 105, 35, 10 - CHECKBOX "&Pogrubiona czcionka", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 + AUTOCHECKBOX "&Pogrubiona czcionka", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 10, 155, 200, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 15, 165, 95, 35 Index: reactos/dll/cpl/console/lang/pt-BR.rc =================================================================== --- reactos/dll/cpl/console/lang/pt-BR.rc (revision 74386) +++ reactos/dll/cpl/console/lang/pt-BR.rc (working copy) @@ -37,7 +37,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Fonte", -1, 10, 105, 33, 10 - CHECKBOX "Fontes em &negrito", IDC_CHECK_BOLD_FONTS, 46, 105, 76, 10 + AUTOCHECKBOX "Fontes em &negrito", IDC_CHECK_BOLD_FONTS, 46, 105, 76, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/ro-RO.rc =================================================================== --- reactos/dll/cpl/console/lang/ro-RO.rc (revision 74386) +++ reactos/dll/cpl/console/lang/ro-RO.rc (working copy) @@ -46,7 +46,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "F&ont:", -1, 10, 105, 33, 10 - CHECKBOX "&Aldin", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Aldin", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/ru-RU.rc =================================================================== --- reactos/dll/cpl/console/lang/ru-RU.rc (revision 74386) +++ reactos/dll/cpl/console/lang/ru-RU.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Шрифт:", -1, 10, 105, 33, 10 - CHECKBOX "&Жирный", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Жирный", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/sk-SK.rc =================================================================== --- reactos/dll/cpl/console/lang/sk-SK.rc (revision 74386) +++ reactos/dll/cpl/console/lang/sk-SK.rc (working copy) @@ -41,7 +41,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Písmo:", -1, 10, 105, 33, 10 - CHECKBOX "&Tučné písma", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Tučné písma", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/sq-AL.rc =================================================================== --- reactos/dll/cpl/console/lang/sq-AL.rc (revision 74386) +++ reactos/dll/cpl/console/lang/sq-AL.rc (working copy) @@ -41,7 +41,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Font:", -1, 10, 105, 33, 10 - CHECKBOX "&Bold fonts", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Bold fonts", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/tr-TR.rc =================================================================== --- reactos/dll/cpl/console/lang/tr-TR.rc (revision 74386) +++ reactos/dll/cpl/console/lang/tr-TR.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Yazı Tipi:", -1, 10, 105, 33, 10 - CHECKBOX "&Kalın Yazı Tipleri", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Kalın Yazı Tipleri", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/uk-UA.rc =================================================================== --- reactos/dll/cpl/console/lang/uk-UA.rc (revision 74386) +++ reactos/dll/cpl/console/lang/uk-UA.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&Шрифт:", -1, 10, 105, 33, 10 - CHECKBOX "&Жирні", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "&Жирні", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/zh-CN.rc =================================================================== --- reactos/dll/cpl/console/lang/zh-CN.rc (revision 74386) +++ reactos/dll/cpl/console/lang/zh-CN.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&字体(&F):", -1, 10, 105, 33, 10 - CHECKBOX "粗体(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "粗体(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/lang/zh-TW.rc =================================================================== --- reactos/dll/cpl/console/lang/zh-TW.rc (revision 74386) +++ reactos/dll/cpl/console/lang/zh-TW.rc (working copy) @@ -39,7 +39,7 @@ CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74 LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL LTEXT "&字型(&F):", -1, 10, 105, 33, 10 - CHECKBOX "粗體(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 + AUTOCHECKBOX "粗體(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10 LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | WS_VSCROLL GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50 CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35 Index: reactos/dll/cpl/console/layout.c =================================================================== --- reactos/dll/cpl/console/layout.c (revision 74386) +++ reactos/dll/cpl/console/layout.c (working copy) @@ -94,6 +94,32 @@ DeleteObject((HGDIOBJ)hBrush); } +HFONT +CreateConsoleFont(HWND hwndDlg, PCONSOLE_STATE_INFO pConInfo) +{ + LOGFONTW lf; + COORD FontSize = pConInfo->FontSize; + HDC hDC = GetDC(hwndDlg); + + ZeroMemory(&lf, sizeof(lf)); + + if (FontSize.Y > 0) + lf.lfHeight = -MulDiv(FontSize.Y, GetDeviceCaps(hDC, LOGPIXELSY), 72); + else + lf.lfHeight = FontSize.Y; + + lf.lfWidth = MulDiv(FontSize.X, GetDeviceCaps(hDC, LOGPIXELSX), 72); + + lf.lfWeight = pConInfo->FontWeight; + lf.lfCharSet = CodePageToCharSet(pConInfo->CodePage); + lstrcpynW(lf.lfFaceName, pConInfo->FaceName, LF_FACESIZE); + lf.lfPitchAndFamily = FIXED_PITCH | pConInfo->FontFamily; + lf.lfWeight = pConInfo->FontWeight; + + ReleaseDC(hwndDlg, hDC); + return CreateFontIndirectW(&lf); +} + BOOL PaintText(LPDRAWITEMSTRUCT drawItem, PCONSOLE_STATE_INFO pConInfo, @@ -105,8 +131,6 @@ HBRUSH hBrush; HFONT Font, OldFont; - COORD FontSize = pConInfo->FontSize; - if (TextMode == Screen) CurrentAttrib = pConInfo->ScreenAttributes; else if (TextMode == Popup) @@ -120,23 +144,7 @@ hBrush = CreateSolidBrush(nbkColor); if (!hBrush) return FALSE; - FontSize.Y = FontSize.Y > 0 ? -MulDiv(FontSize.Y, GetDeviceCaps(drawItem->hDC, LOGPIXELSY), 72) - : FontSize.Y; - - Font = CreateFontW(FontSize.Y, - FontSize.X, - 0, - TA_BASELINE, - pConInfo->FontWeight, - FALSE, - FALSE, - FALSE, - CodePageToCharSet(pConInfo->CodePage), - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - DEFAULT_QUALITY, - FIXED_PITCH | pConInfo->FontFamily, - pConInfo->FaceName); + Font = CreateConsoleFont(pConInfo->hWnd, pConInfo); if (Font == NULL) { DPRINT1("PaintText: CreateFont failed\n"); Index: reactos/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c =================================================================== --- reactos/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c (revision 74386) +++ reactos/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c (working copy) @@ -535,6 +535,7 @@ HFONT OldFont, NewFont; TEXTMETRICW Metrics; SIZE CharSize; + LOGFONTW lf; hDC = GetDC(GuiData->hWindow); @@ -542,23 +543,23 @@ * Initialize a new NORMAL font and get its metrics. */ - FontSize.Y = FontSize.Y > 0 ? -MulDiv(FontSize.Y, GetDeviceCaps(hDC, LOGPIXELSY), 72) - : FontSize.Y; + ZeroMemory(&lf, sizeof(lf)); + if (FontSize.Y > 0) + lf.lfHeight = -MulDiv(FontSize.Y, GetDeviceCaps(hDC, LOGPIXELSY), 72); + else + lf.lfHeight = FontSize.Y; - NewFont = CreateFontW(FontSize.Y, - FontSize.X, - 0, - TA_BASELINE, - FontWeight, - FALSE, - FALSE, - FALSE, - OEM_CHARSET, - OUT_DEFAULT_PRECIS, - CLIP_DEFAULT_PRECIS, - DEFAULT_QUALITY, - FIXED_PITCH | FontFamily, - FaceName); + if (FontSize.X > 0) + lf.lfWeight = MulDiv(FontSize.X, GetDeviceCaps(hDC, LOGPIXELSX), 72); + else + lf.lfWeight = FontSize.X; + + lf.lfWeight = FontWeight; + lf.lfCharSet = OEM_CHARSET; + lf.lfPitchAndFamily = FIXED_PITCH | FontFamily; + lstrcpynW(lf.lfFaceName, FaceName, LF_FACESIZE); + + NewFont = CreateFontIndirectW(&lf); if (NewFont == NULL) { DPRINT1("InitFonts: CreateFontW failed\n");