diff src/genprops.awk @ 7826:68550ad9ee9c

Add support for extern updaters. Add set_figure_position interface to graphics_backend.
author Michael Goffioul <michael.goffioul@gmail.com>
date Tue, 12 Feb 2008 16:37:56 +0100
parents f2000f1971ab
children 4fb2db9c87dd
line wrap: on
line diff
--- a/src/genprops.awk
+++ b/src/genprops.awk
@@ -291,7 +291,7 @@
         printf ("\n  {\n    if (! error_state)\n      {\n        %s = val;\n",
           name[i]);
         if (updater[i])
-          printf ("        %s ();\n", updater[i]);
+          printf ("        update_%s ();\n", name[i]);
         if (limits[i])
           printf ("        update_axis_limits (\"%s\");\n", name[i]);
         if (mode[i])
@@ -302,6 +302,11 @@
         printf (";\n\n");
     }
 
+    if (updater[i] == "extern")
+    {
+      printf ("  void update_%s (void);\n\n", name[i]);
+    }
+
 ##    if (emit_ov_set[i])
 ##    {
 ##      printf ("  void set_%s (const octave_value& val)", name[i]);
@@ -528,10 +533,15 @@
 	if (index (quals, "r"))
 	  readonly[idx] = 1;
 
-        ## There is an updater method that should be called
+        ## There is an inline updater method that should be called
         ## from the set method
         if (index (quals, "u"))
-          updater[idx] = ("update_" name[idx]);
+          updater[idx] = "inline";
+        
+	## There is an extern updater method that should be called
+        ## from the set method
+        if (index (quals, "U"))
+          updater[idx] = "extern";
 
 ##        ## emmit an asignment set function
 ##        if (index (quals, "a"))