[pango/simple-fontmap: 2/22] font: Add pango_font_face_is_variable/monospace




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]