diff options
author | Matthias Clasen <mclasen@redhat.com> | 2019-07-07 11:25:42 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2019-07-07 11:25:42 -0400 |
commit | 78eb39adf81e2c0de43ae7e3e33ca13cea46330a (patch) | |
tree | f54d297bf78bc447fcf2e9ac04a3cdf9c72e1088 /pango/pango-fontmap.h | |
parent | d80d151473abe5425f347b89085496c4ee26aecf (diff) | |
download | pango-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.h | 71 |
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 |