summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@gnome.org>2007-06-11 22:58:50 +0000
committerBehdad Esfahbod <behdad@src.gnome.org>2007-06-11 22:58:50 +0000
commit170c2994edd9537000790e5fe989030af35ce3c5 (patch)
tree18973ecc163a7567bf34711c3424b11b51c2dd6e
parentca3fe5ba103c1a06af569a8214c531e124b733df (diff)
downloadpango-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--ChangeLog19
-rw-r--r--docs/pango-sections.txt1
-rw-r--r--docs/tmpl/fonts.sgml9
-rw-r--r--pango/fonts.c23
-rw-r--r--pango/pango-font.h9
-rw-r--r--pango/pango.def1
-rw-r--r--pango/pangofc-fontmap.c23
7 files changed, 74 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index 4cdc3087..6297e1cb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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)
{