#include #include #define TEST_TYPE_PLUGIN (test_plugin_get_type ()) #define TEST_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_PLUGIN, TestPlugin)) #define TEST_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TEST_TYPE_PLUGIN, TestPluginClass)) #define TEST_IS_PLUGIN(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TEST_TYPE_PLUGIN)) #define TEST_IS_PLUGIN_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TEST_TYPE_PLUGIN)) #define TEST_PLUGIN_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TEST_TYPE_PLUGIN, TestPluginClass)) typedef struct _TestPlugin TestPlugin; typedef struct _TestPluginClass TestPluginClass; typedef struct _TestPluginPrivate TestPluginPrivate; struct _TestPlugin { GObject parent_instance; TestPluginPrivate * priv; }; struct _TestPluginClass { GObjectClass parent_class; }; static gpointer test_plugin_parent_class = NULL; GType test_plugin_get_type (void); GType test_plugin_register_type (GTypeModule * module); enum { TEST_PLUGIN_DUMMY_PROPERTY }; TestPlugin* test_plugin_new (void); TestPlugin* test_plugin_construct (GType object_type); TestPlugin* test_plugin_new (void); GType register_plugin (GTypeModule* module); TestPlugin* test_plugin_construct (GType object_type) { TestPlugin * self; self = g_object_newv (object_type, 0, NULL); return self; } TestPlugin* test_plugin_new (void) { return test_plugin_construct (TEST_TYPE_PLUGIN); } static void test_plugin_class_init (TestPluginClass * klass) { test_plugin_parent_class = g_type_class_peek_parent (klass); } static void test_plugin_instance_init (TestPlugin * self) { } GType test_plugin_get_type (void) { return test_plugin_type_id; } GType test_plugin_register_type (GTypeModule * module) { static const GTypeInfo g_define_type_info = { sizeof (TestPluginClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) test_plugin_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (TestPlugin), 0, (GInstanceInitFunc) test_plugin_instance_init, NULL }; test_plugin_type_id = g_type_module_register_type (module, G_TYPE_OBJECT, "TestPlugin", &g_define_type_info, 0); return test_plugin_type_id; } GType register_plugin (GTypeModule* module) { GType result; g_return_val_if_fail (module != NULL, 0UL); test_plugin_register_type (module); result = TEST_TYPE_PLUGIN; return result; }