gimp r26189 - in trunk: . app/pdb app/plug-in libgimp libgimpbase plug-ins/pygimp plug-ins/script-fu tools/pdbgen



Author: neo
Date: Mon Jul 14 14:09:16 2008
New Revision: 26189
URL: http://svn.gnome.org/viewvc/gimp?rev=26189&view=rev

Log:
2008-07-14  Sven Neumann  <sven gimp org>

	Add new PDB data type PDB_COLORARRAY for using arrays of GimpRGB
	colors as argument or return value.

	* libgimpbase/gimpbaseenums.[ch] (enum GimpPDBArgType): replaced
	the unused GIMP_PDB_BOUNDARY with GIMP_PDB_COLORARRAY.

	* libgimpbase/gimpprotocol.h: increased GIMP_PROTOCOL_VERSION.
	(struct _GPParam): added d_colorarray entry to the union.

	* libgimpbase/gimpprotocol.c
	* libgimp/gimp.[ch]
	* app/pdb/gimp-pdb-compat.c
	* app/plug-in/plug-in-params.c
	* app/plug-in/gimpplugin-message.c
	* tools/pdbgen/pdb.pl: deal with the new data type.

	* tools/pdbgen/enums.pl: regenerated.

	* plug-ins/pygimp/pygimp-pdb.c
	* plug-ins/script-fu/scheme-wrapper.c: handle the new data type.



Modified:
   trunk/ChangeLog
   trunk/app/pdb/gimp-pdb-compat.c
   trunk/app/plug-in/gimpplugin-message.c
   trunk/app/plug-in/plug-in-params.c
   trunk/libgimp/gimp.c
   trunk/libgimp/gimp.h
   trunk/libgimpbase/gimpbaseenums.c
   trunk/libgimpbase/gimpbaseenums.h
   trunk/libgimpbase/gimpprotocol.c
   trunk/libgimpbase/gimpprotocol.h
   trunk/plug-ins/pygimp/pygimp-pdb.c
   trunk/plug-ins/script-fu/scheme-wrapper.c
   trunk/tools/pdbgen/enums.pl
   trunk/tools/pdbgen/pdb.pl

Modified: trunk/app/pdb/gimp-pdb-compat.c
==============================================================================
--- trunk/app/pdb/gimp-pdb-compat.c	(original)
+++ trunk/app/pdb/gimp-pdb-compat.c	Mon Jul 14 14:09:16 2008
@@ -148,7 +148,9 @@
                                             G_PARAM_READWRITE);
       break;
 
-    case GIMP_PDB_BOUNDARY:
+    case GIMP_PDB_COLORARRAY:
+      pspec = gimp_param_spec_color_array (name, name, desc,
+                                           G_PARAM_READWRITE);
       break;
 
     case GIMP_PDB_VECTORS:
@@ -220,7 +222,6 @@
       return GIMP_TYPE_RGB;
 
     case GIMP_PDB_REGION:
-    case GIMP_PDB_BOUNDARY:
       break;
 
     case GIMP_PDB_DISPLAY:
@@ -241,6 +242,9 @@
     case GIMP_PDB_SELECTION:
       return GIMP_TYPE_SELECTION_ID;
 
+    case GIMP_PDB_COLORARRAY:
+      return GIMP_TYPE_COLOR_ARRAY;
+
     case GIMP_PDB_VECTORS:
       return GIMP_TYPE_VECTORS_ID;
 

Modified: trunk/app/plug-in/gimpplugin-message.c
==============================================================================
--- trunk/app/plug-in/gimpplugin-message.c	(original)
+++ trunk/app/plug-in/gimpplugin-message.c	Mon Jul 14 14:09:16 2008
@@ -618,7 +618,8 @@
       if ((proc_install->params[i].type == GIMP_PDB_INT32ARRAY ||
            proc_install->params[i].type == GIMP_PDB_INT8ARRAY  ||
            proc_install->params[i].type == GIMP_PDB_FLOATARRAY ||
-           proc_install->params[i].type == GIMP_PDB_STRINGARRAY)
+           proc_install->params[i].type == GIMP_PDB_STRINGARRAY ||
+           proc_install->params[i].type == GIMP_PDB_COLORARRAY)
           &&
           proc_install->params[i - 1].type != GIMP_PDB_INT32)
         {

Modified: trunk/app/plug-in/plug-in-params.c
==============================================================================
--- trunk/app/plug-in/plug-in-params.c	(original)
+++ trunk/app/plug-in/plug-in-params.c	Mon Jul 14 14:09:16 2008
@@ -221,8 +221,16 @@
           g_value_set_int (&value, params[i].data.d_selection);
           break;
 
-        case GIMP_PDB_BOUNDARY:
-          g_message ("the \"boundary\" arg type is not currently supported");
+        case GIMP_PDB_COLORARRAY:
+          count = g_value_get_int (&args->values[i - 1]);
+          if (full_copy)
+            gimp_value_set_colorarray (&value,
+                                      params[i].data.d_colorarray,
+                                      count);
+          else
+            gimp_value_set_static_colorarray (&value,
+                                             params[i].data.d_colorarray,
+                                             count);
           break;
 
         case GIMP_PDB_VECTORS:
@@ -374,8 +382,11 @@
           params[i].data.d_selection = g_value_get_int (value);
           break;
 
-        case GIMP_PDB_BOUNDARY:
-          g_message ("the \"boundary\" arg type is not currently supported");
+        case GIMP_PDB_COLORARRAY:
+          if (full_copy)
+            params[i].data.d_colorarray = gimp_value_dup_colorarray (value);
+          else
+            params[i].data.d_colorarray = (GimpRGB *) gimp_value_get_colorarray (value);
           break;
 
         case GIMP_PDB_VECTORS:

Modified: trunk/libgimp/gimp.c
==============================================================================
--- trunk/libgimp/gimp.c	(original)
+++ trunk/libgimp/gimp.c	Mon Jul 14 14:09:16 2008
@@ -736,7 +736,6 @@
         case GIMP_PDB_CHANNEL:
         case GIMP_PDB_DRAWABLE:
         case GIMP_PDB_SELECTION:
-        case GIMP_PDB_BOUNDARY:
         case GIMP_PDB_VECTORS:
         case GIMP_PDB_STATUS:
           (void) va_arg (args, gint);
@@ -769,6 +768,7 @@
           (void) va_arg (args, gchar **);
           break;
         case GIMP_PDB_COLOR:
+	case GIMP_PDB_COLORARRAY:
           (void) va_arg (args, GimpRGB *);
           break;
         case GIMP_PDB_PARASITE:
@@ -850,8 +850,8 @@
         case GIMP_PDB_SELECTION:
           params[i].data.d_selection = va_arg (args, gint32);
           break;
-        case GIMP_PDB_BOUNDARY:
-          params[i].data.d_boundary = va_arg (args, gint32);
+        case GIMP_PDB_COLORARRAY:
+          params[i].data.d_colorarray = va_arg (args, GimpRGB *);
           break;
         case GIMP_PDB_VECTORS:
           params[i].data.d_vectors = va_arg (args, gint32);

Modified: trunk/libgimp/gimp.h
==============================================================================
--- trunk/libgimp/gimp.h	(original)
+++ trunk/libgimp/gimp.h	Mon Jul 14 14:09:16 2008
@@ -128,6 +128,7 @@
   guint8           *d_int8array;
   gdouble          *d_floatarray;
   gchar           **d_stringarray;
+  GimpRGB          *d_colorarray;
   GimpRGB           d_color;
   GimpParamRegion   d_region;
   gint32            d_display;

Modified: trunk/libgimpbase/gimpbaseenums.c
==============================================================================
--- trunk/libgimpbase/gimpbaseenums.c	(original)
+++ trunk/libgimpbase/gimpbaseenums.c	Mon Jul 14 14:09:16 2008
@@ -815,12 +815,11 @@
     { GIMP_PDB_CHANNEL, "GIMP_PDB_CHANNEL", "channel" },
     { GIMP_PDB_DRAWABLE, "GIMP_PDB_DRAWABLE", "drawable" },
     { GIMP_PDB_SELECTION, "GIMP_PDB_SELECTION", "selection" },
-    { GIMP_PDB_BOUNDARY, "GIMP_PDB_BOUNDARY", "boundary" },
+    { GIMP_PDB_COLORARRAY, "GIMP_PDB_COLORARRAY", "colorarray" },
     { GIMP_PDB_VECTORS, "GIMP_PDB_VECTORS", "vectors" },
     { GIMP_PDB_PARASITE, "GIMP_PDB_PARASITE", "parasite" },
     { GIMP_PDB_STATUS, "GIMP_PDB_STATUS", "status" },
     { GIMP_PDB_END, "GIMP_PDB_END", "end" },
-    { GIMP_PDB_PATH, "GIMP_PDB_PATH", "path" },
     { 0, NULL, NULL }
   };
 
@@ -844,12 +843,11 @@
     { GIMP_PDB_CHANNEL, "GIMP_PDB_CHANNEL", NULL },
     { GIMP_PDB_DRAWABLE, "GIMP_PDB_DRAWABLE", NULL },
     { GIMP_PDB_SELECTION, "GIMP_PDB_SELECTION", NULL },
-    { GIMP_PDB_BOUNDARY, "GIMP_PDB_BOUNDARY", NULL },
+    { GIMP_PDB_COLORARRAY, "GIMP_PDB_COLORARRAY", NULL },
     { GIMP_PDB_VECTORS, "GIMP_PDB_VECTORS", NULL },
     { GIMP_PDB_PARASITE, "GIMP_PDB_PARASITE", NULL },
     { GIMP_PDB_STATUS, "GIMP_PDB_STATUS", NULL },
     { GIMP_PDB_END, "GIMP_PDB_END", NULL },
-    { GIMP_PDB_PATH, "GIMP_PDB_PATH", NULL },
     { 0, NULL, NULL }
   };
 

Modified: trunk/libgimpbase/gimpbaseenums.h
==============================================================================
--- trunk/libgimpbase/gimpbaseenums.h	(original)
+++ trunk/libgimpbase/gimpbaseenums.h	Mon Jul 14 14:09:16 2008
@@ -373,13 +373,15 @@
   GIMP_PDB_CHANNEL,
   GIMP_PDB_DRAWABLE,
   GIMP_PDB_SELECTION,
-  GIMP_PDB_BOUNDARY,
+  GIMP_PDB_COLORARRAY,
   GIMP_PDB_VECTORS,
   GIMP_PDB_PARASITE,
   GIMP_PDB_STATUS,
   GIMP_PDB_END,
 
-  GIMP_PDB_PATH = GIMP_PDB_VECTORS /* deprecated */
+  /*  the following aliases are deprecated  */
+  GIMP_PDB_PATH     = GIMP_PDB_VECTORS,     /*< skip >*/
+  GIMP_PDB_BOUNDARY = GIMP_PDB_COLORARRAY   /*< skip >*/
 } GimpPDBArgType;
 
 

Modified: trunk/libgimpbase/gimpprotocol.c
==============================================================================
--- trunk/libgimpbase/gimpprotocol.c	(original)
+++ trunk/libgimpbase/gimpprotocol.c	Mon Jul 14 14:09:16 2008
@@ -1481,11 +1481,17 @@
             goto cleanup;
           break;
 
-        case GIMP_PDB_BOUNDARY:
-          if (! _gimp_wire_read_int32 (channel,
-                                       (guint32 *) &(*params)[i].data.d_boundary, 1,
-                                       user_data))
-            goto cleanup;
+	case GIMP_PDB_COLORARRAY:
+	  (*params)[i].data.d_colorarray = g_new (GimpRGB,
+                                                  (*params)[i-1].data.d_int32);
+	  if (! _gimp_wire_read_color (channel,
+                                        (*params)[i].data.d_colorarray,
+                                        (*params)[i-1].data.d_int32,
+                                        user_data))
+	    {
+	      g_free ((*params)[i].data.d_colorarray);
+	      goto cleanup;
+	    }
           break;
 
         case GIMP_PDB_VECTORS:
@@ -1698,9 +1704,10 @@
             return;
           break;
 
-        case GIMP_PDB_BOUNDARY:
-          if (! _gimp_wire_write_int32 (channel,
-                                        (const guint32 *) &params[i].data.d_boundary, 1,
+        case GIMP_PDB_COLORARRAY:
+          if (! _gimp_wire_write_color (channel,
+                                        params[i].data.d_colorarray,
+                                        params[i-1].data.d_int32,
                                         user_data))
             return;
           break;
@@ -1773,7 +1780,6 @@
         case GIMP_PDB_CHANNEL:
         case GIMP_PDB_DRAWABLE:
         case GIMP_PDB_SELECTION:
-        case GIMP_PDB_BOUNDARY:
         case GIMP_PDB_VECTORS:
         case GIMP_PDB_STATUS:
           break;
@@ -1811,6 +1817,10 @@
             }
           break;
 
+        case GIMP_PDB_COLORARRAY:
+          g_free (params[i].data.d_colorarray);
+          break;
+
         case GIMP_PDB_PARASITE:
           if (params[i].data.d_parasite.name)
             g_free (params[i].data.d_parasite.name);

Modified: trunk/libgimpbase/gimpprotocol.h
==============================================================================
--- trunk/libgimpbase/gimpprotocol.h	(original)
+++ trunk/libgimpbase/gimpprotocol.h	Mon Jul 14 14:09:16 2008
@@ -27,7 +27,7 @@
 
 /* Increment every time the protocol changes
  */
-#define GIMP_PROTOCOL_VERSION  0x0012
+#define GIMP_PROTOCOL_VERSION  0x0013
 
 
 enum
@@ -120,6 +120,7 @@
     guint8       *d_int8array;
     gdouble      *d_floatarray;
     gchar       **d_stringarray;
+    GimpRGB      *d_colorarray;
     GimpRGB       d_color;
     struct
     {

Modified: trunk/plug-ins/pygimp/pygimp-pdb.c
==============================================================================
--- trunk/plug-ins/pygimp/pygimp-pdb.c	(original)
+++ trunk/plug-ins/pygimp/pygimp-pdb.c	Mon Jul 14 14:09:16 2008
@@ -287,8 +287,26 @@
 	case GIMP_PDB_SELECTION:
 	    value = pygimp_layer_new(params[i].data.d_selection);
 	    break;
-	case GIMP_PDB_BOUNDARY:
-	    value = PyInt_FromLong(params[i].data.d_boundary);
+	case GIMP_PDB_COLORARRAY:
+	    if (params[i].data.d_colorarray == NULL) {
+		value = PyTuple_New(0);
+		break;
+	    }
+	    if ((tmp=PyTuple_GetItem(args, i-1)) == NULL) {
+		Py_DECREF(args);
+		return NULL;
+	    }
+	    if (!PyInt_Check(tmp)) {
+		PyErr_SetString(PyExc_TypeError,
+				"count type must be integer");
+		Py_DECREF(args);
+		return NULL;
+	    }
+	    n = PyInt_AsLong(tmp);
+	    value = PyTuple_New(n);
+	    for (j = 0; j < n; j++)
+		PyTuple_SetItem(value, j,
+                                pygimp_rgb_new(&params[i].data.d_colorarray[j]));
 	    break;
 	case GIMP_PDB_VECTORS:
 	    value = pygimp_vectors_new(params[i].data.d_vectors);
@@ -524,9 +542,23 @@
 	    check(!pygimp_layer_check(item));
 	    ret[i].data.d_selection = ((PyGimpLayer *)item)->ID;
 	    break;
-	case GIMP_PDB_BOUNDARY:
-	    check(!PyInt_Check(item));
-	    ret[i].data.d_boundary = PyInt_AsLong(item);
+	case GIMP_PDB_COLORARRAY:
+	    {
+                GimpRGB *rgb;
+
+		check(!PySequence_Check(item));
+		len = PySequence_Length(item);
+		rgb = g_new(GimpRGB, len);
+		for (j = 0; j < len; j++) {
+		    if (!pygimp_rgb_from_pyobject(item, &rgb[j])) {
+			Py_DECREF(tuple);
+			g_free(rgb);
+			gimp_destroy_params(ret, nparams);
+			return NULL;
+		    }
+		}
+                ret[i].data.d_colorarray = rgb;
+	    }
 	    break;
 	case GIMP_PDB_VECTORS:
 	    check(!pygimp_vectors_check(item));

Modified: trunk/plug-ins/script-fu/scheme-wrapper.c
==============================================================================
--- trunk/plug-ins/script-fu/scheme-wrapper.c	(original)
+++ trunk/plug-ins/script-fu/scheme-wrapper.c	Mon Jul 14 14:09:16 2008
@@ -615,18 +615,18 @@
 #define typeflag(p) ((p)->_flag)
 #define type(p)     (typeflag(p)&T_MASKTYPE)
 
-char *ret_types[] = {
+static const char *ret_types[] = {
   "GIMP_PDB_INT32",       "GIMP_PDB_INT16",     "GIMP_PDB_INT8",
   "GIMP_PDB_FLOAT",       "GIMP_PDB_STRING",    "GIMP_PDB_INT32ARRAY",
   "GIMP_PDB_INT16ARRAY",  "GIMP_PDB_INT8ARRAY", "GIMP_PDB_FLOATARRAY",
   "GIMP_PDB_STRINGARRAY", "GIMP_PDB_COLOR",     "GIMP_PDB_REGION",
   "GIMP_PDB_DISPLAY",     "GIMP_PDB_IMAGE",     "GIMP_PDB_LAYER",
   "GIMP_PDB_CHANNEL",     "GIMP_PDB_DRAWABLE",  "GIMP_PDB_SELECTION",
-  "GIMP_PDB_BOUNDARY",    "GIMP_PDB_VECTORS",   "GIMP_PDB_PARASITE",
+  "GIMP_PDB_COLORARRY",   "GIMP_PDB_VECTORS",   "GIMP_PDB_PARASITE",
   "GIMP_PDB_STATUS",      "GIMP_PDB_END"
 };
 
-char *ts_types[] = {
+static const char *ts_types[] = {
   "T_NONE",
   "T_STRING",    "T_NUMBER",     "T_SYMBOL",       "T_PROC",
   "T_PAIR",      "T_CLOSURE",    "T_CONTINUATION", "T_FOREIGN",
@@ -634,7 +634,7 @@
   "T_PROMISE",   "T_ENVIRONMENT","T_ARRAY"
 };
 
-char *status_types[] = {
+static const char *status_types[] = {
   "GIMP_PDB_EXECUTION_ERROR", "GIMP_PDB_CALLING_ERROR",
   "GIMP_PDB_PASS_THROUGH",    "GIMP_PDB_SUCCESS",
   "GIMP_PDB_CANCEL"
@@ -739,7 +739,6 @@
         case GIMP_PDB_CHANNEL:
         case GIMP_PDB_DRAWABLE:
         case GIMP_PDB_SELECTION:
-        case GIMP_PDB_BOUNDARY:
         case GIMP_PDB_VECTORS:
           if (!sc->vptr->is_number (sc->vptr->pair_car (a)))
             success = FALSE;
@@ -846,7 +845,7 @@
     g_printerr ("     ");
     for (j = 0; j < count; ++j)
       g_printerr (" %ld",
-               sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) ));
+                  sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) ));
     g_printerr ("\n");
   }
 }
@@ -897,7 +896,7 @@
     g_printerr ("     ");
     for (j = 0; j < count; ++j)
       g_printerr (" %ld",
-               sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) ));
+                  sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) ));
     g_printerr ("\n");
   }
 }
@@ -950,7 +949,7 @@
     g_printerr ("     ");
     for (j = 0; j < count; ++j)
       g_printerr (" %ld",
-               sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) ));
+                  sc->vptr->ivalue ( sc->vptr->vector_elem (vector, j) ));
     g_printerr ("\n");
   }
 }
@@ -1003,7 +1002,7 @@
     g_printerr ("     ");
     for (j = 0; j < count; ++j)
       g_printerr (" %f",
-               sc->vptr->rvalue ( sc->vptr->vector_elem (vector, j) ));
+                  sc->vptr->rvalue ( sc->vptr->vector_elem (vector, j) ));
     g_printerr ("\n");
   }
 }
@@ -1104,6 +1103,66 @@
             }
           break;
 
+        case GIMP_PDB_COLORARRAY:
+          vector = sc->vptr->pair_car (a);
+          if (!sc->vptr->is_vector (vector))
+            success = FALSE;
+          if (success)
+            {
+              n_elements = args[i-1].data.d_int32;
+              if (n_elements < 0 ||
+                  n_elements > sc->vptr->vector_length (vector))
+                {
+                  g_snprintf (error_str, sizeof (error_str),
+                              "COLOR vector (argument %d) for function %s has "
+                              "size of %ld but expected size of %d",
+                              i+1, proc_name,
+                              sc->vptr->vector_length (vector), n_elements);
+                  return foreign_error (sc, error_str, 0);
+                }
+
+              args[i].data.d_colorarray = g_new (GimpRGB, n_elements);
+
+              for (j = 0; j < n_elements; j++)
+                {
+                  pointer v_element = sc->vptr->vector_elem (vector, j);
+                  pointer color_list;
+                  guchar  r, g, b;
+
+                  if (! (sc->vptr->is_list (sc,
+                                            sc->vptr->pair_car (v_element)) &&
+                         sc->vptr->list_length (sc,
+                                                sc->vptr->pair_car (v_element)) == 3))
+                    {
+                      g_snprintf (error_str, sizeof (error_str),
+                                  "Item %d in vector is not a color "
+                                  "(argument %d for function %s)",
+                                  j+1, i+1, proc_name);
+                      return foreign_error (sc, error_str, vector);
+                    }
+
+                  color_list = sc->vptr->pair_car (v_element);
+                  r = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)),
+                             0, 255);
+                  color_list = sc->vptr->pair_cdr (color_list);
+                  g = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)),
+                             0, 255);
+                  color_list = sc->vptr->pair_cdr (color_list);
+                  b = CLAMP (sc->vptr->ivalue (sc->vptr->pair_car (color_list)),
+                             0, 255);
+
+                  gimp_rgba_set_uchar (&args[i].data.d_colorarray[j],
+                                       r, g, b, 255);
+                }
+#if DEBUG_MARSHALL
+{
+glong count = sc->vptr->vector_length (vector);
+g_printerr ("      color vector has %ld elements\n", count);
+}
+#endif
+            }
+          break;
+
         case GIMP_PDB_REGION:
           if (! (sc->vptr->is_list (sc, sc->vptr->pair_car (a)) &&
             sc->vptr->list_length (sc, sc->vptr->pair_car (a)) == 4))
@@ -1282,7 +1341,6 @@
             case GIMP_PDB_CHANNEL:
             case GIMP_PDB_DRAWABLE:
             case GIMP_PDB_SELECTION:
-            case GIMP_PDB_BOUNDARY:
             case GIMP_PDB_VECTORS:
               return_val = sc->vptr->cons (sc,
                              sc->vptr->mk_integer (sc,
@@ -1457,6 +1515,38 @@
                 break;
               }
 
+            case GIMP_PDB_COLORARRAY:
+              /*  color arrays are always implemented such that the previous
+               *  return value contains the number of strings in the array
+               */
+              {
+                gint32   num_colors = values[i].data.d_int32;
+                GimpRGB *array  = (GimpRGB *) values[i + 1].data.d_colorarray;
+                pointer  vector = sc->vptr->mk_vector (sc, num_colors);
+
+                return_val = sc->vptr->cons (sc, vector, return_val);
+                set_safe_foreign (sc, return_val);
+
+                for (j = 0; j < num_colors; j++)
+                  {
+                    guchar r, g, b;
+
+                    gimp_rgb_get_uchar (&array[j], &r, &g, &b);
+
+                    intermediate_val = sc->vptr->cons (sc,
+                        sc->vptr->mk_integer (sc, r),
+                        sc->vptr->cons (sc,
+                            sc->vptr->mk_integer (sc, g),
+                            sc->vptr->cons (sc,
+                                sc->vptr->mk_integer (sc, b),
+                                sc->NIL)));
+                    return_val = sc->vptr->cons (sc,
+                                                 intermediate_val,
+                                                 return_val);
+                    set_safe_foreign (sc, return_val);
+                  }
+              }
+              break;
             case GIMP_PDB_REGION:
               {
                 gint32 x, y, w, h;
@@ -1612,6 +1702,10 @@
           g_free (params[i].data.d_stringarray);
           break;
 
+        case GIMP_PDB_COLORARRAY:
+          g_free (params[i].data.d_colorarray);
+          break;
+
         case GIMP_PDB_COLOR:
         case GIMP_PDB_REGION:
         case GIMP_PDB_DISPLAY:
@@ -1620,7 +1714,6 @@
         case GIMP_PDB_CHANNEL:
         case GIMP_PDB_DRAWABLE:
         case GIMP_PDB_SELECTION:
-        case GIMP_PDB_BOUNDARY:
         case GIMP_PDB_VECTORS:
         case GIMP_PDB_PARASITE:
         case GIMP_PDB_STATUS:

Modified: trunk/tools/pdbgen/enums.pl
==============================================================================
--- trunk/tools/pdbgen/enums.pl	(original)
+++ trunk/tools/pdbgen/enums.pl	Mon Jul 14 14:09:16 2008
@@ -265,9 +265,9 @@
 			  GIMP_PDB_COLOR GIMP_PDB_REGION GIMP_PDB_DISPLAY
 			  GIMP_PDB_IMAGE GIMP_PDB_LAYER GIMP_PDB_CHANNEL
 			  GIMP_PDB_DRAWABLE GIMP_PDB_SELECTION
-			  GIMP_PDB_BOUNDARY GIMP_PDB_VECTORS
+			  GIMP_PDB_COLORARRAY GIMP_PDB_VECTORS
 			  GIMP_PDB_PARASITE GIMP_PDB_STATUS GIMP_PDB_END
-			  GIMP_PDB_PATH) ],
+			  GIMP_PDB_PATH GIMP_PDB_BOUNDARY) ],
 	  mapping => { GIMP_PDB_INT32 => '0',
 		       GIMP_PDB_INT16 => '1',
 		       GIMP_PDB_INT8 => '2',
@@ -286,12 +286,13 @@
 		       GIMP_PDB_CHANNEL => '15',
 		       GIMP_PDB_DRAWABLE => '16',
 		       GIMP_PDB_SELECTION => '17',
-		       GIMP_PDB_BOUNDARY => '18',
+		       GIMP_PDB_COLORARRAY => '18',
 		       GIMP_PDB_VECTORS => '19',
 		       GIMP_PDB_PARASITE => '20',
 		       GIMP_PDB_STATUS => '21',
 		       GIMP_PDB_END => '22',
-		       GIMP_PDB_PATH => 'GIMP_PDB_VECTORS' }
+		       GIMP_PDB_PATH => 'GIMP_PDB_VECTORS',
+		       GIMP_PDB_BOUNDARY => 'GIMP_PDB_COLORARRAY' }
 	},
     GimpPDBProcType =>
 	{ contig => 1,

Modified: trunk/tools/pdbgen/pdb.pl
==============================================================================
--- trunk/tools/pdbgen/pdb.pl	(original)
+++ trunk/tools/pdbgen/pdb.pl	Mon Jul 14 14:09:16 2008
@@ -85,6 +85,13 @@
 		     init_value     => 'NULL',
 		     get_value_func => '$var = gimp_value_get_stringarray ($value)',
 		     set_value_func => 'gimp_value_take_stringarray ($value, $var, $var_len)' },
+    colorarray  => { name           => 'COLORARRAY',
+		     type           => 'GimpRGB *',
+		     const_type     => 'const GimpRGB *',
+		     array          => 1,
+		     init_value     => 'NULL',
+		     get_value_func => '$var = gimp_value_get_colorarray ($value)',
+		     set_value_func => 'gimp_value_take_colorarray ($value, $var, $var_len)' },
 
     color => { name           => 'COLOR' , 
 	       type           => 'GimpRGB ',



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]