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
This commit is contained in:
Enrico Tröger 2009-03-13 09:59:58 +00:00
parent 4122c1b138
commit f6087b5af8
2 changed files with 12 additions and 38 deletions

View File

@ -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 <enrico(dot)troeger(at)uvena(dot)de>

View File

@ -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
{