X-Git-Url: http://git.draconx.ca/gitweb/gob-dx.git/blobdiff_plain/a8ea1a669f332b0ed29c6271896476f59f357533..refs/tags/v2.0.13:/src/parse.y diff --git a/src/parse.y b/src/parse.y index f5d3688..53d32eb 100644 --- a/src/parse.y +++ b/src/parse.y @@ -44,6 +44,7 @@ static GList *enum_vals = NULL; static GList *flag_vals = NULL; static GList *error_vals = NULL; +static gboolean abstract = FALSE; static char *chunk_size = NULL; static char *bonobo_object_class = NULL; static int glade_xml = FALSE; @@ -473,7 +474,6 @@ add_construct_glade (char * file, char * root, char * domain) Node *var; Type * type; GList * flags = NULL; - char * set; type = (Type *)node_new (TYPE_NODE, "name", "GladeXML", @@ -481,11 +481,11 @@ add_construct_glade (char * file, char * root, char * domain) NULL); initializer = g_strdup_printf("\t{\n" "\tGtkWidget * root;\n" - "\to->_priv->_glade_xml = glade_xml_new(%s, %s, %s);\n" - "\troot = glade_xml_get_widget(o->_priv->_glade_xml, %s);\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(o), root);\n" - "\tglade_xml_signal_autoconnect_full(o->_priv->_glade_xml, (GladeXMLConnectFunc)___glade_xml_connect_foreach, (gpointer)o);\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, @@ -778,6 +778,7 @@ classdec: CLASS TYPETOKEN FROM TYPETOKEN classflags { "glade_xml", glade_xml, "interfaces:steal", interfaces, "chunk_size:steal", chunk_size, + "abstract", abstract, NULL); bonobo_object_class = NULL; glade_xml = FALSE; @@ -787,6 +788,14 @@ classdec: CLASS TYPETOKEN FROM TYPETOKEN classflags { ; classflags: + | '(' TOKEN ')' classflags { + if(strcmp($2,"abstract") == 0) { + abstract = TRUE; + } else { + yyerror(_("parse error")); + YYERROR; + } + } | '(' TOKEN TOKEN ')' classflags { if(strcmp($2,"chunks") == 0) { g_free (chunk_size);