### Constructor

# Gimp SaveProcedure new

#### Declaration [src]

    GimpProcedure*
    gimp_save_procedure_new (
      GimpPlugIn* plug_in,
      const gchar* name,
      GimpPDBProcType proc_type,
      GimpRunSaveFunc run_func,
      gpointer run_data,
      GDestroyNotify run_data_destroy
    )

#### Description [src]

Creates a new save procedure named `name` which will call `run_func` when invoked.

See `gimp_procedure_new()` for information about `proc_type`.

`GimpSaveProcedure` is a `GimpProcedure` subclass that makes it easier to write file save procedures.

It automatically adds the standard

(`GimpRunMode`, `GimpImage`, `GimpDrawable`, `GFile`)

arguments of a save procedure. It is possible to add additional arguments.

When invoked via gimp_procedure_run(), it unpacks these standard arguments and calls `run_func` which is a `GimpRunSaveFunc`. The “args” `GimpValueArray` of `GimpRunSaveFunc` only contains additionally added arguments.

Available since: | 3.0

#### Parameters

`plug_in` | `GimpPlugIn`
| A `GimpPlugIn`.
| The data is owned by the caller of the function.
`name` | `const gchar*`
| The new procedure’s name.
| The data is owned by the caller of the function.
| The value is a NUL terminated UTF-8 string.
`proc_type` | `GimpPDBProcType`
| The new procedure’s `GimpPDBProcType`.
`run_func` | `GimpRunSaveFunc`
| The run function for the new procedure.
`run_data` | `gpointer`
| User data passed to `run_func`.
| The argument can be `NULL`.
| The data is owned by the caller of the function.
`run_data_destroy` | `GDestroyNotify`
| Free function for `run_data`, or `NULL`.
| The argument can be `NULL`.

#### Return value

Returns: | `GimpProcedure`
| A new `GimpProcedure`.
| The caller of the function takes ownership of the data, and is responsible for freeing it.