gimp r26328 - in trunk: . app/pdb libgimp tools/pdbgen/pdb



Author: neo
Date: Mon Jul 28 14:13:18 2008
New Revision: 26328
URL: http://svn.gnome.org/viewvc/gimp?rev=26328&view=rev

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

	* tools/pdbgen/pdb/vectors.pdb: applied patch from 
LightningIsMyName
	adding the new PDB function gimp-vectors-copy (bug #544212).

	* app/pdb/internal-procs.c
	* app/pdb/vectors-cmds.c
	* libgimp/gimpvectors_pdb.[ch]: regenerated.

	* libgimp/gimp.def: updated.



Modified:
   trunk/ChangeLog
   trunk/app/pdb/internal-procs.c
   trunk/app/pdb/vectors-cmds.c
   trunk/libgimp/gimp.def
   trunk/libgimp/gimpvectors_pdb.c
   trunk/libgimp/gimpvectors_pdb.h
   trunk/tools/pdbgen/pdb/vectors.pdb

Modified: trunk/app/pdb/internal-procs.c
==============================================================================
--- trunk/app/pdb/internal-procs.c	(original)
+++ trunk/app/pdb/internal-procs.c	Mon Jul 28 14:13:18 2008
@@ -29,7 +29,7 @@
 #include "internal-procs.h"
 
 
-/* 587 procedures registered total */
+/* 588 procedures registered total */
 
 void
 internal_procs_init (GimpPDB *pdb)

Modified: trunk/app/pdb/vectors-cmds.c
==============================================================================
--- trunk/app/pdb/vectors-cmds.c	(original)
+++ trunk/app/pdb/vectors-cmds.c	Mon Jul 28 14:13:18 2008
@@ -145,6 +145,38 @@
 }
 
 static GValueArray *
+vectors_copy_invoker (GimpProcedure      *procedure,
+                      Gimp               *gimp,
+                      GimpContext        *context,
+                      GimpProgress       *progress,
+                      const GValueArray  *args,
+                      GError            **error)
+{
+  gboolean success = TRUE;
+  GValueArray *return_vals;
+  GimpVectors *vectors;
+  GimpVectors *vectors_copy = NULL;
+
+  vectors = gimp_value_get_vectors (&args->values[0], gimp);
+
+  if (success)
+    {
+      vectors_copy = GIMP_VECTORS (gimp_item_duplicate (GIMP_ITEM (vectors),
+                                   G_TYPE_FROM_INSTANCE (vectors)));
+
+      if (! vectors_copy)
+        success = FALSE;
+    }
+
+  return_vals = gimp_procedure_get_return_values (procedure, success);
+
+  if (success)
+    gimp_value_set_vectors (&return_vals->values[1], vectors_copy);
+
+  return return_vals;
+}
+
+static GValueArray *
 vectors_get_image_invoker (GimpProcedure      *procedure,
                            Gimp               *gimp,
                            GimpContext        *context,
@@ -1486,6 +1518,35 @@
   g_object_unref (procedure);
 
   /*
+   * gimp-vectors-copy
+   */
+  procedure = gimp_procedure_new (vectors_copy_invoker);
+  gimp_object_set_static_name (GIMP_OBJECT (procedure),
+                               "gimp-vectors-copy");
+  gimp_procedure_set_static_strings (procedure,
+                                     "gimp-vectors-copy",
+                                     "Copy a vectors object.",
+                                     "This procedure copies the specified vectors object and returns the copy.",
+                                     "Simon Budig",
+                                     "Simon Budig",
+                                     "2008",
+                                     NULL);
+  gimp_procedure_add_argument (procedure,
+                               gimp_param_spec_vectors_id ("vectors",
+                                                           "vectors",
+                                                           "The vectors object to copy",
+                                                           pdb->gimp, FALSE,
+                                                           GIMP_PARAM_READWRITE));
+  gimp_procedure_add_return_value (procedure,
+                                   gimp_param_spec_vectors_id ("vectors-copy",
+                                                               "vectors copy",
+                                                               "The newly copied vectors object",
+                                                               pdb->gimp, FALSE,
+                                                               GIMP_PARAM_READWRITE));
+  gimp_pdb_register_procedure (pdb, procedure);
+  g_object_unref (procedure);
+
+  /*
    * gimp-vectors-get-image
    */
   procedure = gimp_procedure_new (vectors_get_image_invoker);

Modified: trunk/libgimp/gimp.def
==============================================================================
--- trunk/libgimp/gimp.def	(original)
+++ trunk/libgimp/gimp.def	Mon Jul 28 14:13:18 2008
@@ -657,6 +657,7 @@
 	gimp_vectors_bezier_stroke_lineto
 	gimp_vectors_bezier_stroke_new_ellipse
 	gimp_vectors_bezier_stroke_new_moveto
+        gimp_vectors_copy
 	gimp_vectors_export_to_file
 	gimp_vectors_export_to_string
 	gimp_vectors_get_image

Modified: trunk/libgimp/gimpvectors_pdb.c
==============================================================================
--- trunk/libgimp/gimpvectors_pdb.c	(original)
+++ trunk/libgimp/gimpvectors_pdb.c	Mon Jul 28 14:13:18 2008
@@ -133,6 +133,39 @@
 }
 
 /**
+ * gimp_vectors_copy:
+ * @vectors_ID: The vectors object to copy.
+ *
+ * Copy a vectors object.
+ *
+ * This procedure copies the specified vectors object and returns the
+ * copy.
+ *
+ * Returns: The newly copied vectors object.
+ *
+ * Since: GIMP 2.6
+ */
+gint32
+gimp_vectors_copy (gint32 vectors_ID)
+{
+  GimpParam *return_vals;
+  gint nreturn_vals;
+  gint32 vectors_copy_ID = -1;
+
+  return_vals = gimp_run_procedure ("gimp-vectors-copy",
+                                    &nreturn_vals,
+                                    GIMP_PDB_VECTORS, vectors_ID,
+                                    GIMP_PDB_END);
+
+  if (return_vals[0].data.d_status == GIMP_PDB_SUCCESS)
+    vectors_copy_ID = return_vals[1].data.d_vectors;
+
+  gimp_destroy_params (return_vals, nreturn_vals);
+
+  return vectors_copy_ID;
+}
+
+/**
  * gimp_vectors_get_image:
  * @vectors_ID: The vectors object.
  *

Modified: trunk/libgimp/gimpvectors_pdb.h
==============================================================================
--- trunk/libgimp/gimpvectors_pdb.h	(original)
+++ trunk/libgimp/gimpvectors_pdb.h	Mon Jul 28 14:13:18 2008
@@ -34,6 +34,7 @@
                                                               const gchar            *name);
 gint32                gimp_vectors_new_from_text_layer       (gint32                  image_ID,
                                                               gint32                  layer_ID);
+gint32                gimp_vectors_copy                      (gint32                  vectors_ID);
 gint32                gimp_vectors_get_image                 (gint32                  vectors_ID);
 gchar*                gimp_vectors_get_name                  (gint32                  vectors_ID);
 gboolean              gimp_vectors_set_name                  (gint32                  vectors_ID,

Modified: trunk/tools/pdbgen/pdb/vectors.pdb
==============================================================================
--- trunk/tools/pdbgen/pdb/vectors.pdb	(original)
+++ trunk/tools/pdbgen/pdb/vectors.pdb	Mon Jul 28 14:13:18 2008
@@ -122,6 +122,38 @@
     );
 }
 
+sub vectors_copy {
+    $blurb = 'Copy a vectors object.';
+
+    $help = <<'HELP';
+This procedure copies the specified vectors object and returns the copy.
+HELP
+
+    &simon_pdb_misc('2008', '2.6');
+
+    @inargs = (
+	{ name => 'vectors', type => 'vectors',
+	  desc => 'The vectors object to copy' }
+    );
+
+    @outargs = (
+	{ name => 'vectors_copy', type => 'vectors',
+	  desc => 'The newly copied vectors object' }
+    );
+
+    %invoke = (
+	code => <<'CODE'
+{
+  vectors_copy = GIMP_VECTORS (gimp_item_duplicate (GIMP_ITEM (vectors),
+                               G_TYPE_FROM_INSTANCE (vectors)));
+
+  if (! vectors_copy)
+    success = FALSE;
+}
+CODE
+    );
+}
+
 sub vectors_get_image {
     $blurb = 'Returns the vectors objects image.';
     $help  = 'Returns the vectors objects image.';
@@ -1404,6 +1436,7 @@
 @procs = qw(vectors_is_valid
             vectors_new
 	    vectors_new_from_text_layer
+            vectors_copy
             vectors_get_image
             vectors_get_name vectors_set_name
             vectors_get_visible vectors_set_visible



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