[pango] pango/pangox-fontmap.c: Use G_DEFINE_TYPE
- From: Javier Jardón <jjardon src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pango] pango/pangox-fontmap.c: Use G_DEFINE_TYPE
- Date: Sat, 30 Apr 2011 12:04:33 +0000 (UTC)
commit 726ae04375c47fb314d70ea952f811bb223f998a
Author: Javier Jardón <jjardon gnome org>
Date: Sat Apr 30 12:45:36 2011 +0100
pango/pangox-fontmap.c: Use G_DEFINE_TYPE
pango/pangox-fontmap.c | 127 +++++++++++-------------------------------------
pango/pangox-private.h | 5 ++
2 files changed, 34 insertions(+), 98 deletions(-)
---
diff --git a/pango/pangox-fontmap.c b/pango/pangox-fontmap.c
index 6d5e547..9e0e258 100644
--- a/pango/pangox-fontmap.c
+++ b/pango/pangox-fontmap.c
@@ -41,6 +41,7 @@
#include "pangox-private.h"
typedef struct _PangoXFamily PangoXFamily;
+typedef struct _PangoXFamilyClass PangoXFamilyClass;
typedef struct _PangoXSizeInfo PangoXSizeInfo;
/* Number of freed fonts */
@@ -79,6 +80,11 @@ struct _PangoXFamily
GSList *font_entries;
};
+struct _PangoXFamilyClass
+{
+ PangoFontFamilyClass parent_class;
+};
+
struct _PangoXFace
{
PangoFontFace parent_instance;
@@ -133,9 +139,6 @@ static const struct {
{ "condensed", PANGO_STRETCH_CONDENSED },
};
-static void pango_x_font_map_init (PangoXFontMap *fontmap);
-static void pango_x_font_map_class_init (PangoFontMapClass *class);
-
static void pango_x_font_map_finalize (GObject *object);
static PangoFont *pango_x_font_map_load_font (PangoFontMap *fontmap,
PangoContext *context,
@@ -171,37 +174,7 @@ GType pango_x_family_get_type (void);
GType pango_x_face_get_type (void);
-
-static PangoFontClass *font_map_parent_class; /* Parent class structure for PangoXFontMap */
-
-GType
-pango_x_font_map_get_type (void)
-{
- static GType object_type = 0;
-
- if (G_UNLIKELY (!object_type))
- {
- const GTypeInfo object_info =
- {
- sizeof (PangoFontMapClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) pango_x_font_map_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (PangoXFontMap),
- 0, /* n_preallocs */
- (GInstanceInitFunc) pango_x_font_map_init,
- NULL /* value_table */
- };
-
- object_type = g_type_register_static (PANGO_TYPE_FONT_MAP,
- I_("PangoXFontMap"),
- &object_info, 0);
- }
-
- return object_type;
-}
+G_DEFINE_TYPE (PangoXFontMap, pango_x_font_map, PANGO_TYPE_FONT_MAP);
static void
pango_x_font_map_init (PangoXFontMap *xfontmap)
@@ -214,16 +187,16 @@ pango_x_font_map_init (PangoXFontMap *xfontmap)
}
static void
-pango_x_font_map_class_init (PangoFontMapClass *class)
+pango_x_font_map_class_init (PangoXFontMapClass *class)
{
GObjectClass *object_class = G_OBJECT_CLASS (class);
-
- font_map_parent_class = g_type_class_peek_parent (class);
+ PangoFontMapClass *font_map_class = PANGO_FONT_MAP_CLASS (class);
object_class->finalize = pango_x_font_map_finalize;
- class->load_font = pango_x_font_map_load_font;
- class->list_families = pango_x_font_map_list_families;
- class->shape_engine_type = PANGO_RENDER_TYPE_X;
+
+ font_map_class->load_font = pango_x_font_map_load_font;
+ font_map_class->list_families = pango_x_font_map_list_families;
+ font_map_class->shape_engine_type = PANGO_RENDER_TYPE_X;
}
/*
@@ -393,7 +366,7 @@ pango_x_font_map_finalize (GObject *object)
fontmaps = g_list_remove (fontmaps, xfontmap);
- G_OBJECT_CLASS (font_map_parent_class)->finalize (object);
+ G_OBJECT_CLASS (pango_x_font_map_parent_class)->finalize (object);
}
static void
@@ -1494,40 +1467,19 @@ pango_x_face_get_face_name (PangoFontFace *face)
return xface->face_name;
}
+typedef PangoFontFaceClass PangoXFaceClass;
+G_DEFINE_TYPE (PangoXFace, pango_x_face, PANGO_TYPE_FONT_FACE);
+
static void
-pango_x_face_class_init (PangoFontFaceClass *class)
+pango_x_face_class_init (PangoXFaceClass *class)
{
class->describe = pango_x_face_describe;
class->get_face_name = pango_x_face_get_face_name;
}
-GType
-pango_x_face_get_type (void)
+static void
+pango_x_face_init (PangoXFace *self)
{
- static GType object_type = 0;
-
- if (G_UNLIKELY (!object_type))
- {
- const GTypeInfo object_info =
- {
- sizeof (PangoFontFaceClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) pango_x_face_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (PangoXFace),
- 0, /* n_preallocs */
- (GInstanceInitFunc) NULL,
- NULL /* value_table */
- };
-
- object_type = g_type_register_static (PANGO_TYPE_FONT_FACE,
- I_("PangoXFace"),
- &object_info, 0);
- }
-
- return object_type;
}
/* Cut and paste here to avoid an inter-module dependency */
@@ -1653,39 +1605,18 @@ pango_x_family_get_name (PangoFontFamily *family)
return xfamily->family_name;
}
+G_DEFINE_TYPE (PangoXFamily, pango_x_family, PANGO_TYPE_FONT_FAMILY);
+
static void
-pango_x_family_class_init (PangoFontFamilyClass *class)
+pango_x_family_class_init (PangoXFamilyClass *klass)
{
- class->list_faces = pango_x_family_list_faces;
- class->get_name = pango_x_family_get_name;
+ PangoFontFamilyClass *font_family_class = PANGO_FONT_FAMILY_CLASS (klass);
+
+ font_family_class->list_faces = pango_x_family_list_faces;
+ font_family_class->get_name = pango_x_family_get_name;
}
-GType
-pango_x_family_get_type (void)
+static void
+pango_x_family_init (PangoXFamily *self)
{
- static GType object_type = 0;
-
- if (G_UNLIKELY (!object_type))
- {
- const GTypeInfo object_info =
- {
- sizeof (PangoFontFamilyClass),
- (GBaseInitFunc) NULL,
- (GBaseFinalizeFunc) NULL,
- (GClassInitFunc) pango_x_family_class_init,
- NULL, /* class_finalize */
- NULL, /* class_data */
- sizeof (PangoXFamily),
- 0, /* n_preallocs */
- (GInstanceInitFunc) NULL,
- NULL /* value_table */
- };
-
- object_type = g_type_register_static (PANGO_TYPE_FONT_FAMILY,
- I_("PangoXFamily"),
- &object_info, 0);
- }
-
- return object_type;
}
-
diff --git a/pango/pangox-private.h b/pango/pangox-private.h
index b3a9c8f..e28ab8b 100644
--- a/pango/pangox-private.h
+++ b/pango/pangox-private.h
@@ -92,6 +92,11 @@ struct _PangoXFontMap
Window coverage_win;
};
+struct _PangoXFontMapClass
+{
+ PangoFontMapClass parent_class;
+};
+
GType pango_x_font_map_get_type (void) G_GNUC_CONST;
PangoXFont * pango_x_font_new (PangoFontMap *fontmap,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]