summaryrefslogtreecommitdiff
path: root/pango/pango-fontmap.h
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2019-07-07 11:25:42 -0400
committerMatthias Clasen <mclasen@redhat.com>2019-07-07 11:25:42 -0400
commit78eb39adf81e2c0de43ae7e3e33ca13cea46330a (patch)
treef54d297bf78bc447fcf2e9ac04a3cdf9c72e1088 /pango/pango-fontmap.h
parentd80d151473abe5425f347b89085496c4ee26aecf (diff)
downloadpango-78eb39adf81e2c0de43ae7e3e33ca13cea46330a.tar.gz
Keep PangoFontmap derivable
This functionality is used in PackageKit.
Diffstat (limited to 'pango/pango-fontmap.h')
-rw-r--r--pango/pango-fontmap.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/pango/pango-fontmap.h b/pango/pango-fontmap.h
index 036de2df..b6206f1d 100644
--- a/pango/pango-fontmap.h
+++ b/pango/pango-fontmap.h
@@ -47,9 +47,80 @@ G_BEGIN_DECLS
#define PANGO_TYPE_FONT_MAP (pango_font_map_get_type ())
#define PANGO_FONT_MAP(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_MAP, PangoFontMap))
#define PANGO_IS_FONT_MAP(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_MAP))
+#define PANGO_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
+#define PANGO_IS_FONT_MAP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_MAP))
+#define PANGO_FONT_MAP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_MAP, PangoFontMapClass))
+typedef struct _PangoFontMapClass PangoFontMapClass;
typedef struct _PangoContext PangoContext;
+/**
+ * PangoFontMap:
+ *
+ * The #PangoFontMap represents the set of fonts available for a
+ * particular rendering system. This is a virtual object with
+ * implementations being specific to particular rendering systems. To
+ * create an implementation of a #PangoFontMap, the rendering-system
+ * specific code should allocate a larger structure that contains a nested
+ * #PangoFontMap, fill in the <structfield>klass</structfield> member of the nested #PangoFontMap with a
+ * pointer to a appropriate #PangoFontMapClass, then call
+ * pango_font_map_init() on the structure.
+ *
+ * The #PangoFontMap structure contains one member which the implementation
+ * fills in.
+ */
+struct _PangoFontMap
+{
+ GObject parent_instance;
+};
+
+/**
+ * PangoFontMapClass:
+ * @parent_class: parent #GObjectClass.
+ * @load_font: a function to load a font with a given description. See
+ * pango_font_map_load_font().
+ * @list_families: A function to list available font families. See
+ * pango_font_map_list_families().
+ * @load_fontset: a function to load a fontset with a given given description
+ * suitable for a particular language. See pango_font_map_load_fontset().
+ * @shape_engine_type: the type of rendering-system-dependent engines that
+ * can handle fonts of this fonts loaded with this fontmap.
+ * @get_serial: a function to get the serial number of the fontmap.
+ * See pango_font_map_get_serial().
+ * @changed: See pango_font_map_changed()
+ *
+ * The #PangoFontMapClass structure holds the virtual functions for
+ * a particular #PangoFontMap implementation.
+ */
+struct _PangoFontMapClass
+{
+ GObjectClass parent_class;
+
+ /*< public >*/
+
+ PangoFont * (*load_font) (PangoFontMap *fontmap,
+ PangoContext *context,
+ const PangoFontDescription *desc);
+ void (*list_families) (PangoFontMap *fontmap,
+ PangoFontFamily ***families,
+ int *n_families);
+ PangoFontset *(*load_fontset) (PangoFontMap *fontmap,
+ PangoContext *context,
+ const PangoFontDescription *desc,
+ PangoLanguage *language);
+
+ const char *shape_engine_type;
+
+ guint (*get_serial) (PangoFontMap *fontmap);
+ void (*changed) (PangoFontMap *fontmap);
+
+ /*< private >*/
+
+ /* Padding for future expansion */
+ void (*_pango_reserved1) (void);
+ void (*_pango_reserved2) (void);
+};
+
PANGO_AVAILABLE_IN_ALL
GType pango_font_map_get_type (void) G_GNUC_CONST;
PANGO_AVAILABLE_IN_1_22