diff --git a/ChangeLog b/ChangeLog index c2037f9460..87d0c38f9d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2005-01-03 Sven Neumann + + * tools/pdbgen/pdb/gradient.pdb: do actually add the new procedure + gimp_gradient_is_editable(). + + * app/pdb/gradient_cmds.c + * app/pdb/internal_procs.c + * libgimp/gimpgradient_pdb.[ch]: regenerated. + + * libgimp/gimp.def: updated. + 2005-01-03 Michael Natterer * app/actions/view-actions.c diff --git a/app/pdb/gradient_cmds.c b/app/pdb/gradient_cmds.c index db1d77b81a..04af3a37db 100644 --- a/app/pdb/gradient_cmds.c +++ b/app/pdb/gradient_cmds.c @@ -38,6 +38,7 @@ static ProcRecord gradient_new_proc; static ProcRecord gradient_duplicate_proc; +static ProcRecord gradient_is_editable_proc; static ProcRecord gradient_rename_proc; static ProcRecord gradient_delete_proc; static ProcRecord gradient_get_uniform_samples_proc; @@ -71,6 +72,7 @@ register_gradient_procs (Gimp *gimp) { procedural_db_register (gimp, &gradient_new_proc); procedural_db_register (gimp, &gradient_duplicate_proc); + procedural_db_register (gimp, &gradient_is_editable_proc); procedural_db_register (gimp, &gradient_rename_proc); procedural_db_register (gimp, &gradient_delete_proc); procedural_db_register (gimp, &gradient_get_uniform_samples_proc); @@ -242,6 +244,75 @@ static ProcRecord gradient_duplicate_proc = { { gradient_duplicate_invoker } } }; +static Argument * +gradient_is_editable_invoker (Gimp *gimp, + GimpContext *context, + GimpProgress *progress, + Argument *args) +{ + gboolean success = TRUE; + Argument *return_args; + gchar *name; + GimpGradient *gradient = NULL; + + name = (gchar *) args[0].value.pdb_pointer; + if (name == NULL || !g_utf8_validate (name, -1, NULL)) + success = FALSE; + + if (success) + { + gradient = (GimpGradient *) + gimp_container_get_child_by_name (gimp->gradient_factory->container, name); + + if (gradient) + success = TRUE; + else + success = FALSE; + } + + return_args = procedural_db_return_args (&gradient_is_editable_proc, success); + + if (success) + return_args[1].value.pdb_int = GIMP_DATA (gradient)->writable; + + return return_args; +} + +static ProcArg gradient_is_editable_inargs[] = +{ + { + GIMP_PDB_STRING, + "name", + "The gradient name" + } +}; + +static ProcArg gradient_is_editable_outargs[] = +{ + { + GIMP_PDB_INT32, + "editable", + "True if the gradient can be edited" + } +}; + +static ProcRecord gradient_is_editable_proc = +{ + "gimp_gradient_is_editable", + "Tests if gradient can be edited", + "Returns True if you have permission to change the gradient", + "Bill Skaggs