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 | |
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
-rw-r--r-- | ChangeLog | 19 | ||||
-rw-r--r-- | docs/pango-sections.txt | 1 | ||||
-rw-r--r-- | docs/tmpl/fonts.sgml | 9 | ||||
-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 |
7 files changed, 74 insertions, 11 deletions
@@ -1,3 +1,22 @@ +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. + 2007-06-12 Richard Hult <richard@imendio.com> * pango/pangocairo-atsuifont.c: diff --git a/docs/pango-sections.txt b/docs/pango-sections.txt index 4623cbf0..e4247991 100644 --- a/docs/pango-sections.txt +++ b/docs/pango-sections.txt @@ -236,6 +236,7 @@ PANGO_IS_FONT_FACE pango_font_face_get_face_name pango_font_face_list_sizes pango_font_face_describe +pango_font_face_is_synthesized <SUBSECTION> PangoFontMap PANGO_TYPE_FONT_MAP diff --git a/docs/tmpl/fonts.sgml b/docs/tmpl/fonts.sgml index 3253dc99..0dff0479 100644 --- a/docs/tmpl/fonts.sgml +++ b/docs/tmpl/fonts.sgml @@ -773,6 +773,15 @@ Returns %TRUE if @object is a #PangoFontFace. @Returns: +<!-- ##### FUNCTION pango_font_face_is_synthesized ##### --> +<para> + +</para> + +@face: +@Returns: + + <!-- ##### STRUCT PangoFontMap ##### --> <para> The #PangoFontMap represents the set of fonts available for a 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) { |