[pango/pango2: 275/301] Add a way to merge fontsets




commit 1681f7bdcf1ff98dfe8022985509caed79b9483d
Author: Matthias Clasen <mclasen redhat com>
Date:   Sat Jun 18 13:09:27 2022 -0700

    Add a way to merge fontsets
    
    This will be used in future commits.

 pango/pango-fontset-cached-private.h | 16 ++++++----------
 pango/pango-fontset-cached.c         | 15 +++++++++++++++
 2 files changed, 21 insertions(+), 10 deletions(-)
---
diff --git a/pango/pango-fontset-cached-private.h b/pango/pango-fontset-cached-private.h
index 4b7a37f7e..2f3c7ac3f 100644
--- a/pango/pango-fontset-cached-private.h
+++ b/pango/pango-fontset-cached-private.h
@@ -28,8 +28,9 @@
 #include <cairo.h>
 #endif
 
-typedef struct _PangoFontsetCached PangoFontsetCached;
-typedef struct _PangoFontsetCachedClass  PangoFontsetCachedClass;
+#define PANGO_TYPE_FONTSET_CACHED (pango_fontset_cached_get_type ())
+
+G_DECLARE_FINAL_TYPE (PangoFontsetCached, pango_fontset_cached, PANGO, FONTSET_CACHED, PangoFontset)
 
 struct _PangoFontsetCached
 {
@@ -48,14 +49,6 @@ struct _PangoFontsetCached
 #endif
 };
 
-struct _PangoFontsetCachedClass
-{
-  PangoFontsetClass parent_class;
-};
-
-
-GType                pango_fontset_cached_get_type       (void) G_GNUC_CONST;
-
 PangoFontsetCached * pango_fontset_cached_new            (const PangoFontDescription *description,
                                                           PangoLanguage              *language,
                                                           float                       dpi,
@@ -67,3 +60,6 @@ void                 pango_fontset_cached_add_family     (PangoFontsetCached
                                                           PangoGenericFamily         *family);
 int                  pango_fontset_cached_size           (PangoFontsetCached         *self);
 PangoFont *          pango_fontset_cached_get_first_font (PangoFontsetCached         *self);
+
+void                 pango_fontset_cached_append         (PangoFontsetCached         *self,
+                                                          PangoFontsetCached         *other);
diff --git a/pango/pango-fontset-cached.c b/pango/pango-fontset-cached.c
index bdcb04de3..adbc4409f 100644
--- a/pango/pango-fontset-cached.c
+++ b/pango/pango-fontset-cached.c
@@ -325,4 +325,19 @@ pango_fontset_cached_size (PangoFontsetCached *self)
   return self->items->len;
 }
 
+void
+pango_fontset_cached_append (PangoFontsetCached *self,
+                             PangoFontsetCached *other)
+{
+  for (int i = 0; i < other->items->len; i++)
+    {
+      gpointer item = g_ptr_array_index (other->items, i);
+
+      if (PANGO_IS_FONT (item))
+        pango_fontset_cached_add_face (self, pango_font_get_face (PANGO_FONT (item)));
+      else if (PANGO_IS_GENERIC_FAMILY (item))
+        pango_fontset_cached_add_family (self, PANGO_GENERIC_FAMILY (item));
+    }
+}
+
 /* vim:set foldmethod=marker expandtab: */


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]