[pango] Make some class structs public again



commit db1e5dae6e355db792e75cdcca0b7845c89ac4a4
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Aug 21 23:12:14 2019 +0200

    Make some class structs public again
    
    It turns out that the R GTK2 binding poke directly
    at many class structs. Bring the class structs back
    for now (deprecated), to avoid breaking their build.
    
    Closes: https://gitlab.gnome.org/GNOME/pango/issues/412

 pango/pango-font-private.h    | 126 -----------------------------------------
 pango/pango-font.h            | 128 +++++++++++++++++++++++++++++++++++++++++-
 pango/pango-fontset-private.h |  59 -------------------
 pango/pango-fontset.h         |  63 +++++++++++++++++++++
 4 files changed, 190 insertions(+), 186 deletions(-)
---
diff --git a/pango/pango-font-private.h b/pango/pango-font-private.h
index d43440b4..befa1b94 100644
--- a/pango/pango-font-private.h
+++ b/pango/pango-font-private.h
@@ -33,132 +33,6 @@ G_BEGIN_DECLS
 PANGO_AVAILABLE_IN_ALL
 PangoFontMetrics *pango_font_metrics_new (void);
 
-struct _PangoFontMetrics
-{
-  /* <private> */
-  guint ref_count;
-
-  int ascent;
-  int descent;
-  int height;
-  int approximate_char_width;
-  int approximate_digit_width;
-  int underline_position;
-  int underline_thickness;
-  int strikethrough_position;
-  int strikethrough_thickness;
-};
-
-
-#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);
-  gboolean (*is_variable)  (PangoFontFamily *family);
-
-  /*< private >*/
-
-  /* Padding for future expansion */
-  void (*_pango_reserved2) (void);
-  void (*_pango_reserved3) (void);
-};
-
-
-#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);
-};
-
-
-#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;
-
-struct _PangoFontClass
-{
-  GObjectClass parent_class;
-
-  /*< public >*/
-
-  PangoFontDescription *(*describe)           (PangoFont      *font);
-  PangoCoverage *       (*get_coverage)       (PangoFont      *font,
-                                              PangoLanguage  *language);
-  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);
-  void                  (*get_features)       (PangoFont      *font,
-                                               hb_feature_t   *features,
-                                               guint           len,
-                                               guint          *num_features);
-  hb_font_t *           (*create_hb_font)     (PangoFont      *font);
-};
-
-
 G_END_DECLS
 
 #endif /* __PANGO_FONT_PRIVATE_H__ */
diff --git a/pango/pango-font.h b/pango/pango-font.h
index 18d16b37..70c24d20 100644
--- a/pango/pango-font.h
+++ b/pango/pango-font.h
@@ -326,6 +326,23 @@ char *                pango_font_description_to_filename (const PangoFontDescrip
  * The #GObject type for #PangoFontMetrics.
  */
 #define PANGO_TYPE_FONT_METRICS  (pango_font_metrics_get_type ())
+
+struct _PangoFontMetrics
+{
+  /* <private> */
+  guint ref_count;
+
+  int ascent;
+  int descent;
+  int height;
+  int approximate_char_width;
+  int approximate_digit_width;
+  int underline_position;
+  int underline_thickness;
+  int strikethrough_position;
+  int strikethrough_thickness;
+};
+
 PANGO_AVAILABLE_IN_ALL
 GType             pango_font_metrics_get_type                    (void) G_GNUC_CONST;
 PANGO_AVAILABLE_IN_ALL
@@ -376,9 +393,49 @@ int               pango_font_metrics_get_strikethrough_thickness (PangoFontMetri
 #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))
+#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 _PangoFontFamily      PangoFontFamily;
 typedef struct _PangoFontFace        PangoFontFace;
+typedef struct _PangoFontFamily      PangoFontFamily;
+typedef struct _PangoFontFamilyClass PangoFontFamilyClass;
+
+#ifndef PANGO_DISABLE_DEPRECATED
+
+/**
+ * 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);
+  gboolean (*is_variable)  (PangoFontFamily *family);
+
+  /*< private >*/
+
+  /* Padding for future expansion */
+  void (*_pango_reserved2) (void);
+  void (*_pango_reserved3) (void);
+};
+
+#endif /* PANGO_DISABLE_DEPRECATED */
 
 PANGO_AVAILABLE_IN_ALL
 GType      pango_font_family_get_type       (void) G_GNUC_CONST;
@@ -419,6 +476,46 @@ gboolean   pango_font_family_is_variable          (PangoFontFamily  *family) G_G
 #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))
+#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;
+
+#ifndef PANGO_DISABLE_DEPRECATED
+
+/**
+ * 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_DISABLE_DEPRECATED */
 
 PANGO_AVAILABLE_IN_ALL
 GType      pango_font_face_get_type       (void) G_GNUC_CONST;
@@ -459,6 +556,10 @@ gboolean              pango_font_face_is_synthesized (PangoFontFace  *face) G_GN
 #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))
+#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))
+
 
 #ifndef PANGO_DISABLE_DEPRECATED
 
@@ -483,6 +584,31 @@ struct _PangoFont
   GObject parent_instance;
 };
 
+typedef struct _PangoFontClass       PangoFontClass;
+struct _PangoFontClass
+{
+  GObjectClass parent_class;
+
+  /*< public >*/
+
+  PangoFontDescription *(*describe)           (PangoFont      *font);
+  PangoCoverage *       (*get_coverage)       (PangoFont      *font,
+                                               PangoLanguage  *language);
+  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);
+  void                  (*get_features)       (PangoFont      *font,
+                                               hb_feature_t   *features,
+                                               guint           len,
+                                               guint          *num_features);
+  hb_font_t *           (*create_hb_font)     (PangoFont      *font);
+};
+
 #endif /* PANGO_DISABLE_DEPRECATED */
 
 PANGO_AVAILABLE_IN_ALL
diff --git a/pango/pango-fontset-private.h b/pango/pango-fontset-private.h
index a0829cc9..a7d71564 100644
--- a/pango/pango-fontset-private.h
+++ b/pango/pango-fontset-private.h
@@ -31,65 +31,6 @@
 G_BEGIN_DECLS
 
 
-typedef struct _PangoFontsetClass   PangoFontsetClass;
-
-#define PANGO_FONTSET_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONTSET, 
PangoFontsetClass))
-#define PANGO_IS_FONTSET_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONTSET))
-#define PANGO_FONTSET_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONTSET, 
PangoFontsetClass))
-
-/**
- * PangoFontset:
- *
- * A #PangoFontset represents a set of #PangoFont to use
- * when rendering text. It is the result of resolving a
- * #PangoFontDescription against a particular #PangoContext.
- * It has operations for finding the component font for
- * a particular Unicode character, and for finding a composite
- * set of metrics for the entire fontset.
- */
-struct _PangoFontset
-{
-  GObject parent_instance;
-};
-
-/**
- * PangoFontsetClass:
- * @parent_class: parent #GObjectClass.
- * @get_font: a function to get the font in the fontset that contains the
- * best glyph for the given Unicode character; see pango_fontset_get_font().
- * @get_metrics: a function to get overall metric information for the fonts
- * in the fontset; see pango_fontset_get_metrics().
- * @get_language: a function to get the language of the fontset.
- * @foreach: a function to loop over the fonts in the fontset. See
- * pango_fontset_foreach().
- *
- * The #PangoFontsetClass structure holds the virtual functions for
- * a particular #PangoFontset implementation.
- */
-struct _PangoFontsetClass
-{
-  GObjectClass parent_class;
-
-  /*< public >*/
-
-  PangoFont *       (*get_font)     (PangoFontset     *fontset,
-                                    guint             wc);
-
-  PangoFontMetrics *(*get_metrics)  (PangoFontset     *fontset);
-  PangoLanguage *   (*get_language) (PangoFontset     *fontset);
-  void              (*foreach)      (PangoFontset           *fontset,
-                                    PangoFontsetForeachFunc func,
-                                    gpointer                data);
-
-  /*< private >*/
-
-  /* Padding for future expansion */
-  void (*_pango_reserved1) (void);
-  void (*_pango_reserved2) (void);
-  void (*_pango_reserved3) (void);
-  void (*_pango_reserved4) (void);
-};
-
 /*
  * PangoFontsetSimple
  */
diff --git a/pango/pango-fontset.h b/pango/pango-fontset.h
index da3cef46..fed3e744 100644
--- a/pango/pango-fontset.h
+++ b/pango/pango-fontset.h
@@ -41,11 +41,16 @@ G_BEGIN_DECLS
 #define PANGO_TYPE_FONTSET              (pango_fontset_get_type ())
 #define PANGO_FONTSET(object)           (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_TYPE_FONTSET, 
PangoFontset))
 #define PANGO_IS_FONTSET(object)        (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_TYPE_FONTSET))
+#define PANGO_FONTSET_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), PANGO_TYPE_FONTSET, 
PangoFontsetClass))
+#define PANGO_IS_FONTSET_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), PANGO_TYPE_FONTSET))
+#define PANGO_FONTSET_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), PANGO_TYPE_FONTSET, 
PangoFontsetClass))
+
 
 PANGO_AVAILABLE_IN_ALL
 GType pango_fontset_get_type (void) G_GNUC_CONST;
 
 typedef struct _PangoFontset        PangoFontset;
+typedef struct _PangoFontsetClass   PangoFontsetClass;
 
 /**
  * PangoFontsetForeachFunc:
@@ -64,6 +69,64 @@ typedef gboolean (*PangoFontsetForeachFunc) (PangoFontset  *fontset,
                                             PangoFont     *font,
                                             gpointer       user_data);
 
+#ifndef PANGO_DISABLE_DEPRECATED
+
+/**
+ * PangoFontset:
+ *
+ * A #PangoFontset represents a set of #PangoFont to use
+ * when rendering text. It is the result of resolving a
+ * #PangoFontDescription against a particular #PangoContext.
+ * It has operations for finding the component font for
+ * a particular Unicode character, and for finding a composite
+ * set of metrics for the entire fontset.
+ */
+struct _PangoFontset
+{
+  GObject parent_instance;
+};
+
+/**
+ * PangoFontsetClass:
+ * @parent_class: parent #GObjectClass.
+ * @get_font: a function to get the font in the fontset that contains the
+ * best glyph for the given Unicode character; see pango_fontset_get_font().
+ * @get_metrics: a function to get overall metric information for the fonts
+ * in the fontset; see pango_fontset_get_metrics().
+ * @get_language: a function to get the language of the fontset.
+ * @foreach: a function to loop over the fonts in the fontset. See
+ * pango_fontset_foreach().
+ *
+ * The #PangoFontsetClass structure holds the virtual functions for
+ * a particular #PangoFontset implementation.
+ */
+struct _PangoFontsetClass
+{
+  GObjectClass parent_class;
+
+  /*< public >*/
+
+  PangoFont *       (*get_font)     (PangoFontset     *fontset,
+                                     guint             wc);
+
+  PangoFontMetrics *(*get_metrics)  (PangoFontset     *fontset);
+  PangoLanguage *   (*get_language) (PangoFontset     *fontset);
+  void              (*foreach)      (PangoFontset           *fontset,
+                                     PangoFontsetForeachFunc func,
+                                     gpointer                data);
+
+  /*< private >*/
+
+  /* Padding for future expansion */
+  void (*_pango_reserved1) (void);
+  void (*_pango_reserved2) (void);
+  void (*_pango_reserved3) (void);
+  void (*_pango_reserved4) (void);
+};
+
+#endif  /* PANGO_DISABLE_DEPRECATED */
+
+
 PANGO_AVAILABLE_IN_ALL
 PangoFont *       pango_fontset_get_font    (PangoFontset           *fontset,
                                             guint                   wc);


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