diff options
author | Behdad Esfahbod <behdad@gnome.org> | 2007-06-11 22:58:50 +0000 |
---|---|---|
committer | Behdad Esfahbod <behdad@src.gnome.org> | 2007-06-11 22:58:50 +0000 |
commit | 170c2994edd9537000790e5fe989030af35ce3c5 (patch) | |
tree | 18973ecc163a7567bf34711c3424b11b51c2dd6e /pango | |
parent | ca3fe5ba103c1a06af569a8214c531e124b733df (diff) | |
download | pango-170c2994edd9537000790e5fe989030af35ce3c5.tar.gz |
Bug 440588 – Add pango_font_face_is_synthesized()
2007-06-11 Behdad Esfahbod <behdad@gnome.org>
Bug 440588 – Add pango_font_face_is_synthesized()
* pango/pango-font.h:
* pango/fonts.c:
New PangoFontFace method is_synthesized.
New public API:
pango_font_face_is_synthesized()
* pango/pangofc-fontmap.c (pango_fc_face_is_synthesized):
Implement new method.
* docs/pango-sections.txt:
* docs/tmpl/fonts.sgml:
* pango/pango.def:
Update.
svn path=/trunk/; revision=2342
Diffstat (limited to 'pango')
-rw-r--r-- | pango/fonts.c | 23 | ||||
-rw-r--r-- | pango/pango-font.h | 9 | ||||
-rw-r--r-- | pango/pango.def | 1 | ||||
-rw-r--r-- | pango/pangofc-fontmap.c | 23 |
4 files changed, 45 insertions, 11 deletions
diff --git a/pango/fonts.c b/pango/fonts.c index 3e63096f..c426b7fc 100644 --- a/pango/fonts.c +++ b/pango/fonts.c @@ -1773,6 +1773,29 @@ pango_font_face_describe (PangoFontFace *face) } /** + * pango_font_face_is_synthesized: + * @face: a #PangoFontFace + * + * Returns whether a #PangoFontFace is synthesized by the underlying + * font rendering engine from another face, perhaps by shearing, emboldening, + * or lightening it. + * + * Return value: whether @face is synthesized. + * + * Since: 1.18 + **/ +gboolean +pango_font_face_is_synthesized (PangoFontFace *face) +{ + g_return_val_if_fail (PANGO_IS_FONT_FACE (face), NULL); + + if (PANGO_FONT_FACE_GET_CLASS (face)->is_synthesized != NULL) + return PANGO_FONT_FACE_GET_CLASS (face)->is_synthesized (face); + else + return FALSE; +} + +/** * pango_font_face_get_face_name: * @face: a #PangoFontFace. * diff --git a/pango/pango-font.h b/pango/pango-font.h index 4b00fb1f..79758ae4 100644 --- a/pango/pango-font.h +++ b/pango/pango-font.h @@ -256,11 +256,12 @@ struct _PangoFontFamilyClass GType pango_font_face_get_type (void) G_GNUC_CONST; -PangoFontDescription *pango_font_face_describe (PangoFontFace *face); -G_CONST_RETURN char *pango_font_face_get_face_name (PangoFontFace *face); +PangoFontDescription *pango_font_face_describe (PangoFontFace *face); +G_CONST_RETURN char *pango_font_face_get_face_name (PangoFontFace *face); void pango_font_face_list_sizes (PangoFontFace *face, int **sizes, int *n_sizes); +gboolean pango_font_face_is_synthesized (PangoFontFace *face); #ifdef PANGO_ENABLE_BACKEND @@ -281,16 +282,16 @@ struct _PangoFontFaceClass /*< public >*/ - const char * (*get_face_name) (PangoFontFace *face); + const char * (*get_face_name) (PangoFontFace *face); PangoFontDescription * (*describe) (PangoFontFace *face); void (*list_sizes) (PangoFontFace *face, int **sizes, int *n_sizes); + gboolean (*is_synthesized) (PangoFontFace *face); /*< private >*/ /* Padding for future expansion */ - void (*_pango_reserved2) (void); void (*_pango_reserved3) (void); void (*_pango_reserved4) (void); }; diff --git a/pango/pango.def b/pango/pango.def index da6b0784..1d74ac84 100644 --- a/pango/pango.def +++ b/pango/pango.def @@ -132,6 +132,7 @@ EXPORTS pango_font_face_describe pango_font_face_get_face_name pango_font_face_get_type + pango_font_face_is_synthesized pango_font_face_list_sizes pango_font_family_get_name pango_font_family_get_type diff --git a/pango/pangofc-fontmap.c b/pango/pangofc-fontmap.c index 6fcb96d8..e64d23eb 100644 --- a/pango/pangofc-fontmap.c +++ b/pango/pangofc-fontmap.c @@ -1806,15 +1806,11 @@ pango_fc_face_list_sizes (PangoFontFace *face, } static gboolean -pango_fc_family_is_monospace (PangoFontFamily *family) +pango_fc_face_is_synthesized (PangoFontFace *face) { - PangoFcFamily *fcfamily = PANGO_FC_FAMILY (family); + PangoFcFace *fcface = PANGO_FC_FACE (face); - return fcfamily->spacing == FC_MONO || -#ifdef FC_DUAL - fcfamily->spacing == FC_DUAL || -#endif - fcfamily->spacing == FC_CHARCELL; + return fcface->fake; } static void @@ -1823,6 +1819,7 @@ pango_fc_face_class_init (PangoFontFaceClass *class) class->describe = pango_fc_face_describe; class->get_face_name = pango_fc_face_get_face_name; class->list_sizes = pango_fc_face_list_sizes; + class->is_synthesized = pango_fc_face_is_synthesized; } static GType @@ -2002,6 +1999,18 @@ pango_fc_family_get_name (PangoFontFamily *family) return fcfamily->family_name; } +static gboolean +pango_fc_family_is_monospace (PangoFontFamily *family) +{ + PangoFcFamily *fcfamily = PANGO_FC_FAMILY (family); + + return fcfamily->spacing == FC_MONO || +#ifdef FC_DUAL + fcfamily->spacing == FC_DUAL || +#endif + fcfamily->spacing == FC_CHARCELL; +} + static void pango_fc_family_class_init (PangoFontFamilyClass *class) { |