gimp r27950 - in trunk: . app/pdb



Author: martinn
Date: Sun Jan 25 20:06:09 2009
New Revision: 27950
URL: http://svn.gnome.org/viewvc/gimp?rev=27950&view=rev

Log:
* app/pdb/gimpprocedure.[ch] (gimp_procedure_create_override): New
helper function that creates a new GimpProcedure that can be used
to override an existing procedure.


Modified:
   trunk/ChangeLog
   trunk/app/pdb/gimpprocedure.c
   trunk/app/pdb/gimpprocedure.h

Modified: trunk/app/pdb/gimpprocedure.c
==============================================================================
--- trunk/app/pdb/gimpprocedure.c	(original)
+++ trunk/app/pdb/gimpprocedure.c	Sun Jan 25 20:06:09 2009
@@ -529,6 +529,38 @@
   procedure->num_values++;
 }
 
+/**
+ * gimp_procedure_create_override:
+ * @procedure:
+ * @new_marshal_func:
+ *
+ * Creates a new GimpProcedure that can be used to override the
+ * existing @procedure.
+ *
+ * Returns: The new #GimpProcedure.
+ **/
+GimpProcedure *
+gimp_procedure_create_override (GimpProcedure   *procedure,
+                                GimpMarshalFunc  new_marshal_func)
+{
+  GimpProcedure *new_procedure = NULL;
+  const gchar   *name          = NULL;
+  int            i             = 0;
+
+  new_procedure = gimp_procedure_new (new_marshal_func);
+  name          = gimp_object_get_name (GIMP_OBJECT (procedure));
+
+  gimp_object_set_static_name (GIMP_OBJECT (new_procedure), name);
+
+  for (i = 0; i < procedure->num_args; i++)
+    gimp_procedure_add_argument (new_procedure, procedure->args[i]);
+
+  for (i = 0; i < procedure->num_values; i++)
+    gimp_procedure_add_return_value (new_procedure, procedure->values[i]);
+
+  return new_procedure;
+}
+
 
 /*  private functions  */
 

Modified: trunk/app/pdb/gimpprocedure.h
==============================================================================
--- trunk/app/pdb/gimpprocedure.h	(original)
+++ trunk/app/pdb/gimpprocedure.h	Sun Jan 25 20:06:09 2009
@@ -123,6 +123,9 @@
                                                    gboolean          success,
                                                    const GError     *error);
 
+GimpProcedure * gimp_procedure_create_override    (GimpProcedure    *procedure,
+                                                   GimpMarshalFunc   new_marshal_func);
+
 GValueArray   * gimp_procedure_execute            (GimpProcedure    *procedure,
                                                    Gimp             *gimp,
                                                    GimpContext      *context,



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