123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623 |
- /* Pango
- * pango-font.h: Font handling
- *
- * Copyright (C) 2000 Red Hat Software
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
- #ifndef __PANGO_FONT_H__
- #define __PANGO_FONT_H__
- #include <pango/pango-coverage.h>
- #include <pango/pango-types.h>
- #include <glib-object.h>
- G_BEGIN_DECLS
- /**
- * PangoFontDescription:
- *
- * The #PangoFontDescription structure represents the description
- * of an ideal font. These structures are used both to list
- * what fonts are available on the system and also for specifying
- * the characteristics of a font to load.
- */
- typedef struct _PangoFontDescription PangoFontDescription;
- /**
- * PangoFontMetrics:
- *
- * A #PangoFontMetrics structure holds the overall metric information
- * for a font (possibly restricted to a script). The fields of this
- * structure are private to implementations of a font backend. See
- * the documentation of the corresponding getters for documentation
- * of their meaning.
- */
- typedef struct _PangoFontMetrics PangoFontMetrics;
- /**
- * PangoStyle:
- * @PANGO_STYLE_NORMAL: the font is upright.
- * @PANGO_STYLE_OBLIQUE: the font is slanted, but in a roman style.
- * @PANGO_STYLE_ITALIC: the font is slanted in an italic style.
- *
- * An enumeration specifying the various slant styles possible for a font.
- **/
- typedef enum {
- PANGO_STYLE_NORMAL,
- PANGO_STYLE_OBLIQUE,
- PANGO_STYLE_ITALIC
- } PangoStyle;
- /**
- * PangoVariant:
- * @PANGO_VARIANT_NORMAL: A normal font.
- * @PANGO_VARIANT_SMALL_CAPS: A font with the lower case characters
- * replaced by smaller variants of the capital characters.
- *
- * An enumeration specifying capitalization variant of the font.
- */
- typedef enum {
- PANGO_VARIANT_NORMAL,
- PANGO_VARIANT_SMALL_CAPS
- } PangoVariant;
- /**
- * PangoWeight:
- * @PANGO_WEIGHT_THIN: the thin weight (= 100; Since: 1.24)
- * @PANGO_WEIGHT_ULTRALIGHT: the ultralight weight (= 200)
- * @PANGO_WEIGHT_LIGHT: the light weight (= 300)
- * @PANGO_WEIGHT_SEMILIGHT: the semilight weight (= 350; Since: 1.36.7)
- * @PANGO_WEIGHT_BOOK: the book weight (= 380; Since: 1.24)
- * @PANGO_WEIGHT_NORMAL: the default weight (= 400)
- * @PANGO_WEIGHT_MEDIUM: the normal weight (= 500; Since: 1.24)
- * @PANGO_WEIGHT_SEMIBOLD: the semibold weight (= 600)
- * @PANGO_WEIGHT_BOLD: the bold weight (= 700)
- * @PANGO_WEIGHT_ULTRABOLD: the ultrabold weight (= 800)
- * @PANGO_WEIGHT_HEAVY: the heavy weight (= 900)
- * @PANGO_WEIGHT_ULTRAHEAVY: the ultraheavy weight (= 1000; Since: 1.24)
- *
- * An enumeration specifying the weight (boldness) of a font. This is a numerical
- * value ranging from 100 to 1000, but there are some predefined values:
- */
- typedef enum {
- PANGO_WEIGHT_THIN = 100,
- PANGO_WEIGHT_ULTRALIGHT = 200,
- PANGO_WEIGHT_LIGHT = 300,
- PANGO_WEIGHT_SEMILIGHT = 350,
- PANGO_WEIGHT_BOOK = 380,
- PANGO_WEIGHT_NORMAL = 400,
- PANGO_WEIGHT_MEDIUM = 500,
- PANGO_WEIGHT_SEMIBOLD = 600,
- PANGO_WEIGHT_BOLD = 700,
- PANGO_WEIGHT_ULTRABOLD = 800,
- PANGO_WEIGHT_HEAVY = 900,
- PANGO_WEIGHT_ULTRAHEAVY = 1000
- } PangoWeight;
- /**
- * PangoStretch:
- * @PANGO_STRETCH_ULTRA_CONDENSED: ultra condensed width
- * @PANGO_STRETCH_EXTRA_CONDENSED: extra condensed width
- * @PANGO_STRETCH_CONDENSED: condensed width
- * @PANGO_STRETCH_SEMI_CONDENSED: semi condensed width
- * @PANGO_STRETCH_NORMAL: the normal width
- * @PANGO_STRETCH_SEMI_EXPANDED: semi expanded width
- * @PANGO_STRETCH_EXPANDED: expanded width
- * @PANGO_STRETCH_EXTRA_EXPANDED: extra expanded width
- * @PANGO_STRETCH_ULTRA_EXPANDED: ultra expanded width
- *
- * An enumeration specifying the width of the font relative to other designs
- * within a family.
- */
- typedef enum {
- PANGO_STRETCH_ULTRA_CONDENSED,
- PANGO_STRETCH_EXTRA_CONDENSED,
- PANGO_STRETCH_CONDENSED,
- PANGO_STRETCH_SEMI_CONDENSED,
- PANGO_STRETCH_NORMAL,
- PANGO_STRETCH_SEMI_EXPANDED,
- PANGO_STRETCH_EXPANDED,
- PANGO_STRETCH_EXTRA_EXPANDED,
- PANGO_STRETCH_ULTRA_EXPANDED
- } PangoStretch;
- /**
- * PangoFontMask:
- * @PANGO_FONT_MASK_FAMILY: the font family is specified.
- * @PANGO_FONT_MASK_STYLE: the font style is specified.
- * @PANGO_FONT_MASK_VARIANT: the font variant is specified.
- * @PANGO_FONT_MASK_WEIGHT: the font weight is specified.
- * @PANGO_FONT_MASK_STRETCH: the font stretch is specified.
- * @PANGO_FONT_MASK_SIZE: the font size is specified.
- * @PANGO_FONT_MASK_GRAVITY: the font gravity is specified (Since: 1.16.)
- *
- * The bits in a #PangoFontMask correspond to fields in a
- * #PangoFontDescription that have been set.
- */
- typedef enum {
- PANGO_FONT_MASK_FAMILY = 1 << 0,
- PANGO_FONT_MASK_STYLE = 1 << 1,
- PANGO_FONT_MASK_VARIANT = 1 << 2,
- PANGO_FONT_MASK_WEIGHT = 1 << 3,
- PANGO_FONT_MASK_STRETCH = 1 << 4,
- PANGO_FONT_MASK_SIZE = 1 << 5,
- PANGO_FONT_MASK_GRAVITY = 1 << 6
- } PangoFontMask;
- /* CSS scale factors (1.2 factor between each size) */
- /**
- * PANGO_SCALE_XX_SMALL:
- *
- * The scale factor for three shrinking steps (1 / (1.2 * 1.2 * 1.2)).
- */
- /**
- * PANGO_SCALE_X_SMALL:
- *
- * The scale factor for two shrinking steps (1 / (1.2 * 1.2)).
- */
- /**
- * PANGO_SCALE_SMALL:
- *
- * The scale factor for one shrinking step (1 / 1.2).
- */
- /**
- * PANGO_SCALE_MEDIUM:
- *
- * The scale factor for normal size (1.0).
- */
- /**
- * PANGO_SCALE_LARGE:
- *
- * The scale factor for one magnification step (1.2).
- */
- /**
- * PANGO_SCALE_X_LARGE:
- *
- * The scale factor for two magnification steps (1.2 * 1.2).
- */
- /**
- * PANGO_SCALE_XX_LARGE:
- *
- * The scale factor for three magnification steps (1.2 * 1.2 * 1.2).
- */
- #define PANGO_SCALE_XX_SMALL ((double)0.5787037037037)
- #define PANGO_SCALE_X_SMALL ((double)0.6444444444444)
- #define PANGO_SCALE_SMALL ((double)0.8333333333333)
- #define PANGO_SCALE_MEDIUM ((double)1.0)
- #define PANGO_SCALE_LARGE ((double)1.2)
- #define PANGO_SCALE_X_LARGE ((double)1.4399999999999)
- #define PANGO_SCALE_XX_LARGE ((double)1.728)
- /*
- * PangoFontDescription
- */
- /**
- * PANGO_TYPE_FONT_DESCRIPTION:
- *
- * The #GObject type for #PangoFontDescription.
- */
- #define PANGO_TYPE_FONT_DESCRIPTION (pango_font_description_get_type ())
- GType pango_font_description_get_type (void) G_GNUC_CONST;
- PangoFontDescription *pango_font_description_new (void);
- PangoFontDescription *pango_font_description_copy (const PangoFontDescription *desc);
- PangoFontDescription *pango_font_description_copy_static (const PangoFontDescription *desc);
- guint pango_font_description_hash (const PangoFontDescription *desc) G_GNUC_PURE;
- gboolean pango_font_description_equal (const PangoFontDescription *desc1,
- const PangoFontDescription *desc2) G_GNUC_PURE;
- void pango_font_description_free (PangoFontDescription *desc);
- void pango_font_descriptions_free (PangoFontDescription **descs,
- int n_descs);
- void pango_font_description_set_family (PangoFontDescription *desc,
- const char *family);
- void pango_font_description_set_family_static (PangoFontDescription *desc,
- const char *family);
- const char *pango_font_description_get_family (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_style (PangoFontDescription *desc,
- PangoStyle style);
- PangoStyle pango_font_description_get_style (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_variant (PangoFontDescription *desc,
- PangoVariant variant);
- PangoVariant pango_font_description_get_variant (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_weight (PangoFontDescription *desc,
- PangoWeight weight);
- PangoWeight pango_font_description_get_weight (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_stretch (PangoFontDescription *desc,
- PangoStretch stretch);
- PangoStretch pango_font_description_get_stretch (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_size (PangoFontDescription *desc,
- gint size);
- gint pango_font_description_get_size (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_absolute_size (PangoFontDescription *desc,
- double size);
- gboolean pango_font_description_get_size_is_absolute (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_set_gravity (PangoFontDescription *desc,
- PangoGravity gravity);
- PangoGravity pango_font_description_get_gravity (const PangoFontDescription *desc) G_GNUC_PURE;
- PangoFontMask pango_font_description_get_set_fields (const PangoFontDescription *desc) G_GNUC_PURE;
- void pango_font_description_unset_fields (PangoFontDescription *desc,
- PangoFontMask to_unset);
- void pango_font_description_merge (PangoFontDescription *desc,
- const PangoFontDescription *desc_to_merge,
- gboolean replace_existing);
- void pango_font_description_merge_static (PangoFontDescription *desc,
- const PangoFontDescription *desc_to_merge,
- gboolean replace_existing);
- gboolean pango_font_description_better_match (const PangoFontDescription *desc,
- const PangoFontDescription *old_match,
- const PangoFontDescription *new_match) G_GNUC_PURE;
- PangoFontDescription *pango_font_description_from_string (const char *str);
- char * pango_font_description_to_string (const PangoFontDescription *desc);
- char * pango_font_description_to_filename (const PangoFontDescription *desc);
- /*
- * PangoFontMetrics
- */
- /**
- * PANGO_TYPE_FONT_METRICS:
- *
- * The #GObject type for #PangoFontMetrics.
- */
- #define PANGO_TYPE_FONT_METRICS (pango_font_metrics_get_type ())
- GType pango_font_metrics_get_type (void) G_GNUC_CONST;
- PangoFontMetrics *pango_font_metrics_ref (PangoFontMetrics *metrics);
- void pango_font_metrics_unref (PangoFontMetrics *metrics);
- int pango_font_metrics_get_ascent (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_descent (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_approximate_char_width (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_approximate_digit_width (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_underline_position (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_underline_thickness (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_strikethrough_position (PangoFontMetrics *metrics) G_GNUC_PURE;
- int pango_font_metrics_get_strikethrough_thickness (PangoFontMetrics *metrics) G_GNUC_PURE;
- #ifdef PANGO_ENABLE_BACKEND
- PangoFontMetrics *pango_font_metrics_new (void);
- struct _PangoFontMetrics
- {
- /* <private> */
- guint ref_count;
- int ascent;
- int descent;
- int approximate_char_width;
- int approximate_digit_width;
- int underline_position;
- int underline_thickness;
- int strikethrough_position;
- int strikethrough_thickness;
- };
- #endif /* PANGO_ENABLE_BACKEND */
- /*
- * PangoFontFamily
- */
- /**
- * PANGO_TYPE_FONT_FAMILY:
- *
- * The #GObject type for #PangoFontFamily.
- */
- /**
- * PANGO_FONT_FAMILY:
- * @object: a #GObject.
- *
- * Casts a #GObject to a #PangoFontFamily.
- */
- /**
- * PANGO_IS_FONT_FAMILY:
- * @object: a #GObject.
- *
- * Returns: %TRUE if @object is a #PangoFontFamily.
- */
- #define PANGO_TYPE_FONT_FAMILY (pango_font_family_get_type ())
- #define PANGO_FONT_FAMILY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FAMILY, PangoFontFamily))
- #define PANGO_IS_FONT_FAMILY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FAMILY))
- typedef struct _PangoFontFamily PangoFontFamily;
- typedef struct _PangoFontFace PangoFontFace;
- GType pango_font_family_get_type (void) G_GNUC_CONST;
- void pango_font_family_list_faces (PangoFontFamily *family,
- PangoFontFace ***faces,
- int *n_faces);
- const char *pango_font_family_get_name (PangoFontFamily *family) G_GNUC_PURE;
- gboolean pango_font_family_is_monospace (PangoFontFamily *family) G_GNUC_PURE;
- #ifdef PANGO_ENABLE_BACKEND
- #define PANGO_FONT_FAMILY_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_FAMILY, PangoFontFamilyClass))
- #define PANGO_IS_FONT_FAMILY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_FAMILY))
- #define PANGO_FONT_FAMILY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_FAMILY, PangoFontFamilyClass))
- typedef struct _PangoFontFamilyClass PangoFontFamilyClass;
- /**
- * PangoFontFamily:
- *
- * The #PangoFontFamily structure is used to represent a family of related
- * font faces. The faces in a family share a common design, but differ in
- * slant, weight, width and other aspects.
- */
- struct _PangoFontFamily
- {
- GObject parent_instance;
- };
- struct _PangoFontFamilyClass
- {
- GObjectClass parent_class;
- /*< public >*/
- void (*list_faces) (PangoFontFamily *family,
- PangoFontFace ***faces,
- int *n_faces);
- const char * (*get_name) (PangoFontFamily *family);
- gboolean (*is_monospace) (PangoFontFamily *family);
- /*< private >*/
- /* Padding for future expansion */
- void (*_pango_reserved2) (void);
- void (*_pango_reserved3) (void);
- void (*_pango_reserved4) (void);
- };
- #endif /* PANGO_ENABLE_BACKEND */
- /*
- * PangoFontFace
- */
- /**
- * PANGO_TYPE_FONT_FACE:
- *
- * The #GObject type for #PangoFontFace.
- */
- /**
- * PANGO_FONT_FACE:
- * @object: a #GObject.
- *
- * Casts a #GObject to a #PangoFontFace.
- */
- /**
- * PANGO_IS_FONT_FACE:
- * @object: a #GObject.
- *
- * Returns: %TRUE if @object is a #PangoFontFace.
- */
- #define PANGO_TYPE_FONT_FACE (pango_font_face_get_type ())
- #define PANGO_FONT_FACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT_FACE, PangoFontFace))
- #define PANGO_IS_FONT_FACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT_FACE))
- GType pango_font_face_get_type (void) G_GNUC_CONST;
- PangoFontDescription *pango_font_face_describe (PangoFontFace *face);
- const char *pango_font_face_get_face_name (PangoFontFace *face) G_GNUC_PURE;
- void pango_font_face_list_sizes (PangoFontFace *face,
- int **sizes,
- int *n_sizes);
- gboolean pango_font_face_is_synthesized (PangoFontFace *face) G_GNUC_PURE;
- #ifdef PANGO_ENABLE_BACKEND
- #define PANGO_FONT_FACE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT_FACE, PangoFontFaceClass))
- #define PANGO_IS_FONT_FACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT_FACE))
- #define PANGO_FONT_FACE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT_FACE, PangoFontFaceClass))
- typedef struct _PangoFontFaceClass PangoFontFaceClass;
- /**
- * PangoFontFace:
- *
- * The #PangoFontFace structure is used to represent a group of fonts with
- * the same family, slant, weight, width, but varying sizes.
- */
- struct _PangoFontFace
- {
- GObject parent_instance;
- };
- struct _PangoFontFaceClass
- {
- GObjectClass parent_class;
- /*< public >*/
- const char * (*get_face_name) (PangoFontFace *face);
- PangoFontDescription * (*describe) (PangoFontFace *face);
- void (*list_sizes) (PangoFontFace *face,
- int **sizes,
- int *n_sizes);
- gboolean (*is_synthesized) (PangoFontFace *face);
- /*< private >*/
- /* Padding for future expansion */
- void (*_pango_reserved3) (void);
- void (*_pango_reserved4) (void);
- };
- #endif /* PANGO_ENABLE_BACKEND */
- /*
- * PangoFont
- */
- /**
- * PANGO_TYPE_FONT:
- *
- * The #GObject type for #PangoFont.
- */
- /**
- * PANGO_FONT:
- * @object: a #GObject.
- *
- * Casts a #GObject to a #PangoFont.
- */
- /**
- * PANGO_IS_FONT:
- * @object: a #GObject.
- *
- * Returns: %TRUE if @object is a #PangoFont.
- */
- #define PANGO_TYPE_FONT (pango_font_get_type ())
- #define PANGO_FONT(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONT, PangoFont))
- #define PANGO_IS_FONT(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONT))
- GType pango_font_get_type (void) G_GNUC_CONST;
- PangoFontDescription *pango_font_describe (PangoFont *font);
- PangoFontDescription *pango_font_describe_with_absolute_size (PangoFont *font);
- PangoCoverage * pango_font_get_coverage (PangoFont *font,
- PangoLanguage *language);
- PangoEngineShape * pango_font_find_shaper (PangoFont *font,
- PangoLanguage *language,
- guint32 ch);
- PangoFontMetrics * pango_font_get_metrics (PangoFont *font,
- PangoLanguage *language);
- void pango_font_get_glyph_extents (PangoFont *font,
- PangoGlyph glyph,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect);
- PangoFontMap *pango_font_get_font_map (PangoFont *font);
- #ifdef PANGO_ENABLE_BACKEND
- #define PANGO_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONT, PangoFontClass))
- #define PANGO_IS_FONT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONT))
- #define PANGO_FONT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONT, PangoFontClass))
- typedef struct _PangoFontClass PangoFontClass;
- /**
- * PangoFont:
- *
- * The #PangoFont structure is used to represent
- * a font in a rendering-system-independent matter.
- * To create an implementation of a #PangoFont,
- * the rendering-system specific code should allocate
- * a larger structure that contains a nested
- * #PangoFont, fill in the <structfield>klass</structfield> member of
- * the nested #PangoFont with a pointer to
- * a appropriate #PangoFontClass, then call
- * pango_font_init() on the structure.
- *
- * The #PangoFont structure contains one member
- * which the implementation fills in.
- */
- struct _PangoFont
- {
- GObject parent_instance;
- };
- struct _PangoFontClass
- {
- GObjectClass parent_class;
- /*< public >*/
- PangoFontDescription *(*describe) (PangoFont *font);
- PangoCoverage * (*get_coverage) (PangoFont *font,
- PangoLanguage *lang);
- PangoEngineShape * (*find_shaper) (PangoFont *font,
- PangoLanguage *lang,
- guint32 ch);
- void (*get_glyph_extents) (PangoFont *font,
- PangoGlyph glyph,
- PangoRectangle *ink_rect,
- PangoRectangle *logical_rect);
- PangoFontMetrics * (*get_metrics) (PangoFont *font,
- PangoLanguage *language);
- PangoFontMap * (*get_font_map) (PangoFont *font);
- PangoFontDescription *(*describe_absolute) (PangoFont *font);
- /*< private >*/
- /* Padding for future expansion */
- void (*_pango_reserved1) (void);
- void (*_pango_reserved2) (void);
- };
- /* used for very rare and miserable situtations that we cannot even
- * draw a hexbox
- */
- #define PANGO_UNKNOWN_GLYPH_WIDTH 10
- #define PANGO_UNKNOWN_GLYPH_HEIGHT 14
- #endif /* PANGO_ENABLE_BACKEND */
- /**
- * PANGO_GLYPH_EMPTY:
- *
- * The %PANGO_GLYPH_EMPTY macro represents a #PangoGlyph value that has a
- * special meaning, which is a zero-width empty glyph. This is useful for
- * example in shaper modules, to use as the glyph for various zero-width
- * Unicode characters (those passing pango_is_zero_width()).
- */
- /**
- * PANGO_GLYPH_INVALID_INPUT:
- *
- * The %PANGO_GLYPH_INVALID_INPUT macro represents a #PangoGlyph value that has a
- * special meaning of invalid input. #PangoLayout produces one such glyph
- * per invalid input UTF-8 byte and such a glyph is rendered as a crossed
- * box.
- *
- * Note that this value is defined such that it has the %PANGO_GLYPH_UNKNOWN_FLAG
- * on.
- *
- * Since: 1.20
- */
- /**
- * PANGO_GLYPH_UNKNOWN_FLAG:
- *
- * The %PANGO_GLYPH_UNKNOWN_FLAG macro is a flag value that can be added to
- * a #gunichar value of a valid Unicode character, to produce a #PangoGlyph
- * value, representing an unknown-character glyph for the respective #gunichar.
- */
- /**
- * PANGO_GET_UNKNOWN_GLYPH:
- * @wc: a Unicode character
- *
- * The way this unknown glyphs are rendered is backend specific. For example,
- * a box with the hexadecimal Unicode code-point of the character written in it
- * is what is done in the most common backends.
- *
- * Returns: a #PangoGlyph value that means no glyph was found for @wc.
- */
- #define PANGO_GLYPH_EMPTY ((PangoGlyph)0x0FFFFFFF)
- #define PANGO_GLYPH_INVALID_INPUT ((PangoGlyph)0xFFFFFFFF)
- #define PANGO_GLYPH_UNKNOWN_FLAG ((PangoGlyph)0x10000000)
- #define PANGO_GET_UNKNOWN_GLYPH(wc) ((PangoGlyph)(wc)|PANGO_GLYPH_UNKNOWN_FLAG)
- G_END_DECLS
- #endif /* __PANGO_FONT_H__ */
|