[CONSOLE.CPL]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 13 Apr 2014 01:03:08 +0000 (01:03 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 13 Apr 2014 01:03:08 +0000 (01:03 +0000)
Start to implement the terminal fonts selector: add a basic font enumerator.
The criteria for eligible console fonts are given in http://support.microsoft.com/kb/247815 .
I relax some of them to allow e.g. Courier (New) as potential console fonts, for example.
See the code for more details.

svn path=/trunk/; revision=62730

24 files changed:
reactos/dll/cpl/console/colors.c
reactos/dll/cpl/console/console.c
reactos/dll/cpl/console/font.c
reactos/dll/cpl/console/lang/bg-BG.rc
reactos/dll/cpl/console/lang/cs-CZ.rc
reactos/dll/cpl/console/lang/de-DE.rc
reactos/dll/cpl/console/lang/en-US.rc
reactos/dll/cpl/console/lang/es-ES.rc
reactos/dll/cpl/console/lang/fr-FR.rc
reactos/dll/cpl/console/lang/he-IL.rc
reactos/dll/cpl/console/lang/id-ID.rc
reactos/dll/cpl/console/lang/it-IT.rc
reactos/dll/cpl/console/lang/no-NO.rc
reactos/dll/cpl/console/lang/pl-PL.rc
reactos/dll/cpl/console/lang/ro-RO.rc
reactos/dll/cpl/console/lang/ru-RU.rc
reactos/dll/cpl/console/lang/sk-SK.rc
reactos/dll/cpl/console/lang/sq-AL.rc
reactos/dll/cpl/console/lang/tr-TR.rc
reactos/dll/cpl/console/lang/uk-UA.rc
reactos/dll/cpl/console/lang/zh-CN.rc
reactos/dll/cpl/console/layout.c
reactos/dll/cpl/console/options.c
reactos/dll/cpl/console/resource.h

index 8ddd3a2..a4ff1e7 100644 (file)
@@ -2,7 +2,7 @@
  * PROJECT:         ReactOS Console Configuration DLL
  * LICENSE:         GPL - See COPYING in the top level directory
  * FILE:            dll/win32/console/colors.c
- * PURPOSE:         displays colors dialog
+ * PURPOSE:         Colors dialog
  * PROGRAMMERS:     Johannes Anderwald (johannes.anderwald@reactos.org)
  */
 
index bd4950f..e0c4978 100644 (file)
@@ -2,8 +2,9 @@
  * PROJECT:         ReactOS Console Configuration DLL
  * LICENSE:         GPL - See COPYING in the top level directory
  * FILE:            dll/win32/console/console.c
- * PURPOSE:         initialization of DLL
+ * PURPOSE:         Initialization
  * PROGRAMMERS:     Johannes Anderwald (johannes.anderwald@reactos.org)
+ *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
  */
 
 #include "console.h"
index a265104..58d7948 100644 (file)
@@ -2,8 +2,9 @@
  * PROJECT:         ReactOS Console Configuration DLL
  * LICENSE:         GPL - See COPYING in the top level directory
  * FILE:            dll/win32/console/font.c
- * PURPOSE:         displays font dialog
+ * PURPOSE:         Font dialog
  * PROGRAMMERS:     Johannes Anderwald (johannes.anderwald@reactos.org)
+ *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
  */
 
 #include "console.h"
 #define NDEBUG
 #include <debug.h>
 
+
+//
+// Some temporary code for future reference...
+//
+#if 0
+/*
+ * This code comes from PuTTY
+ */
+{
+    CHOOSEFONT cf;
+    LOGFONT lf;
+    HDC hdc;
+    FontSpec *fs = (FontSpec *)c->data;
+
+    hdc = GetDC(0);
+    lf.lfHeight = -MulDiv(fs->height,
+              GetDeviceCaps(hdc, LOGPIXELSY), 72);
+    ReleaseDC(0, hdc);
+    lf.lfWidth = lf.lfEscapement = lf.lfOrientation = 0;
+    lf.lfItalic = lf.lfUnderline = lf.lfStrikeOut = 0;
+    lf.lfWeight = (fs->isbold ? FW_BOLD : 0);
+    lf.lfCharSet = fs->charset;
+    lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
+    lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
+    lf.lfQuality = DEFAULT_QUALITY;
+    lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
+    strncpy(lf.lfFaceName, fs->name,
+        sizeof(lf.lfFaceName) - 1);
+    lf.lfFaceName[sizeof(lf.lfFaceName) - 1] = '\0';
+
+    cf.lStructSize = sizeof(cf);
+    cf.hwndOwner = dp->hwnd;
+    cf.lpLogFont = &lf;
+    cf.Flags = (dp->fixed_pitch_fonts ? CF_FIXEDPITCHONLY : 0) |
+            CF_FORCEFONTEXIST | CF_INITTOLOGFONTSTRUCT | CF_SCREENFONTS;
+
+    if (ChooseFont(&cf)) {
+            fs = fontspec_new(lf.lfFaceName, (lf.lfWeight == FW_BOLD),
+                              cf.iPointSize / 10, lf.lfCharSet);
+    dlg_fontsel_set(ctrl, dp, fs);
+            fontspec_free(fs);
+
+    ctrl->generic.handler(ctrl, dp, dp->data, EVENT_VALCHANGE);
+    }
+}
+
+/*
+ * This code is from consrv.
+ */
+{
+    if (!GetTextMetricsW(drawItem->hDC, &Metrics))
+    {
+        DPRINT1("PaintText: GetTextMetrics failed\n");
+        SelectObject(drawItem->hDC, OldFont);
+        DeleteObject(Font);
+        return;
+    }
+    GuiData->CharWidth  = Metrics.tmMaxCharWidth;
+    GuiData->CharHeight = Metrics.tmHeight + Metrics.tmExternalLeading;
+
+    /* Measure real char width more precisely if possible. */
+    if (GetTextExtentPoint32W(drawItem->hDC, L"R", 1, &CharSize))
+        GuiData->CharWidth = CharSize.cx;
+}
+#endif
+
+
+BOOL CALLBACK
+EnumFontFamExProc(PLOGFONTW    lplf,
+                  PNEWTEXTMETRICW lpntm,
+                  DWORD  FontType,
+                  LPARAM lParam)
+{
+    HWND hwndCombo = (HWND)lParam;
+    LPWSTR pszName = lplf->lfFaceName;
+
+    BOOL fFixed;
+    BOOL fTrueType;
+
+    /* Record the font's attributes (Fixedwidth and Truetype) */
+    fFixed    = ((lplf->lfPitchAndFamily & 0x03) == FIXED_PITCH);
+    fTrueType = (lplf->lfOutPrecision == OUT_STROKE_PRECIS) ? TRUE : FALSE;
+
+    /*
+     * According to: http://support.microsoft.com/kb/247815
+     * the criteria for console-eligible fonts are:
+     * - The font must be a fixed-pitch font.
+     * - The font cannot be an italic font.
+     * - The font cannot have a negative A or C space.
+     * - If it is a TrueType font, it must be FF_MODERN.
+     * - If it is not a TrueType font, it must be OEM_CHARSET.
+     *
+     * Non documented: vertical fonts are forbidden (their name start with a '@').
+     *
+     * Additional criteria for Asian installations:
+     * - If it is not a TrueType font, the face name must be "Terminal".
+     * - If it is an Asian TrueType font, it must also be an Asian character set.
+     *
+     * To install additional TrueType fonts to be available for the console,
+     * add entries of type REG_SZ named "0", "00" etc... in:
+     * HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
+     * The names of the fonts listed there should match those in:
+     * HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Fonts
+     */
+
+     /*
+      * In ReactOS, we relax some criteria:
+      * - We allow fixed-pitch FF_MODERN (Monospace) TrueType fonts
+      *   that can be italic and have negative A or C space.
+      * - If it is not a TrueType font, it can be from another character set
+      *   than OEM_CHARSET.
+      * - We do not support Asian criteria at the moment.
+      * - We do not look into the magic registry key mentioned above.
+      */
+
+    /* Reject variable width fonts */
+    if (((lplf->lfPitchAndFamily & 0x03) != FIXED_PITCH)
+#if 0 /* Reject italic and TrueType fonts with negative A or C space */
+        || (lplf->lfItalic)
+        || !(lpntm->ntmFlags & NTM_NONNEGATIVE_AC)
+#endif
+        )
+    {
+        DPRINT1("Font '%S' rejected because it%s (lfPitchAndFamily = %d).\n",
+                pszName, !(lplf->lfPitchAndFamily & FIXED_PITCH) ? "'s not FIXED_PITCH" : (!(lpntm->ntmFlags & NTM_NONNEGATIVE_AC) ? " has negative A or C space" : " is broken"),
+                lplf->lfPitchAndFamily);
+        return TRUE;
+    }
+
+    /* Reject TrueType fonts that are not FF_MODERN */
+    if ((FontType == TRUETYPE_FONTTYPE) && ((lplf->lfPitchAndFamily & 0xF0) != FF_MODERN))
+    {
+        DPRINT1("TrueType font '%S' rejected because it's not FF_MODERN (lfPitchAndFamily = %d)\n", pszName, lplf->lfPitchAndFamily);
+        return TRUE;
+    }
+
+    /* Reject non-TrueType fonts that are not OEM */
+#if 0
+    if ((FontType != TRUETYPE_FONTTYPE) && (lplf->lfCharSet != OEM_CHARSET))
+    {
+        DPRINT1("Non-TrueType font '%S' rejected because it's not OEM_CHARSET %d\n", pszName, lplf->lfCharSet);
+        return TRUE;
+    }
+#else // Improved criterium
+    if ((FontType != TRUETYPE_FONTTYPE) &&
+        ((lplf->lfCharSet != ANSI_CHARSET) && (lplf->lfCharSet != DEFAULT_CHARSET) && (lplf->lfCharSet != OEM_CHARSET)))
+    {
+        DPRINT1("Non-TrueType font '%S' rejected because it's not ANSI_CHARSET or DEFAULT_CHARSET or OEM_CHARSET (lfCharSet = %d)\n", pszName, lplf->lfCharSet);
+        return TRUE;
+    }
+#endif
+
+    /* Reject fonts that are vertical (tategaki) */
+    if (pszName[0] == L'@')
+    {
+        DPRINT1("Font '%S' rejected because it's vertical\n", pszName);
+        return TRUE;
+    }
+
+#if 0 // For Asian installations only
+    /* Reject non-TrueType fonts that are not Terminal */
+    if ((FontType != TRUETYPE_FONTTYPE) && (wcscmp(pszName, L"Terminal") != 0))
+    {
+        DPRINT1("Non-TrueType font '%S' rejected because it's not Terminal\n", pszName);
+        return TRUE;
+    }
+
+    // TODO: Asian TrueType font must also be an Asian character set.
+#endif
+
+    /* Make sure the font doesn't already exist in the list */
+    if (SendMessageW(hwndCombo, LB_FINDSTRINGEXACT, 0, (LPARAM)pszName) == LB_ERR)
+    {
+        /* Add the font */
+        INT idx = (INT)SendMessageW(hwndCombo, LB_ADDSTRING, 0, (LPARAM)pszName);
+
+        DPRINT1("Add font '%S' (lfPitchAndFamily = %d)\n", pszName, lplf->lfPitchAndFamily);
+
+        /* Store this information in the list-item's userdata area */
+        SendMessageW(hwndCombo, LB_SETITEMDATA, idx, MAKEWPARAM(fFixed, fTrueType));
+    }
+
+    return TRUE;
+}
+
 INT_PTR
 CALLBACK
 FontProc(HWND hwndDlg,
@@ -18,23 +204,48 @@ FontProc(HWND hwndDlg,
          WPARAM wParam,
          LPARAM lParam)
 {
-    LPDRAWITEMSTRUCT drawItem;
     PCONSOLE_PROPS pConInfo = (PCONSOLE_PROPS)GetWindowLongPtr(hwndDlg, DWLP_USER);
+    PGUI_CONSOLE_INFO GuiInfo = (pConInfo ? pConInfo->TerminalInfo.TermInfo : NULL);
 
-    UNREFERENCED_PARAMETER(hwndDlg);
     UNREFERENCED_PARAMETER(wParam);
 
     switch (uMsg)
     {
         case WM_INITDIALOG:
         {
+            HDC  hDC;
+            HWND hwndCombo;
+            LOGFONTW lf;
+            INT idx;
+
             pConInfo = (PCONSOLE_PROPS)((LPPROPSHEETPAGE)lParam)->lParam;
+            GuiInfo  = pConInfo->TerminalInfo.TermInfo;
             SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pConInfo);
+
+            ZeroMemory(&lf, sizeof(lf));
+            lf.lfCharSet  = DEFAULT_CHARSET; // OEM_CHARSET;
+            // lf.lfPitchAndFamily = FIXED_PITCH | FF_DONTCARE;
+            // lf.lfFaceName = L"";
+
+            hDC = GetDC(NULL);
+            hwndCombo = GetDlgItem(hwndDlg, IDC_LBOX_FONTTYPE);
+            EnumFontFamiliesExW(hDC, &lf, (FONTENUMPROCW)EnumFontFamExProc, (LPARAM)hwndCombo, 0);
+            ReleaseDC(NULL, hDC);
+
+            DPRINT1("GuiInfo->FaceName = '%S'\n", GuiInfo->FaceName);
+            idx = (INT)SendMessageW(hwndCombo, LB_FINDSTRINGEXACT, 0, (LPARAM)GuiInfo->FaceName);
+            if (idx != LB_ERR)
+            {
+                SendMessageW(hwndCombo, LB_SETCURSEL, (WPARAM)idx, 0);
+            }
+
             return TRUE;
         }
+
         case WM_DRAWITEM:
         {
-            drawItem = (LPDRAWITEMSTRUCT)lParam;
+            LPDRAWITEMSTRUCT drawItem = (LPDRAWITEMSTRUCT)lParam;
+
             if (drawItem->CtlID == IDC_STATIC_FONT_WINDOW_PREVIEW)
             {
                 PaintConsole(drawItem, pConInfo);
@@ -45,10 +256,9 @@ FontProc(HWND hwndDlg,
             }
             return TRUE;
         }
+
         default:
-        {
             break;
-        }
     }
 
     return FALSE;
index a256bd1..b7f0b9d 100644 (file)
@@ -35,10 +35,10 @@ BEGIN
     LTEXT "Прозоречен преглед:", -1, 10, 10, 94, 10
     LTEXT "Размер:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Шрифт:", -1, 10, 105, 33, 10
     CHECKBOX "&Получери шрифтове", IDC_CHECK_BOLD_FONTS, 38, 105, 85, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Всеки знак е:", -1, 124, 166, 75, 10
index dd06891..0cfef2c 100644 (file)
@@ -41,10 +41,10 @@ BEGIN
     LTEXT "Náhled okna:", -1, 10, 10, 94, 10
     LTEXT "Velikost:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Písmo:", -1, 10, 105, 33, 10
     CHECKBOX "&Tučná písma", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Každý znak je:", -1, 124, 166, 75, 10
index 86cc0c0..8a24137 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Fenstervorschau", -1, 10, 7, 65, 10
     LTEXT "Größe", -1, 130, 10, 30, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70
-    LISTBOX IDC_LBOX_FONTS, 130, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Schrift", -1, 10, 105, 35, 10
     CHECKBOX "&Fette Schriften", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 50, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Jedes Zeichen ist:", -1, 130, 165, 75, 10
index 0bf0d28..a389a6a 100644 (file)
@@ -35,10 +35,10 @@ BEGIN
     LTEXT "Window Preview:", -1, 10, 10, 94, 10
     LTEXT "Size:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Font:", -1, 10, 105, 33, 10
     CHECKBOX "&Bold fonts", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Each character is:", -1, 124, 166, 75, 10
index ccffc4d..86611a9 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Ventana de Previsualización", -1, 10, 7, 65, 10
     LTEXT "Tamaño", -1, 130, 10, 30, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70
-    LISTBOX IDC_LBOX_FONTS, 130, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Fuente", -1, 10, 105, 35, 10
     CHECKBOX "&Negrita", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 50, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Cada caracter es:", -1, 130, 165, 75, 10
index 568f783..fcfc76e 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Fenêtre de Prévisualisation :", -1, 10, 10, 94, 10
     LTEXT "Taille :", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Police :", -1, 10, 105, 33, 10
     CHECKBOX "&Gras", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Chaque caractère est :", -1, 124, 166, 75, 10
index 0db39a4..2ee72d7 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "תצוגה מקדימה:", -1, 10, 10, 94, 10
     LTEXT "גודל:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "גופן:", -1, 10, 105, 33, 10
     CHECKBOX "גופנים מודגשים", IDC_CHECK_BOLD_FONTS, 41, 105, 33, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Each character is:", -1, 124, 166, 75, 10
index 605765a..4232a3b 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Tinjauan Jendela", -1, 10, 7, 65, 10
     LTEXT "Ukuran", -1, 130, 10, 30, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70
-    LISTBOX IDC_LBOX_FONTS, 130, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Font", -1, 10, 105, 35, 10
     CHECKBOX "Font &tebal", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 50, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Setiap karakter adalah:", -1, 130, 165, 75, 10
index 368ed95..395c6c4 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Anteprima", -1, 10, 7, 65, 10
     LTEXT "Dimansione", -1, 130, 10, 30, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70
-    LISTBOX IDC_LBOX_FONTS, 130, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Font", -1, 10, 105, 35, 10
     CHECKBOX "&Grassetto fonts", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 50, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Ogni carattere è:", -1, 130, 165, 75, 10
index 6da5674..8a3eb71 100644 (file)
@@ -35,10 +35,10 @@ BEGIN
     LTEXT "Vindu forhåndsvisning:", -1, 10, 10, 94, 10
     LTEXT "Størrelse:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Skrift:", -1, 10, 105, 33, 10
     CHECKBOX "&Fet skrift", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Hver tegn er:", -1, 124, 166, 75, 10
index 51b5bb0..f7e8d7c 100644 (file)
@@ -42,10 +42,10 @@ BEGIN
     LTEXT "Okno podglądu", -1, 10, 7, 65, 10
     LTEXT "Rozmiar", -1, 130, 10, 30, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 115, 70
-    LISTBOX IDC_LBOX_FONTS, 130, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 130, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Czcionka", -1, 10, 105, 35, 10
     CHECKBOX "&Pogrubiona czcionka", IDC_CHECK_BOLD_FONTS, 45, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 50, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 50, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Pogrubiona czcionka:", -1, 130, 165, 75, 10
index 90e8772..6f17ed3 100644 (file)
@@ -44,10 +44,10 @@ BEGIN
     LTEXT "Previzionare:", -1, 10, 10, 94, 10
     LTEXT "&Mărime:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "F&ont:", -1, 10, 105, 33, 10
     CHECKBOX "&Aldin", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Fiecare caracter are:", -1, 124, 166, 75, 10
index 359c1d0..13e60dd 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Окно предпросмотра:", -1, 10, 10, 94, 10
     LTEXT "Размер:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Шрифт:", -1, 10, 105, 33, 10
     CHECKBOX "&Жирный", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Каждый символ:", -1, 124, 166, 75, 10
index e5d5f12..09df767 100644 (file)
@@ -39,10 +39,10 @@ BEGIN
     LTEXT "Ukážka okna:", -1, 10, 10, 94, 10
     LTEXT "Veľkosť:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Písmo:", -1, 10, 105, 33, 10
     CHECKBOX "&Tučné písma", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Každý znak je:", -1, 124, 166, 75, 10
index ee7fefd..b61d448 100644 (file)
@@ -39,10 +39,10 @@ BEGIN
     LTEXT "Dritare Preview:", -1, 10, 10, 94, 10
     LTEXT "Masë:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Statik", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Font:", -1, 10, 105, 33, 10
     CHECKBOX "&Bold fonts", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | WS_VSCROLL
     GROUPBOX "", IDC_GROUPBOX_FONT_NAME, 6, 156, 241, 50
     CONTROL "", IDC_STATIC_SELECT_FONT_PREVIEW, "Statik", SS_OWNERDRAW | SS_SUNKEN, 16, 165, 95, 35
     LTEXT "Çdo krarakter është:", -1, 124, 166, 75, 10
index b467558..4801f2d 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Pencere Ön İzlemesi:", -1, 10, 10, 94, 10
     LTEXT "Boyutlar:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Yazı Tipi:", -1, 10, 105, 33, 10
     CHECKBOX "&Kalın Yazı Tipleri", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Her bir damga:", -1, 124, 166, 75, 10
index a5ab20c..c98f33c 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "Зразок вікна", -1, 10, 10, 94, 10
     LTEXT "Size:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&Шрифт:", -1, 10, 105, 33, 10
     CHECKBOX "&Жирні", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "Кожен символ:", -1, 124, 166, 75, 10
index acbba33..409f531 100644 (file)
@@ -37,10 +37,10 @@ BEGIN
     LTEXT "窗口预览:", -1, 10, 10, 94, 10
     LTEXT "大小:", -1, 180, 10, 36, 10
     CONTROL "", IDC_STATIC_FONT_WINDOW_PREVIEW, "Static", SS_OWNERDRAW | SS_SUNKEN, 10, 20, 163, 74
-    LISTBOX IDC_LBOX_FONTS, 181, 20, 55, 80, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTSIZE, 181, 20, 55, 80, LBS_SORT | LBS_DISABLENOSCROLL | WS_VSCROLL
     LTEXT "&字体(&F):", -1, 10, 105, 33, 10
     CHECKBOX "粗体(&B)", IDC_CHECK_BOLD_FONTS, 56, 105, 60, 10
-    LISTBOX IDC_LBOX_TYPE, 10, 120, 110, 40, LBS_DISABLENOSCROLL | WS_VSCROLL
+    LISTBOX IDC_LBOX_FONTTYPE, 10, 120, 110, 40, LBS_SORT | LBS_HASSTRINGS | LBS_DISABLENOSCROLL | 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
     LTEXT "每个字符为:", -1, 124, 166, 75, 10
index e88ac58..6651bb4 100644 (file)
@@ -2,8 +2,9 @@
  * PROJECT:         ReactOS Console Configuration DLL
  * LICENSE:         GPL - See COPYING in the top level directory
  * FILE:            dll/win32/console/layout.c
- * PURPOSE:         displays layout dialog
+ * PURPOSE:         Layout dialog
  * PROGRAMMERS:     Johannes Anderwald (johannes.anderwald@reactos.org)
+ *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
  */
 
 #include "console.h"
index d0e5bc5..c5b0056 100644 (file)
@@ -2,7 +2,7 @@
  * PROJECT:         ReactOS Console Configuration DLL
  * LICENSE:         GPL - See COPYING in the top level directory
  * FILE:            dll/win32/console/options.c
- * PURPOSE:         displays options dialog
+ * PURPOSE:         Options dialog
  * PROGRAMMERS:     Johannes Anderwald (johannes.anderwald@reactos.org)
  */
 
index c0537b9..18c53cc 100644 (file)
@@ -34,9 +34,9 @@
 #define IDC_STATIC_SELECT_FONT_PREVIEW 401
 #define IDC_FONT_SIZE_X                402
 #define IDC_FONT_SIZE_Y                403
-#define IDC_LBOX_FONTS                 404
+#define IDC_LBOX_FONTSIZE              404
 #define IDC_STATIC_FONT_WINDOW_PREVIEW 405
-#define IDC_LBOX_TYPE                  406
+#define IDC_LBOX_FONTTYPE              406
 #define IDC_GROUPBOX_FONT_NAME         407
 
 /* Layout dialog */