Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
7dbda7a9
Commit
7dbda7a9
authored
Sep 21, 2006
by
Huw Davies
Committed by
Alexandre Julliard
Sep 25, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
gdi32: Make the bitmap font tests locale aware.
parent
e41992cc
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
85 additions
and
31 deletions
+85
-31
font.c
dlls/gdi/tests/font.c
+85
-31
No files found.
dlls/gdi/tests/font.c
View file @
7dbda7a9
...
...
@@ -225,6 +225,21 @@ static INT CALLBACK find_font_proc(const LOGFONT *elf, const TEXTMETRIC *ntm, DW
return
1
;
/* continue enumeration */
}
#define CP1252_BIT 0x00000001
#define CP1250_BIT 0x00000002
#define CP1251_BIT 0x00000004
#define CP1253_BIT 0x00000008
#define CP1254_BIT 0x00000010
#define CP1255_BIT 0x00000020
#define CP1256_BIT 0x00000040
#define CP1257_BIT 0x00000080
#define CP1258_BIT 0x00000100
#define CP874_BIT 0x00010000
#define CP932_BIT 0x00020000
#define CP936_BIT 0x00040000
#define CP949_BIT 0x00080000
#define CP950_BIT 0x00100000
static
void
test_bitmap_font_metrics
(
void
)
{
static
const
struct
font_data
...
...
@@ -232,33 +247,57 @@ static void test_bitmap_font_metrics(void)
const
char
face_name
[
LF_FACESIZE
];
int
weight
,
height
,
ascent
,
descent
,
int_leading
,
ext_leading
;
int
ave_char_width
,
max_char_width
;
DWORD
ansi_bitfield
;
}
fd
[]
=
{
{
"MS Sans Serif"
,
FW_NORMAL
,
13
,
11
,
2
,
2
,
0
,
5
,
11
},
{
"MS Sans Serif"
,
FW_NORMAL
,
16
,
13
,
3
,
3
,
0
,
7
,
14
},
{
"MS Sans Serif"
,
FW_NORMAL
,
20
,
16
,
4
,
4
,
0
,
8
,
16
},
{
"MS Sans Serif"
,
FW_NORMAL
,
24
,
19
,
5
,
6
,
0
,
9
,
20
},
{
"MS Sans Serif"
,
FW_NORMAL
,
29
,
23
,
6
,
5
,
0
,
12
,
25
},
{
"MS Sans Serif"
,
FW_NORMAL
,
37
,
29
,
8
,
5
,
0
,
16
,
32
},
{
"MS Serif"
,
FW_NORMAL
,
10
,
8
,
2
,
2
,
0
,
5
,
8
},
{
"MS Serif"
,
FW_NORMAL
,
11
,
9
,
2
,
2
,
0
,
5
,
9
},
{
"MS Serif"
,
FW_NORMAL
,
13
,
11
,
2
,
2
,
0
,
5
,
12
},
{
"MS Serif"
,
FW_NORMAL
,
16
,
13
,
3
,
3
,
0
,
6
,
16
},
{
"MS Serif"
,
FW_NORMAL
,
19
,
15
,
4
,
3
,
0
,
8
,
19
},
{
"MS Serif"
,
FW_NORMAL
,
21
,
16
,
5
,
3
,
0
,
9
,
23
},
{
"MS Serif"
,
FW_NORMAL
,
27
,
21
,
6
,
3
,
0
,
12
,
27
},
{
"MS Serif"
,
FW_NORMAL
,
35
,
27
,
8
,
3
,
0
,
16
,
34
},
{
"Courier"
,
FW_NORMAL
,
13
,
11
,
2
,
0
,
0
,
8
,
8
},
{
"Courier"
,
FW_NORMAL
,
16
,
13
,
3
,
0
,
0
,
9
,
9
},
{
"Courier"
,
FW_NORMAL
,
20
,
16
,
4
,
0
,
0
,
12
,
12
},
{
"System"
,
FW_BOLD
,
16
,
13
,
3
,
3
,
0
,
7
,
15
},
{
"Small Fonts"
,
FW_NORMAL
,
3
,
2
,
1
,
0
,
0
,
1
,
2
},
{
"Small Fonts"
,
FW_NORMAL
,
5
,
4
,
1
,
1
,
0
,
3
,
4
},
{
"Small Fonts"
,
FW_NORMAL
,
6
,
5
,
1
,
1
,
0
,
3
,
13
},
{
"Small Fonts"
,
FW_NORMAL
,
8
,
7
,
1
,
1
,
0
,
4
,
7
},
{
"Small Fonts"
,
FW_NORMAL
,
10
,
8
,
2
,
2
,
0
,
4
,
8
},
{
"Small Fonts"
,
FW_NORMAL
,
11
,
9
,
2
,
2
,
0
,
5
,
9
}
/* FIXME: add "Fixedsys", "Terminal" */
{
"MS Sans Serif"
,
FW_NORMAL
,
13
,
11
,
2
,
2
,
0
,
5
,
11
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
16
,
13
,
3
,
3
,
0
,
7
,
14
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
20
,
16
,
4
,
4
,
0
,
8
,
16
,
CP1252_BIT
|
CP1251_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
20
,
16
,
4
,
4
,
0
,
8
,
18
,
CP1250_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
24
,
19
,
5
,
6
,
0
,
9
,
19
,
CP1252_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
24
,
19
,
5
,
6
,
0
,
9
,
24
,
CP1250_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
24
,
19
,
5
,
6
,
0
,
9
,
20
,
CP1251_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
29
,
23
,
6
,
5
,
0
,
12
,
24
,
CP1252_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
29
,
23
,
6
,
6
,
0
,
12
,
24
,
CP1250_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
29
,
23
,
6
,
5
,
0
,
12
,
25
,
CP1251_BIT
},
{
"MS Sans Serif"
,
FW_NORMAL
,
37
,
29
,
8
,
5
,
0
,
16
,
32
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
10
,
8
,
2
,
2
,
0
,
4
,
8
,
CP1252_BIT
|
CP1250_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
10
,
8
,
2
,
2
,
0
,
5
,
8
,
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
11
,
9
,
2
,
2
,
0
,
5
,
9
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
13
,
11
,
2
,
2
,
0
,
5
,
11
,
CP1252_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
13
,
11
,
2
,
2
,
0
,
5
,
12
,
CP1250_BIT
|
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
16
,
13
,
3
,
3
,
0
,
6
,
14
,
CP1252_BIT
|
CP1250_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
16
,
13
,
3
,
3
,
0
,
6
,
16
,
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
19
,
15
,
4
,
3
,
0
,
8
,
18
,
CP1252_BIT
|
CP1250_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
19
,
15
,
4
,
3
,
0
,
8
,
19
,
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
21
,
16
,
5
,
3
,
0
,
9
,
17
,
CP1252_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
21
,
16
,
5
,
3
,
0
,
9
,
22
,
CP1250_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
21
,
16
,
5
,
3
,
0
,
9
,
23
,
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
27
,
21
,
6
,
3
,
0
,
12
,
23
,
CP1252_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
27
,
21
,
6
,
3
,
0
,
12
,
26
,
CP1250_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
27
,
21
,
6
,
3
,
0
,
12
,
27
,
CP1251_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
35
,
27
,
8
,
3
,
0
,
16
,
33
,
CP1252_BIT
|
CP1250_BIT
},
{
"MS Serif"
,
FW_NORMAL
,
35
,
27
,
8
,
3
,
0
,
16
,
34
,
CP1251_BIT
},
{
"Courier"
,
FW_NORMAL
,
13
,
11
,
2
,
0
,
0
,
8
,
8
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"Courier"
,
FW_NORMAL
,
16
,
13
,
3
,
0
,
0
,
9
,
9
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"Courier"
,
FW_NORMAL
,
20
,
16
,
4
,
0
,
0
,
12
,
12
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"System"
,
FW_BOLD
,
16
,
13
,
3
,
3
,
0
,
7
,
14
,
CP1252_BIT
},
{
"System"
,
FW_BOLD
,
16
,
13
,
3
,
3
,
0
,
7
,
15
,
CP1250_BIT
|
CP1251_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
3
,
2
,
1
,
0
,
0
,
1
,
2
,
CP1252_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
3
,
2
,
1
,
0
,
0
,
1
,
8
,
CP1250_BIT
|
CP1251_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
5
,
4
,
1
,
1
,
0
,
3
,
4
,
CP1252_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
5
,
4
,
1
,
1
,
0
,
2
,
8
,
CP1250_BIT
|
CP1251_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
6
,
5
,
1
,
1
,
0
,
3
,
13
,
CP1252_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
6
,
5
,
1
,
1
,
0
,
3
,
8
,
CP1250_BIT
|
CP1251_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
8
,
7
,
1
,
1
,
0
,
4
,
7
,
CP1252_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
8
,
7
,
1
,
1
,
0
,
4
,
8
,
CP1250_BIT
|
CP1251_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
10
,
8
,
2
,
2
,
0
,
4
,
8
,
CP1252_BIT
|
CP1250_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
10
,
8
,
2
,
2
,
0
,
5
,
8
,
CP1251_BIT
},
{
"Small Fonts"
,
FW_NORMAL
,
11
,
9
,
2
,
2
,
0
,
5
,
9
,
CP1252_BIT
|
CP1250_BIT
|
CP1251_BIT
},
{
"Fixedsys"
,
FW_NORMAL
,
15
,
12
,
3
,
3
,
0
,
8
,
8
,
CP1252_BIT
|
CP1250_BIT
},
{
"Fixedsys"
,
FW_NORMAL
,
16
,
12
,
4
,
3
,
0
,
8
,
8
,
CP1251_BIT
}
/* FIXME: add "Terminal" */
};
HDC
hdc
;
LOGFONT
lf
;
...
...
@@ -271,18 +310,28 @@ static void test_bitmap_font_metrics(void)
for
(
i
=
0
;
i
<
sizeof
(
fd
)
/
sizeof
(
fd
[
0
]);
i
++
)
{
int
bit
;
memset
(
&
lf
,
0
,
sizeof
(
lf
));
lf
.
lfHeight
=
fd
[
i
].
height
;
strcpy
(
lf
.
lfFaceName
,
fd
[
i
].
face_name
);
ret
=
EnumFontFamilies
(
hdc
,
fd
[
i
].
face_name
,
find_font_proc
,
(
LPARAM
)
&
lf
);
if
(
ret
)
for
(
bit
=
0
;
bit
<
32
;
bit
++
)
{
trace
(
"font %s height %d not found
\n
"
,
fd
[
i
].
face_name
,
fd
[
i
].
height
);
continue
;
}
DWORD
fs
[
2
];
CHARSETINFO
csi
;
trace
(
"found font %s, height %ld
\n
"
,
lf
.
lfFaceName
,
lf
.
lfHeight
);
fs
[
0
]
=
1L
<<
bit
;
fs
[
1
]
=
0
;
if
((
fd
[
i
].
ansi_bitfield
&
fs
[
0
])
==
0
)
continue
;
if
(
!
TranslateCharsetInfo
(
fs
,
&
csi
,
TCI_SRCFONTSIG
))
continue
;
lf
.
lfCharSet
=
csi
.
ciCharset
;
ret
=
EnumFontFamiliesEx
(
hdc
,
&
lf
,
find_font_proc
,
(
LPARAM
)
&
lf
,
0
);
if
(
ret
)
continue
;
trace
(
"found font %s, height %ld charset %x
\n
"
,
lf
.
lfFaceName
,
lf
.
lfHeight
,
lf
.
lfCharSet
);
hfont
=
create_font
(
lf
.
lfFaceName
,
&
lf
);
old_hfont
=
SelectObject
(
hdc
,
hfont
);
...
...
@@ -295,11 +344,16 @@ static void test_bitmap_font_metrics(void)
ok
(
tm
.
tmInternalLeading
==
fd
[
i
].
int_leading
,
"%s(%d): tm.tmInternalLeading %ld != %d
\n
"
,
fd
[
i
].
face_name
,
fd
[
i
].
height
,
tm
.
tmInternalLeading
,
fd
[
i
].
int_leading
);
ok
(
tm
.
tmExternalLeading
==
fd
[
i
].
ext_leading
,
"%s(%d): tm.tmExternalLeading %ld != %d
\n
"
,
fd
[
i
].
face_name
,
fd
[
i
].
height
,
tm
.
tmExternalLeading
,
fd
[
i
].
ext_leading
);
ok
(
tm
.
tmAveCharWidth
==
fd
[
i
].
ave_char_width
,
"%s(%d): tm.tmAveCharWidth %ld != %d
\n
"
,
fd
[
i
].
face_name
,
fd
[
i
].
height
,
tm
.
tmAveCharWidth
,
fd
[
i
].
ave_char_width
);
/* Don't run the max char width test on System/ANSI_CHARSET. We have extra characters in our font
that make the max width bigger */
if
(
strcmp
(
lf
.
lfFaceName
,
"System"
)
||
lf
.
lfCharSet
!=
ANSI_CHARSET
)
ok
(
tm
.
tmMaxCharWidth
==
fd
[
i
].
max_char_width
,
"%s(%d): tm.tmMaxCharWidth %ld != %d
\n
"
,
fd
[
i
].
face_name
,
fd
[
i
].
height
,
tm
.
tmMaxCharWidth
,
fd
[
i
].
max_char_width
);
SelectObject
(
hdc
,
old_hfont
);
DeleteObject
(
hfont
);
}
}
DeleteDC
(
hdc
);
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment