]> git.draconx.ca Git - gob-dx.git/blobdiff - src/parse.y
Release 2.0.13
[gob-dx.git] / src / parse.y
index f5d368800d945a00b9367d11e206c6dd6b851071..53d32eb3d055fd0f82314be3b71b8adbeccedaaa 100644 (file)
@@ -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($<id>2,"abstract") == 0) {
+                               abstract = TRUE;
+                       } else {
+                               yyerror(_("parse error"));
+                               YYERROR;
+                       }
+               }
        | '(' TOKEN TOKEN ')' classflags {
                        if(strcmp($<id>2,"chunks") == 0) {
                                g_free (chunk_size);