Constructor

GimpProcedurenew

since: 3.0

Declaration [src]

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

Description [src]

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

The name parameter is mandatory and should be unique, or it will overwrite an already existing procedure (overwrite procedures only if you know what you’re doing).

proc_type should be GimpPDBProcType for “normal” plug-ins.

Using GimpPDBProcType means that the plug-in will add temporary procedures. Therefore, the GIMP core will wait until the GIMP_PDB_PROC_TYPE_PERSISTENT procedure has called gimp_procedure_persistent_ready(), which means that the procedure has done its initialization, installed its temporary procedures and is ready to run.

Not calling gimp_procedure_persistent_ready() from a GIMP_PDB_PROC_TYPE_PERSISTENT procedure will cause the GIMP core to lock up.

Additionally, a GIMP_PDB_PROC_TYPE_PERSISTENT procedure with no arguments added is an “automatic” extension that will be automatically started on each GIMP startup.

GimpPDBProcType must be used for temporary procedures that are created during a plug-ins lifetime. They must be added to the GimpPlugIn using gimp_plug_in_add_temp_procedure().

run_func is called via gimp_procedure_run().

For GIMP_PDB_PROC_TYPE_PLUGIN and GIMP_PDB_PROC_TYPE_PERSISTENT procedures the call of run_func is basically the lifetime of the plug-in.

Available since: 3.0

Parameters

plug_in

Type: GimpPlugIn

A GimpPlugIn.

The data is owned by the caller of the function.
name

Type: 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

Type: GimpPDBProcType

The new procedure’s GimpPDBProcType.

run_func

Type: GimpRunFunc

The run function for the new procedure.

run_data

Type: 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

Type: GDestroyNotify

Free function for run_data, or NULL.

The argument can be NULL.

Return value

Type: GimpProcedure

A new GimpProcedure.

The caller of the function takes ownership of the data, and is responsible for freeing it.