diff src/genprops.awk @ 8059:75c99d3f97d7

Octave to backend notification scheme
author John W. Eaton <jwe@octave.org>
date Tue, 26 Aug 2008 13:24:15 -0400
parents f1a1f6dd7fac
children f819e8992367
line wrap: on
line diff
--- a/src/genprops.awk
+++ b/src/genprops.awk
@@ -260,6 +260,18 @@
 
   if (idx > 0)
     print "\npublic:\n";
+  
+  if (idx > 0)
+  {
+    printf ("  enum\n  {");
+    for (i = 1; i <= idx; i++)
+    {
+      printf ("%s\n    %s = %d", (i == 1 ? "" : ","), toupper(name[i]), pcount);
+      pcount++;
+    }
+    printf ("\n  };\n\n");
+    pcount = (int(pcount/1000)+1)*1000;
+  }
 
   for (i = 1; i <= idx; i++)
   {
@@ -325,7 +337,8 @@
           printf ("        set_%smode (\"manual\");\n", name[i]);
 	if (has_builtin_listeners)
 	  printf ("        %s.run_listeners (POSTSET);\n", name[i]);
-        printf ("        mark_modified ();\n      }\n  }\n\n");
+        printf ("        mark_modified ();\n");
+        printf ("      }\n  }\n\n");
       }
       else
         printf (";\n\n");
@@ -380,6 +393,7 @@
     for (i = 1; i <= idx; i++)
     {
 ##    printf ("  insert_static_property (\"%s\", %s);\n", name[i], name[i]) >> filename;
+      printf ("  %s.set_id (%s);\n", name[i], toupper(name[i])) >> filename;
       if (hidden[i])
         printf ("  %s.set_hidden (true);\n", name[i]) >> filename;
     }
@@ -492,6 +506,7 @@
   filename = "graphics-props.cc";
   printf ("// DO NOT EDIT!  Generated automatically by genprops.awk.\n\n");
   printf ("// DO NOT EDIT!  Generated automatically by genprops.awk.\n\n") > filename;
+  pcount = 1000;
 }
 
 /BEGIN_PROPERTIES\(.*\)/ {