[pango/simple-fontmap: 2/22] font: Add pango_font_face_is_variable/monospace
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango/simple-fontmap: 2/22] font: Add pango_font_face_is_variable/monospace
- Date: Wed, 29 Dec 2021 18:56:50 +0000 (UTC)
commit 73d2413976fbbe3491af52925bf59ceb92805e28
Author: Matthias Clasen <mclasen redhat com>
Date: Wed Dec 29 13:41:12 2021 -0500
font: Add pango_font_face_is_variable/monospace
The default implementations of these functions
simply return the corresponding family value.
pango/fonts.c | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
pango/pango-font.h | 12 +++++++-----
2 files changed, 63 insertions(+), 5 deletions(-)
---
diff --git a/pango/fonts.c b/pango/fonts.c
index 04c9b4b0..28363ecd 100644
--- a/pango/fonts.c
+++ b/pango/fonts.c
@@ -2553,9 +2553,23 @@ pango_font_family_is_variable (PangoFontFamily *family)
G_DEFINE_ABSTRACT_TYPE (PangoFontFace, pango_font_face, G_TYPE_OBJECT)
+static gboolean
+pango_font_face_default_is_monospace (PangoFontFace *face)
+{
+ return pango_font_family_is_monospace (pango_font_face_get_family (face));
+}
+
+static gboolean
+pango_font_face_default_is_variable (PangoFontFace *face)
+{
+ return pango_font_family_is_variable (pango_font_face_get_family (face));
+}
+
static void
pango_font_face_class_init (PangoFontFaceClass *class G_GNUC_UNUSED)
{
+ class->is_monospace = pango_font_face_default_is_monospace;
+ class->is_variable = pango_font_face_default_is_variable;
}
static void
@@ -2687,6 +2701,48 @@ pango_font_face_get_family (PangoFontFace *face)
return PANGO_FONT_FACE_GET_CLASS (face)->get_family (face);
}
+/**
+ * pango_font_face_is_monospace:
+ * @face: a `PangoFontFace`
+ *
+ * A monospace font is a font designed for text display where the the
+ * characters form a regular grid.
+ *
+ * See [method@Pango.FontFamily.is_monospace] for more details.
+ *
+ * Returns: `TRUE` if @face is monospace
+ *
+ * Since: 1.52
+ */
+gboolean
+pango_font_face_is_monospace (PangoFontFace *face)
+{
+ g_return_val_if_fail (PANGO_IS_FONT_FACE (face), FALSE);
+
+ return PANGO_FONT_FACE_GET_CLASS (face)->is_monospace (face);
+}
+
+/**
+ * pango_font_face_is_variable:
+ * @face: a `PangoFontFace`
+ *
+ * A variable font is a font which has axes that can be modified
+ * to produce variations.
+ *
+ * See [method@Pango.FontFamily.is_variable] for more details.
+ *
+ * Returns: `TRUE` if @face is variable
+ *
+ * Since: 1.52
+ */
+gboolean
+pango_font_face_is_variable (PangoFontFace *face)
+{
+ g_return_val_if_fail (PANGO_IS_FONT_FACE (face), FALSE);
+
+ return PANGO_FONT_FACE_GET_CLASS (face)->is_variable (face);
+}
+
/**
* pango_font_has_char:
* @font: a `PangoFont`
diff --git a/pango/pango-font.h b/pango/pango-font.h
index de638c4d..0a997f08 100644
--- a/pango/pango-font.h
+++ b/pango/pango-font.h
@@ -509,11 +509,8 @@ struct _PangoFontFaceClass
gboolean (*is_synthesized) (PangoFontFace *face);
PangoFontFamily * (*get_family) (PangoFontFace *face);
- /*< private >*/
-
- /* Padding for future expansion */
- void (*_pango_reserved3) (void);
- void (*_pango_reserved4) (void);
+ gboolean (*is_monospace) (PangoFontFace *face);
+ gboolean (*is_variable) (PangoFontFace *face);
};
#endif /* PANGO_DISABLE_DEPRECATED */
@@ -535,6 +532,11 @@ gboolean pango_font_face_is_synthesized (PangoFontFace *face) G_GN
PANGO_AVAILABLE_IN_1_46
PangoFontFamily * pango_font_face_get_family (PangoFontFace *face);
+PANGO_AVAILABLE_IN_1_52
+gboolean pango_font_face_is_monospace (PangoFontFace *face);
+PANGO_AVAILABLE_IN_1_52
+gboolean pango_font_face_is_variable (PangoFontFace *face);
+
/*
* PangoFont
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]