summaryrefslogtreecommitdiff
path: root/pango/pangowin32-fontmap.c
diff options
context:
space:
mode:
authorTor Lillqvist <tml@novell.com>2007-06-12 10:27:29 +0000
committerTor Lillqvist <tml@src.gnome.org>2007-06-12 10:27:29 +0000
commit780ab5c97ad314bb1d8def7988e602ea1977b1e1 (patch)
tree395e84f821835aae063d4b41055de50015b39563 /pango/pangowin32-fontmap.c
parent356746d28aaf516ea605060cef991f6e29034a66 (diff)
downloadpango-780ab5c97ad314bb1d8def7988e602ea1977b1e1.tar.gz
Add is_synthetic field.
2007-06-12 Tor Lillqvist <tml@novell.com> * pango/pangowin32-private.h (struct PangoWin32Face: Add is_synthetic field. * pango/pangowin32-fontmap.c: Implement is_synthesized. * pango/pangocairo-win32font.c * pango/pangocairo-win32fontmap.c: Update for the changes to PangoCairoFontMap and PangoCairoFont. svn path=/trunk/; revision=2347
Diffstat (limited to 'pango/pangowin32-fontmap.c')
-rw-r--r--pango/pangowin32-fontmap.c29
1 files changed, 22 insertions, 7 deletions
diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c
index b9a5e055..ad5b143d 100644
--- a/pango/pangowin32-fontmap.c
+++ b/pango/pangowin32-fontmap.c
@@ -85,7 +85,8 @@ static PangoFont *pango_win32_font_map_real_find_font (PangoWin32FontMap
static void pango_win32_fontmap_cache_clear (PangoWin32FontMap *win32fontmap);
static void pango_win32_insert_font (PangoWin32FontMap *fontmap,
- LOGFONTW *lfp);
+ LOGFONTW *lfp,
+ gboolean is_synthetic);
static PangoWin32FontMap *default_fontmap = NULL;
@@ -174,7 +175,7 @@ pango_win32_inner_enum_proc (LOGFONTW *lfp,
* Asian fonts with @ prepended to their name, ignore them.
*/
if (lfp->lfFaceName[0] != '@')
- pango_win32_insert_font (win32fontmap, lfp);
+ pango_win32_insert_font (win32fontmap, lfp, FALSE);
return 1;
}
@@ -268,7 +269,7 @@ _pango_win32_font_map_init (PangoWin32FontMap *win32fontmap)
{
LOGFONTW logfontw = *((LOGFONTW *)list->data);
logfontw.lfItalic = 1;
- pango_win32_insert_font (win32fontmap, &logfontw);
+ pango_win32_insert_font (win32fontmap, &logfontw, TRUE);
list = list->next;
}
g_slist_free (helper.list);
@@ -996,7 +997,8 @@ pango_win32_font_description_from_logfontw (const LOGFONTW *lfp)
*/
static void
pango_win32_insert_font (PangoWin32FontMap *win32fontmap,
- LOGFONTW *lfp)
+ LOGFONTW *lfp,
+ gboolean is_synthetic)
{
LOGFONTW *lfp2 = NULL;
PangoFontDescription *description;
@@ -1079,16 +1081,20 @@ pango_win32_insert_font (PangoWin32FontMap *win32fontmap,
}
win32face = g_object_new (PANGO_WIN32_TYPE_FACE, NULL);
- win32face->description = description;
- win32face->cached_fonts = NULL;
+ win32face->logfontw = *lfp;
+ win32face->description = description;
for (i = 0; i < PANGO_WIN32_N_COVERAGES; i++)
win32face->coverages[i] = NULL;
- win32face->logfontw = *lfp;
+
+ win32face->is_synthetic = is_synthetic;
+
win32face->cmap_format = 0;
win32face->cmap = NULL;
+ win32face->cached_fonts = NULL;
+
font_family =
pango_win32_get_font_family (win32fontmap,
pango_font_description_get_family (win32face->description));
@@ -1230,12 +1236,21 @@ pango_win32_face_get_face_name (PangoFontFace *face)
return win32face->face_name;
}
+static gboolean
+pango_win32_face_is_synthesized (PangoFontFace *face)
+{
+ PangoWin32Face *win32face = PANGO_WIN32_FACE (face);
+
+ return win32face->is_synthetic;
+}
+
static void
pango_win32_face_class_init (PangoFontFaceClass *class)
{
class->describe = pango_win32_face_describe;
class->get_face_name = pango_win32_face_get_face_name;
class->list_sizes = pango_win32_face_list_sizes;
+ class->is_synthesized = pango_win32_face_is_synthesized;
}
static void