From f6087b5af86ffea74a2f8bc8c0e552f21443803d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enrico=20Tr=C3=B6ger?= Date: Fri, 13 Mar 2009 09:59:58 +0000 Subject: [PATCH] Use G_DEFINE_TYPE in the GTK+ class template instead of manual code. Other minor cleanups. git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@3625 ea778897-0a13-0410-b9d1-a72fbfd435f5 --- ChangeLog | 3 +++ plugins/classbuilder.c | 47 ++++++++---------------------------------- 2 files changed, 12 insertions(+), 38 deletions(-) diff --git a/ChangeLog b/ChangeLog index 28acededa..6bd13edab 100644 --- a/ChangeLog +++ b/ChangeLog @@ -8,6 +8,9 @@ Add filetype ActionScript (patch by Chris Macksey, thanks). Update type keywords only for real C-like languages. Fix wrong sorting of Assembler and Ada filetypes. + * plugins/classbuilder.c: + Use G_DEFINE_TYPE in the GTK+ class template instead of manual code. + Other minor cleanups. 2009-03-05 Enrico Tröger diff --git a/plugins/classbuilder.c b/plugins/classbuilder.c index 67dc42b10..a30f75e47 100644 --- a/plugins/classbuilder.c +++ b/plugins/classbuilder.c @@ -168,52 +168,24 @@ struct _{class_name}Private\n\ /* add your private declarations here */\n\ };\n\ \n\ -static void {class_name_low}_class_init ({class_name}Class *klass);\n\ -static void {class_name_low}_init ({class_name} *self);\n\ {destructor_decl}\ \n\ -/* Local data */\n\ -static {base_name}Class *parent_class = NULL;\n\ -\n\ -GType {class_name_low}_get_type(void)\n\ -{\n\ - static GType self_type = 0;\n\ - if (! self_type)\n\ - {\n\ - static const GTypeInfo self_info = \n\ - {\n\ - sizeof({class_name}Class),\n\ - NULL, /* base_init */\n\ - NULL, /* base_finalize */\n\ - (GClassInitFunc){class_name_low}_class_init,\n\ - NULL, /* class_finalize */\n\ - NULL, /* class_data */\n\ - sizeof({class_name}),\n\ - 0,\n\ - (GInstanceInitFunc){class_name_low}_init,\n\ - NULL /* value_table */\n\ - };\n\ - \n\ - self_type = g_type_register_static({base_gtype}, \"{class_name}\", &self_info, 0);\n\ - }\n\ - \n\ - return self_type;\n\ -}\n\ +G_DEFINE_TYPE({class_name}, {class_name_low}, {base_gtype});\n\ \n\n\ static void {class_name_low}_class_init({class_name}Class *klass)\n\ {\n\ {gtk_destructor_registration}\n\ - parent_class = ({base_name}Class*)g_type_class_peek({base_gtype});\n\ g_type_class_add_private((gpointer)klass, sizeof({class_name}Private));\n\ }\n\ -\n\n\ +\n\ +{destructor_impl}\n\ +\n\ static void {class_name_low}_init({class_name} *self)\n\ {\n\ \n\ }\n\ \n\ {constructor_impl}\n\ -{destructor_impl}\n\ "; @@ -679,13 +651,12 @@ static void cc_dlg_on_create_class(CreateClassDialog *cc_dlg) gtk_entry_get_text(GTK_ENTRY(cc_dlg->gtk_constructor_type_entry)), class_info->class_name_low); class_info->constructor_impl = g_strdup_printf("\n" - "%s* %s_new(void)\n" + "%s *%s_new(void)\n" "{\n" - "\treturn (%s*)g_object_new(%s_TYPE, NULL);\n" + "\treturn g_object_new(%s_TYPE, NULL);\n" "}\n", gtk_entry_get_text(GTK_ENTRY(cc_dlg->gtk_constructor_type_entry)), class_info->class_name_low, - gtk_entry_get_text(GTK_ENTRY(cc_dlg->gtk_constructor_type_entry)), class_info->class_name_up); } else @@ -710,13 +681,13 @@ static void cc_dlg_on_create_class(CreateClassDialog *cc_dlg) "\tg_return_if_fail(object != NULL);\n" "\tg_return_if_fail(IS_%s(object));\n\n" "\tself = %s(object);\n\n" - "\tif (G_OBJECT_CLASS(parent_class)->finalize)\n" - "\t\t(* G_OBJECT_CLASS(parent_class)->finalize)(object);\n" + "\tG_OBJECT_CLASS(%s_parent_class)->finalize(object);\n" "}\n", class_info->class_name_low, class_info->class_name, class_info->class_name_up, - class_info->class_name_up); + class_info->class_name_up, + class_info->class_name_low); } else {