# HG changeset patch # User Mike Ruprecht # Date 1238629418 0 # Node ID b4621f3c276eff6c77b0aeae0bc883bd2d129ac5 # Parent 84d09c6499f139c8ed4d1b378d8b368d8380baa3 Add G_DEFINE_TYPE compatibility define from gobjectification branch. diff -r 84d09c6499f1 -r b4621f3c276e libpurple/internal.h --- a/libpurple/internal.h Wed Apr 01 19:01:31 2009 +0000 +++ b/libpurple/internal.h Wed Apr 01 23:43:38 2009 +0000 @@ -222,6 +222,41 @@ # endif #endif +#include +#include + +#ifndef G_DEFINE_TYPE +#define G_DEFINE_TYPE(TypeName, type_name, TYPE_PARENT) \ +\ +static void type_name##_init (TypeName *self); \ +static void type_name##_class_init (TypeName##Class *klass); \ +static gpointer type_name##_parent_class = NULL; \ +static void type_name##_class_intern_init (gpointer klass) \ +{ \ + type_name##_parent_class = g_type_class_peek_parent (klass); \ + type_name##_class_init ((TypeName##Class*) klass); \ +} \ +\ +GType \ +type_name##_get_type (void) \ +{ \ + static GType g_define_type_id = 0; \ + if (G_UNLIKELY (g_define_type_id == 0)) \ + { \ + g_define_type_id = \ + g_type_register_static_simple (TYPE_PARENT, \ + g_intern_static_string (#TypeName), \ + sizeof (TypeName##Class), \ + (GClassInitFunc)type_name##_class_intern_init, \ + sizeof (TypeName), \ + (GInstanceInitFunc)type_name##_init, \ + (GTypeFlags) 0); \ + } \ + return g_define_type_id; \ +} /* closes type_name##_get_type() */ + +#endif + /* Safer ways to work with static buffers. When using non-static * buffers, either use g_strdup_* functions (preferred) or use * g_strlcpy/g_strlcpy directly. */