gdi32: Fix parameters of some GDI stock fonts. Resend.
Dmitry Timoshkov
dmitry at baikal.ru
Sun Jun 3 22:05:25 CDT 2012
Is there anything wrong with this patch?
---
dlls/gdi32/gdiobj.c | 140 +++++++++++++++++++++++------------------------
dlls/gdi32/tests/font.c | 81 +++++++++++++++++++++++++++
2 files changed, 151 insertions(+), 70 deletions(-)
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index 7d238a9..4164d3a 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -130,308 +130,308 @@ static const struct DefaultFontInfo default_fonts[] =
{
{ ANSI_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ANSI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ EASTEUROPE_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, EASTEUROPE_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ RUSSIAN_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, RUSSIAN_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ GREEK_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GREEK_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ TURKISH_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, TURKISH_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ HEBREW_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HEBREW_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ ARABIC_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, ARABIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ BALTIC_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, BALTIC_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ THAI_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, THAI_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ SHIFTJIS_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 9, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, SHIFTJIS_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ GB2312_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 9, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, GB2312_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ HANGEUL_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 9, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, HANGEUL_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ CHINESEBIG5_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 9, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, CHINESEBIG5_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
},
{ JOHAB_CHARSET,
{ /* System */
- 16, 7, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
+ 16, 7, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'S','y','s','t','e','m','\0'}
},
{ /* Device Default */
- 16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
+ 16, 0, 0, 0, FW_BOLD, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
- {'\0'}
+ {'S','y','s','t','e','m','\0'}
},
{ /* System Fixed */
16, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN,
- {'\0'}
+ {'C','o','u','r','i','e','r','\0'}
},
{ /* DefaultGuiFont */
- 8, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
+ -11, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, JOHAB_CHARSET,
0, 0, DEFAULT_QUALITY, VARIABLE_PITCH | FF_SWISS,
{'M','S',' ','S','h','e','l','l',' ','D','l','g','\0'}
},
diff --git a/dlls/gdi32/tests/font.c b/dlls/gdi32/tests/font.c
index e15ba6f..7390303 100644
--- a/dlls/gdi32/tests/font.c
+++ b/dlls/gdi32/tests/font.c
@@ -4350,10 +4350,91 @@ static void test_east_asian_font_selection(void)
ReleaseDC(NULL, hdc);
}
+static int get_font_dpi(const LOGFONT *lf)
+{
+ HDC hdc = CreateCompatibleDC(0);
+ HFONT hfont;
+ TEXTMETRIC tm;
+ int ret;
+
+ hfont = CreateFontIndirect(lf);
+ ok(hfont != 0, "CreateFontIndirect failed\n");
+
+ SelectObject(hdc, hfont);
+ ret = GetTextMetrics(hdc, &tm);
+ ok(ret, "GetTextMetrics failed\n");
+ ret = tm.tmDigitizedAspectX;
+
+ DeleteDC(hdc);
+ DeleteObject(hfont);
+
+ return ret;
+}
+
+static void test_stock_fonts(void)
+{
+ static const struct test_data
+ {
+ int id, weight, height, dpi;
+ const char face_name[LF_FACESIZE];
+ } td[] =
+ {
+ { ANSI_FIXED_FONT, FW_NORMAL, 12, 96, "Courier" },
+ { ANSI_FIXED_FONT, FW_NORMAL, 12, 120, "Courier" },
+ { ANSI_VAR_FONT, FW_NORMAL, 12, 96, "MS Sans Serif" },
+ { ANSI_VAR_FONT, FW_NORMAL, 12, 120, "MS Sans Serif" },
+ { SYSTEM_FONT, FW_BOLD, 16, 96, "System" },
+ { SYSTEM_FONT, FW_BOLD, 20, 120, "System" },
+ { DEVICE_DEFAULT_FONT, FW_BOLD, 16, 96, "System" },
+ { DEVICE_DEFAULT_FONT, FW_BOLD, 20, 120, "System" },
+ { DEFAULT_GUI_FONT, FW_NORMAL, -11, 96, "MS Shell Dlg" },
+ { DEFAULT_GUI_FONT, FW_NORMAL, -13, 120, "MS Shell Dlg" }
+
+ /*{ SYSTEM_FIXED_FONT, FW_NORMAL, 15, 96, "Fixedsys" },*/
+ /*{ SYSTEM_FIXED_FONT, FW_NORMAL, 20, 120, "Fixedsys" },*/
+ /*{ OEM_FIXED_FONT, FW_NORMAL, 16, 96, "Terminal" },*/
+ /*{ OEM_FIXED_FONT, FW_NORMAL, 20, 120, "Terminal" },*/
+ };
+ int i;
+
+ for (i = 0; i < sizeof(td)/sizeof(td[0]); i++)
+ {
+ HFONT hfont;
+ LOGFONT lf;
+ int ret;
+
+ hfont = GetStockObject(td[i].id);
+ ok(hfont != 0, "%d: GetStockObject(%d) failed\n", i, td[i].id);
+
+ ret = GetObject(hfont, sizeof(lf), &lf);
+ if (ret != sizeof(lf))
+ {
+ /* NT4 */
+ win_skip("%d: GetObject returned %d instead of sizeof(LOGFONT)\n", i, ret);
+ continue;
+ }
+
+ ret = get_font_dpi(&lf);
+ if (ret != td[i].dpi)
+ {
+ trace("%d: font %s %d dpi doesn't match test data %d\n", i, lf.lfFaceName, ret, td[i].dpi);
+ continue;
+ }
+
+ ok(td[i].weight == lf.lfWeight, "%d: expected lfWeight %d, got %d\n", i, td[i].weight, lf.lfWeight);
+ if (td[i].height < 0) /* FIXME: remove once Wine is fixed */
+ todo_wine ok(td[i].height == lf.lfHeight, "%d: expected lfHeight %d, got %d\n", i, td[i].height, lf.lfHeight);
+ else
+ ok(td[i].height == lf.lfHeight, "%d: expected lfHeight %d, got %d\n", i, td[i].height, lf.lfHeight);
+ ok(!lstrcmp(td[i].face_name, lf.lfFaceName), "%d: expected lfFaceName %s, got %s\n", i, td[i].face_name, lf.lfFaceName);
+ }
+}
+
START_TEST(font)
{
init();
+ test_stock_fonts();
test_logfont();
test_bitmap_font();
test_outline_font();
--
1.7.10.1
More information about the wine-patches
mailing list