From 0942b1962d2ee8574c0aff345eb871e2daccea1e Mon Sep 17 00:00:00 2001 From: Behdad Esfahbod Date: Fri, 15 Mar 2013 06:13:09 -0400 Subject: Bug 682846 - Use G_DEFINE_TYPE in pangowin32-fontmap Based on patch from Chun-wei Fan. --- pango/pangocairo-win32fontmap.c | 2 -- pango/pangowin32-fontmap.c | 76 ++++++++++++----------------------------- pango/pangowin32-private.h | 1 + 3 files changed, 22 insertions(+), 57 deletions(-) diff --git a/pango/pangocairo-win32fontmap.c b/pango/pangocairo-win32fontmap.c index d64e9a99..b58d16f6 100644 --- a/pango/pangocairo-win32fontmap.c +++ b/pango/pangocairo-win32fontmap.c @@ -91,8 +91,6 @@ G_DEFINE_TYPE_WITH_CODE (PangoCairoWin32FontMap, pango_cairo_win32_font_map, PAN static void pango_cairo_win32_font_map_finalize (GObject *object) { - PangoCairoWin32FontMap *cwfontmap = PANGO_CAIRO_WIN32_FONT_MAP (object); - G_OBJECT_CLASS (pango_cairo_win32_font_map_parent_class)->finalize (object); } diff --git a/pango/pangowin32-fontmap.c b/pango/pangowin32-fontmap.c index eb54e61d..68ec2ee0 100644 --- a/pango/pangowin32-fontmap.c +++ b/pango/pangowin32-fontmap.c @@ -36,7 +36,8 @@ #include "pangowin32-private.h" #include "modules.h" -typedef struct _PangoWin32Family PangoWin32Family; +typedef struct _PangoWin32Family PangoWin32Family; +typedef PangoFontFamilyClass PangoWin32FamilyClass; struct _PangoWin32Family { @@ -48,6 +49,7 @@ struct _PangoWin32Family gboolean is_monospace; }; + #if !defined(NTM_PS_OPENTYPE) # define NTM_PS_OPENTYPE 0x20000 #endif @@ -58,11 +60,17 @@ struct _PangoWin32Family #define PANGO_WIN32_TYPE_FAMILY (pango_win32_family_get_type ()) #define PANGO_WIN32_FAMILY(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_WIN32_TYPE_FAMILY, PangoWin32Family)) -#define PANGO_WIN32_IS_FAMILY(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_WIN32_TYPE_FAMILY)) +#define PANGO_WIN32_IS_FAMILY (object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_WIN32_TYPE_FAMILY)) +#define PANGO_WIN32_FAMILY_CLASS (klass) (G_TYPE_CHECK_CLASS_CAST (klass), PANGO_WIN32_TYPE_FAMILY, PangoWin32Family)) +#define PANGO_WIN32_IS_FAMILY_CLASS (klass) (G_TYPE_CHECK_CLASS_CAST (klass), PANGO_WIN32_TYPE_FAMILY)) +#define PANGO_WIN32_FAMILY_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), PANGO_WIN32_FAMILY, PangoWin32FamilyClass)) #define PANGO_WIN32_TYPE_FACE (pango_win32_face_get_type ()) #define PANGO_WIN32_FACE(object) (G_TYPE_CHECK_INSTANCE_CAST ((object), PANGO_WIN32_TYPE_FACE, PangoWin32Face)) #define PANGO_WIN32_IS_FACE(object) (G_TYPE_CHECK_INSTANCE_TYPE ((object), PANGO_WIN32_TYPE_FACE)) +#define PANGO_WIN32_FACE_CLASS (klass) (G_TYPE_CHECK_CLASS_CAST (klass), PANGO_WIN32_TYPE_FACE, PangoWin32Face)) +#define PANGO_WIN32_IS_FACE_CLASS (klass) (G_TYPE_CHECK_CLASS_CAST (klass), PANGO_WIN32_TYPE_FACE)) +#define PANGO_WIN32_FACE_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), PANGO_WIN32_FACE, PangoWin32FaceClass)) static GType pango_win32_face_get_type (void); @@ -832,6 +840,8 @@ pango_win32_family_is_monospace (PangoFontFamily *family) return win32family->is_monospace; } +G_DEFINE_TYPE (PangoWin32Family, pango_win32_family, PANGO_TYPE_FONT_FAMILY) + static void pango_win32_family_class_init (PangoFontFamilyClass *class) { @@ -840,32 +850,9 @@ pango_win32_family_class_init (PangoFontFamilyClass *class) class->is_monospace = pango_win32_family_is_monospace; } -static GType -pango_win32_family_get_type (void) +static void +pango_win32_family_init (PangoWin32Family *family) { - static GType object_type = 0; - - if (G_UNLIKELY (!object_type)) - { - const GTypeInfo object_info = - { - sizeof (PangoFontFamilyClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) pango_win32_family_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (PangoWin32Family), - 0, /* n_preallocs */ - (GInstanceInitFunc) NULL, - }; - - object_type = g_type_register_static (PANGO_TYPE_FONT_FAMILY, - I_("PangoWin32Family"), - &object_info, 0); - } - - return object_type; } static void @@ -1640,6 +1627,8 @@ pango_win32_face_is_synthesized (PangoFontFace *face) return win32face->is_synthetic; } +G_DEFINE_TYPE (PangoWin32Face, pango_win32_face, PANGO_TYPE_FONT_FACE) + static void pango_win32_face_class_init (PangoFontFaceClass *class) { @@ -1649,6 +1638,11 @@ pango_win32_face_class_init (PangoFontFaceClass *class) class->is_synthesized = pango_win32_face_is_synthesized; } +static void +pango_win32_face_init (PangoWin32Face *face) +{ +} + static void pango_win32_face_list_sizes (PangoFontFace *face, int **sizes, @@ -1662,34 +1656,6 @@ pango_win32_face_list_sizes (PangoFontFace *face, *n_sizes = 0; } -static GType -pango_win32_face_get_type (void) -{ - static GType object_type = 0; - - if (G_UNLIKELY (!object_type)) - { - static const GTypeInfo object_info = - { - sizeof (PangoFontFaceClass), - (GBaseInitFunc) NULL, - (GBaseFinalizeFunc) NULL, - (GClassInitFunc) pango_win32_face_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (PangoWin32Face), - 0, /* n_preallocs */ - (GInstanceInitFunc) NULL, - }; - - object_type = g_type_register_static (PANGO_TYPE_FONT_FACE, - I_("PangoWin32Face"), - &object_info, 0); - } - - return object_type; -} - /** * pango_win32_font_map_get_font_cache: * @font_map: a #PangoWin32FontMap. diff --git a/pango/pangowin32-private.h b/pango/pangowin32-private.h index 73df2e99..ba95f9bc 100644 --- a/pango/pangowin32-private.h +++ b/pango/pangowin32-private.h @@ -85,6 +85,7 @@ typedef struct _PangoWin32FontMapClass PangoWin32FontMapClass; typedef struct _PangoWin32Font PangoWin32Font; typedef struct _PangoWin32FontClass PangoWin32FontClass; typedef struct _PangoWin32Face PangoWin32Face; +typedef PangoFontFaceClass PangoWin32FaceClass; typedef struct _PangoWin32GlyphInfo PangoWin32GlyphInfo; typedef struct _PangoWin32MetricsInfo PangoWin32MetricsInfo; -- cgit v1.2.1