+static char *
+get_prop_enum_flag_cast (Property *prop)
+{
+ char *tmp, *ret;
+ if (prop->extra_gtktype == NULL ||
+ /* HACK! just in case someone made this
+ * work with 2.0.0 by using the TYPE
+ * macro directly */
+ ((strstr (prop->extra_gtktype, "_TYPE_") != NULL ||
+ strstr (prop->extra_gtktype, "TYPE_") == prop->extra_gtktype) &&
+ strchr (prop->extra_gtktype, ':') == NULL)) {
+ if (prop->ptype != NULL)
+ return get_type (prop->ptype, TRUE);
+ else
+ return g_strdup ("");
+ }
+ tmp = remove_sep (prop->extra_gtktype);
+ ret = g_strdup_printf ("(%s) ", tmp);
+ g_free (tmp);
+ return ret;
+}
+
+static void
+add_construct_glade (char * file, char * root, char * domain)
+{
+ Node *var;
+ Type * type;
+
+ type = (Type *)node_new (TYPE_NODE,
+ "name", "GladeXML",
+ "pointer", "*",
+ NULL);
+ initializer = g_strdup_printf("\t{\n"
+ "\tGtkWidget * root;\n"
+ "\t%%1$s->_priv->_glade_xml = glade_xml_new(%s, %s, %s);\n"
+ "\troot = glade_xml_get_widget(%%1$s->_priv->_glade_xml, %s);\n"
+ "\tgtk_widget_show(root);\n"
+ "\tgtk_container_add(GTK_CONTAINER(%%1$s), root);\n"
+ "\tglade_xml_signal_autoconnect_full(%%1$s->_priv->_glade_xml, (GladeXMLConnectFunc)___glade_xml_connect_foreach, (gpointer)%%1$s);\n"
+ "}\n", file, root, domain ? domain : "NULL", root);
+
+ var = node_new (VARIABLE_NODE,
+ "scope", PRIVATE_SCOPE,
+ "vtype:steal", type,
+ "glade_widget", FALSE,
+ "id:steal", "_glade_xml",
+ "destructor_unref", FALSE,
+ "destructor", "g_object_unref",
+ "destructor_simple", TRUE,
+ "initializer", initializer,
+ "initializer_simple", FALSE,
+ NULL);
+ class_nodes = g_list_prepend(class_nodes, var);
+}
+