diff options
author | Michael Ruprecht <maiku@pidgin.im> | 2009-04-01 23:43:38 +0000 |
---|---|---|
committer | Michael Ruprecht <maiku@pidgin.im> | 2009-04-01 23:43:38 +0000 |
commit | 450d32b8ebedf8cd73a5053ab0848f39e8e05b4a (patch) | |
tree | 9388c97758fcfd5a603ef8b2b0c074bed0836240 | |
parent | 4bb089d1cecf7a4a85ca16be9aaf0ae825a5fe30 (diff) | |
download | pidgin-450d32b8ebedf8cd73a5053ab0848f39e8e05b4a.tar.gz |
Add G_DEFINE_TYPE compatibility define from gobjectification branch.
-rw-r--r-- | libpurple/internal.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/libpurple/internal.h b/libpurple/internal.h index 085605f2a6..423e4c0968 100644 --- a/libpurple/internal.h +++ b/libpurple/internal.h @@ -222,6 +222,41 @@ # endif #endif +#include <glib.h> +#include <glib-object.h> + +#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. */ |