Author: hbelusca
Date: Fri Aug 15 20:00:47 2014
New Revision: 63896
URL: 
http://svn.reactos.org/svn/reactos?rev=63896&view=rev
Log:
[CONSOLE.CPL][CONSRV]: Font fix n°1: correctly use the font size (for TT fonts only, at
the moment).
Modified:
    branches/condrv_restructure/dll/cpl/console/font.c
    branches/condrv_restructure/dll/cpl/console/layout.c
    branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c
    branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/guisettings.h
Modified: branches/condrv_restructure/dll/cpl/console/font.c
URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/cons…
==============================================================================
--- branches/condrv_restructure/dll/cpl/console/font.c  [iso-8859-1] (original)
+++ branches/condrv_restructure/dll/cpl/console/font.c  [iso-8859-1] Fri Aug 15 20:00:47
2014
@@ -72,7 +72,7 @@
     GuiData->CharWidth  = Metrics.tmMaxCharWidth;
     GuiData->CharHeight = Metrics.tmHeight + Metrics.tmExternalLeading;
-    /* Measure real char width more precisely if possible. */
+    /* Measure real char width more precisely if possible */
     if (GetTextExtentPoint32W(drawItem->hDC, L"R", 1, &CharSize))
         GuiData->CharWidth = CharSize.cx;
 }
@@ -102,12 +102,9 @@
     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;
+    // BOOL fFixed    = ((lplf->lfPitchAndFamily & 0x03) == FIXED_PITCH);
+    // BOOL fTrueType = (lplf->lfOutPrecision == OUT_STROKE_PRECIS);
     /*
      * According to: 
http://support.microsoft.com/kb/247815
@@ -158,7 +155,8 @@
     /* 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);
+        DPRINT1("TrueType font '%S' rejected because it's not FF_MODERN
(lfPitchAndFamily = %d)\n",
+                pszName, lplf->lfPitchAndFamily);
         return TRUE;
     }
@@ -166,14 +164,16 @@
 #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);
+        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);
+        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
@@ -205,7 +205,8 @@
         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));
+        // SendMessageW(hwndCombo, LB_SETITEMDATA, idx, MAKEWPARAM(fFixed, fTrueType));
+        SendMessageW(hwndCombo, LB_SETITEMDATA, idx, (WPARAM)FontType);
     }
     return TRUE;
@@ -247,7 +248,7 @@
     }
     else
     {
-        int i;
+        ULONG i;
         for (i = 0; i < sizeof(TrueTypePoints) / sizeof(TrueTypePoints[0]); ++i)
         {
             swprintf(FontSize, L"%2d", TrueTypePoints[i]);
@@ -271,7 +272,6 @@
         return FALSE;
     }
 }
-
 static VOID
Modified: branches/condrv_restructure/dll/cpl/console/layout.c
URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/dll/cpl/cons…
==============================================================================
--- branches/condrv_restructure/dll/cpl/console/layout.c        [iso-8859-1] (original)
+++ branches/condrv_restructure/dll/cpl/console/layout.c        [iso-8859-1] Fri Aug 15
20:00:47 2014
@@ -107,6 +107,8 @@
     HBRUSH hBrush;
     HFONT Font, OldFont;
+    COORD FontSize = GuiInfo->FontSize;
+
     if (TextMode == Screen)
         CurrentAttrib = pConInfo->ci.ScreenAttrib;
     else if (TextMode == Popup)
@@ -120,8 +122,11 @@
     hBrush = CreateSolidBrush(nbkColor);
     if (!hBrush) return FALSE;
-    Font = CreateFontW(GuiInfo->FontSize.Y,
-                       GuiInfo->FontSize.X,
+    FontSize.Y = FontSize.Y > 0 ? -MulDiv(FontSize.Y, GetDeviceCaps(drawItem->hDC,
LOGPIXELSY), 72)
+                                : FontSize.Y;
+
+    Font = CreateFontW(FontSize.Y,
+                       FontSize.X,
                        0,
                        TA_BASELINE,
                        GuiInfo->FontWeight,
@@ -131,7 +136,7 @@
                        OEM_CHARSET,
                        OUT_DEFAULT_PRECIS,
                        CLIP_DEFAULT_PRECIS,
-                       DEFAULT_QUALITY, // NONANTIALIASED_QUALITY ; ANTIALIASED_QUALITY
+                       DEFAULT_QUALITY,
                        FIXED_PITCH | GuiInfo->FontFamily,
                        GuiInfo->FaceName);
     if (Font == NULL)
@@ -154,7 +159,7 @@
     DrawTextW(drawItem->hDC, szPreviewText, wcslen(szPreviewText),
&drawItem->rcItem, 0);
     SetTextColor(drawItem->hDC, ptColor);
     SetBkColor(drawItem->hDC, pbkColor);
-    DeleteObject((HGDIOBJ)hBrush);
+    DeleteObject(hBrush);
     SelectObject(drawItem->hDC, OldFont);
     DeleteObject(Font);
Modified: branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c
URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/conwnd.c
[iso-8859-1] Fri Aug 15 20:00:47 2014
@@ -539,9 +539,14 @@
     TEXTMETRICW Metrics;
     SIZE CharSize;
+    hDC = GetDC(GuiData->hWindow);
+
     /*
      * Initialize a new NORMAL font and get its metrics.
      */
+
+    FontSize.Y = FontSize.Y > 0 ? -MulDiv(FontSize.Y, GetDeviceCaps(hDC, LOGPIXELSY),
72)
+                                : FontSize.Y;
     NewFont = CreateFontW(FontSize.Y,
                           FontSize.X,
@@ -554,20 +559,13 @@
                           OEM_CHARSET,
                           OUT_DEFAULT_PRECIS,
                           CLIP_DEFAULT_PRECIS,
-                          DEFAULT_QUALITY, // NONANTIALIASED_QUALITY ;
ANTIALIASED_QUALITY
+                          DEFAULT_QUALITY,
                           FIXED_PITCH | FontFamily,
                           FaceName);
     if (NewFont == NULL)
     {
         DPRINT1("InitFonts: CreateFontW failed\n");
-        return FALSE;
-    }
-
-    hDC = GetDC(GuiData->hWindow);
-    if (hDC == NULL)
-    {
-        DPRINT1("InitFonts: GetDC failed\n");
-        DeleteObject(NewFont);
+        ReleaseDC(GuiData->hWindow, hDC);
         return FALSE;
     }
@@ -591,7 +589,7 @@
     GuiData->CharWidth  = Metrics.tmMaxCharWidth;
     GuiData->CharHeight = Metrics.tmHeight + Metrics.tmExternalLeading;
-    /* Measure real char width more precisely if possible. */
+    /* Measure real char width more precisely if possible */
     if (GetTextExtentPoint32W(hDC, L"R", 1, &CharSize))
         GuiData->CharWidth = CharSize.cx;
Modified:
branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/guisettings.h
URL:
http://svn.reactos.org/svn/reactos/branches/condrv_restructure/win32ss/user…
==============================================================================
--- branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/guisettings.h
[iso-8859-1] (original)
+++ branches/condrv_restructure/win32ss/user/winsrv/consrv/frontends/gui/guisettings.h
[iso-8859-1] Fri Aug 15 20:00:47 2014
@@ -76,7 +76,7 @@
     COLORREF    ColorTable[16];
     ULONG       CodePage;
-    HWND        HWnd;
+    HWND        hWnd;
     WCHAR       ConsoleTitle[256];
 } CONSOLE_STATE_INFO, *PCONSOLE_STATE_INFO;