+ if (c->glade_xml)
+ {
+ out_printf (out, "/* a function to connect glade callback */\n");
+ out_printf (out,"static void\n"
+ "___glade_xml_connect_foreach(const gchar *handler_name,\n"
+ "GObject *object,\n"
+ "const gchar *signal_name,\n"
+ "const gchar *signal_data,\n"
+ "GObject *connect_object,\n"
+ "gboolean after,\n"
+ "gpointer user_data)\n"
+ "{\n"
+ "\tstatic GModule * allsymbols = NULL;\n"
+ " \n"
+ "\tif (!allsymbols) allsymbols = g_module_open(NULL, 0);\n"
+ "\tif (allsymbols) {\n"
+ "\t\tgchar * func_name = g_strdup_printf(\"%s_%%s\", handler_name);\n"
+ "\t\tGCallback func;\n"
+ "\n"
+ "\t\tif (!g_module_symbol(allsymbols, func_name, (gpointer)&func)){\n"
+ "\t\t\tif (!g_module_symbol(allsymbols, handler_name, (gpointer)&func)) {\n"
+ "\t\t\t\tg_warning(\"could not find signal handler '%%s'.\", func_name);\n"
+ "\t\t\t\tg_free(func_name);\n"
+ "\t\t\t\treturn;\n"
+ "\t\t\t}\n"
+ "\t\t}\n"
+ "\t\tif (after)\n"
+ "\t\t\tg_signal_connect_data(object, signal_name, func, user_data, NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED);\n"
+ "\t\telse\n"
+ "\t\t\tg_signal_connect_data(object, signal_name, func, user_data, NULL, G_CONNECT_SWAPPED);\n"
+ "\t\tg_free(func_name);\n"
+ "\t}\n"
+ "}\n"
+ "\n",
+ funcbase);
+ }
+
+ for (li = nodes; li != NULL; li = li->next) {
+ Node *node = li->data;
+ if (node->type == CCODE_NODE) {
+ CCode *cc = (CCode *)node;
+ if (cc->cctype == AD_CCODE)
+ print_ccode_block (cc);
+ }
+ }
+
+ if (need_constructor)
+ add_constructor (c);
+