Files
gimp/devel-docs/libgimp/html/libgimp-gimp.html
2010-08-11 01:15:37 -04:00

1646 lines
58 KiB
HTML

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
<title>gimp</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
<link rel="start" href="index.html" title="GIMP Library Reference Manual">
<link rel="up" href="libgimp-general.html" title="Functions not Related to Specific Images">
<link rel="prev" href="libgimp-general.html" title="Functions not Related to Specific Images">
<link rel="next" href="libgimp-gimpcontext.html" title="gimpcontext">
<meta name="generator" content="GTK-Doc V1.4 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="gimpdefinitions.html" title="Part&#160;I.&#160;GIMP Constants">
<link rel="part" href="libgimp.html" title="Part&#160;II.&#160;GIMP Library">
<link rel="chapter" href="libgimp-general.html" title="Functions not Related to Specific Images">
<link rel="chapter" href="libgimp-image.html" title="Manupulating Images and all their Properties">
<link rel="chapter" href="libgimp-data.html" title="Data Objects">
<link rel="chapter" href="libgimp-selectors.html" title="Controlling the Core's Selection Dialogs">
<link rel="part" href="libgimpui.html" title="Part&#160;III.&#160;GIMP User Interface Library">
<link rel="chapter" href="libgimpui-hierarchy.html" title="Object Hierarchy">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle">
<td><a accesskey="p" href="libgimp-general.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="libgimp-general.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GIMP Library Reference Manual</th>
<td><a accesskey="n" href="libgimp-gimpcontext.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry" lang="en">
<a name="libgimp-gimp"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle">gimp</span></h2>
<p>gimp &#8212; Main functions needed for building a GIMP plug-in. This header includes
all other GIMP Library headers.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<pre class="synopsis">
#define <a href="libgimp-gimp.html#GIMPVAR:CAPS">GIMPVAR</a>
gchar* <a href="libgimp-gimp.html#gimp-version">gimp_version</a> (void);
extern const guint <a href="libgimp-gimp.html#gimp-major-version">gimp_major_version</a>;
extern const guint <a href="libgimp-gimp.html#gimp-minor-version">gimp_minor_version</a>;
extern const guint <a href="libgimp-gimp.html#gimp-micro-version">gimp_micro_version</a>;
#define <a href="libgimp-gimp.html#gimp-get-data">gimp_get_data</a>
#define <a href="libgimp-gimp.html#gimp-get-data-size">gimp_get_data_size</a>
#define <a href="libgimp-gimp.html#gimp-set-data">gimp_set_data</a>
void (<a href="libgimp-gimp.html#GimpInitProc">*GimpInitProc</a>) (void);
void (<a href="libgimp-gimp.html#GimpQuitProc">*GimpQuitProc</a>) (void);
void (<a href="libgimp-gimp.html#GimpQueryProc">*GimpQueryProc</a>) (void);
void (<a href="libgimp-gimp.html#GimpRunProc">*GimpRunProc</a>) (const gchar *name,
gint n_params,
const <a href="libgimp-gimp.html#GimpParam">GimpParam</a> *param,
gint *n_return_vals,
<a href="libgimp-gimp.html#GimpParam">GimpParam</a> **return_vals);
<a href="libgimp-gimp.html#GimpPlugInInfo">GimpPlugInInfo</a>;
<a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a>;
<a href="libgimp-gimp.html#GimpParamRegion">GimpParamRegion</a>;
union <a href="libgimp-gimp.html#GimpParamData">GimpParamData</a>;
<a href="libgimp-gimp.html#GimpParam">GimpParam</a>;
#define <a href="libgimp-gimp.html#MAIN:CAPS">MAIN</a> ()
gint <a href="libgimp-gimp.html#gimp-main">gimp_main</a> (const <a href="libgimp-gimp.html#GimpPlugInInfo">GimpPlugInInfo</a> *info,
gint argc,
gchar *argv[]);
void <a href="libgimp-gimp.html#gimp-quit">gimp_quit</a> (void);
void <a href="libgimp-gimp.html#gimp-install-procedure">gimp_install_procedure</a> (const gchar *name,
const gchar *blurb,
const gchar *help,
const gchar *author,
const gchar *copyright,
const gchar *date,
const gchar *menu_label,
const gchar *image_types,
<a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpPDBProcType"
>GimpPDBProcType</a> type,
gint n_params,
gint n_return_vals,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *params,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *return_vals);
void <a href="libgimp-gimp.html#gimp-install-temp-proc">gimp_install_temp_proc</a> (const gchar *name,
const gchar *blurb,
const gchar *help,
const gchar *author,
const gchar *copyright,
const gchar *date,
const gchar *menu_label,
const gchar *image_types,
<a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpPDBProcType"
>GimpPDBProcType</a> type,
gint n_params,
gint n_return_vals,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *params,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *return_vals,
<a href="libgimp-gimp.html#GimpRunProc">GimpRunProc</a> run_proc);
void <a href="libgimp-gimp.html#gimp-uninstall-temp-proc">gimp_uninstall_temp_proc</a> (const gchar *name);
<a href="libgimp-gimp.html#GimpParam">GimpParam</a>* <a href="libgimp-gimp.html#gimp-run-procedure">gimp_run_procedure</a> (const gchar *name,
gint *n_return_vals,
...);
<a href="libgimp-gimp.html#GimpParam">GimpParam</a>* <a href="libgimp-gimp.html#gimp-run-procedure2">gimp_run_procedure2</a> (const gchar *name,
gint *n_return_vals,
gint n_params,
const <a href="libgimp-gimp.html#GimpParam">GimpParam</a> *params);
void <a href="libgimp-gimp.html#gimp-destroy-params">gimp_destroy_params</a> (<a href="libgimp-gimp.html#GimpParam">GimpParam</a> *params,
gint n_params);
void <a href="libgimp-gimp.html#gimp-destroy-paramdefs">gimp_destroy_paramdefs</a> (<a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *paramdefs,
gint n_params);
guint <a href="libgimp-gimp.html#gimp-tile-width">gimp_tile_width</a> (void);
guint <a href="libgimp-gimp.html#gimp-tile-height">gimp_tile_height</a> (void);
gint <a href="libgimp-gimp.html#gimp-shm-ID">gimp_shm_ID</a> (void);
guchar* <a href="libgimp-gimp.html#gimp-shm-addr">gimp_shm_addr</a> (void);
gdouble <a href="libgimp-gimp.html#gimp-gamma">gimp_gamma</a> (void);
gboolean <a href="libgimp-gimp.html#gimp-install-cmap">gimp_install_cmap</a> (void);
gint <a href="libgimp-gimp.html#gimp-min-colors">gimp_min_colors</a> (void);
gboolean <a href="libgimp-gimp.html#gimp-show-tool-tips">gimp_show_tool_tips</a> (void);
gboolean <a href="libgimp-gimp.html#gimp-show-help-button">gimp_show_help_button</a> (void);
<a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpCheckSize"
>GimpCheckSize</a> <a href="libgimp-gimp.html#gimp-check-size">gimp_check_size</a> (void);
<a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpCheckType"
>GimpCheckType</a> <a href="libgimp-gimp.html#gimp-check-type">gimp_check_type</a> (void);
gint32 <a href="libgimp-gimp.html#gimp-default-display">gimp_default_display</a> (void);
const gchar* <a href="libgimp-gimp.html#gimp-wm-class">gimp_wm_class</a> (void);
const gchar* <a href="libgimp-gimp.html#gimp-display-name">gimp_display_name</a> (void);
gint <a href="libgimp-gimp.html#gimp-monitor-number">gimp_monitor_number</a> (void);
const gchar* <a href="libgimp-gimp.html#gimp-get-progname">gimp_get_progname</a> (void);
void <a href="libgimp-gimp.html#gimp-extension-enable">gimp_extension_enable</a> (void);
void <a href="libgimp-gimp.html#gimp-extension-ack">gimp_extension_ack</a> (void);
void <a href="libgimp-gimp.html#gimp-extension-process">gimp_extension_process</a> (guint timeout);
<a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
>GimpParasite</a>* <a href="libgimp-gimp.html#gimp-parasite-find">gimp_parasite_find</a> (const gchar *name);
gboolean <a href="libgimp-gimp.html#gimp-parasite-list">gimp_parasite_list</a> (gint *num_parasites,
gchar ***parasites);
gboolean <a href="libgimp-gimp.html#gimp-parasite-attach">gimp_parasite_attach</a> (<a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
>GimpParasite</a> *parasite);
gboolean <a href="libgimp-gimp.html#gimp-parasite-detach">gimp_parasite_detach</a> (const gchar *name);
void <a href="libgimp-gimp.html#gimp-attach-new-parasite">gimp_attach_new_parasite</a> (const gchar *name,
gint flags,
gint size,
gconstpointer data);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="id2562719"></a><h2>Description</h2>
<p>
Main functions needed for building a GIMP plug-in. This header includes
all other GIMP Library headers.
</p>
</div>
<div class="refsect1" lang="en">
<a name="id2562731"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="id2562736"></a><h3>
<a name="GIMPVAR:CAPS"></a>GIMPVAR</h3>
<a class="indexterm" name="id2562744"></a><pre class="programlisting">#define GIMPVAR</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562758"></a><h3>
<a name="gimp-version"></a>gimp_version ()</h3>
<a class="indexterm" name="id2562766"></a><pre class="programlisting">gchar* gimp_version (void);</pre>
<p>
Returns the host gimp version.
</p>
<p>
This procedure returns the version number of the currently running
gimp.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The gimp version.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562810"></a><h3>
<a name="gimp-major-version"></a>gimp_major_version</h3>
<a class="indexterm" name="id2562820"></a><pre class="programlisting">extern const guint gimp_major_version;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562836"></a><h3>
<a name="gimp-minor-version"></a>gimp_minor_version</h3>
<a class="indexterm" name="id2562846"></a><pre class="programlisting">extern const guint gimp_minor_version;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562862"></a><h3>
<a name="gimp-micro-version"></a>gimp_micro_version</h3>
<a class="indexterm" name="id2562872"></a><pre class="programlisting">extern const guint gimp_micro_version;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562887"></a><h3>
<a name="gimp-get-data"></a>gimp_get_data</h3>
<a class="indexterm" name="id2562897"></a><pre class="programlisting">#define gimp_get_data gimp_procedural_db_get_data
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562914"></a><h3>
<a name="gimp-get-data-size"></a>gimp_get_data_size</h3>
<a class="indexterm" name="id2562924"></a><pre class="programlisting">#define gimp_get_data_size gimp_procedural_db_get_data_size
</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td>
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562956"></a><h3>
<a name="gimp-set-data"></a>gimp_set_data</h3>
<a class="indexterm" name="id2562966"></a><pre class="programlisting">#define gimp_set_data gimp_procedural_db_set_data
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2562983"></a><h3>
<a name="GimpInitProc"></a>GimpInitProc ()</h3>
<a class="indexterm" name="id2562993"></a><pre class="programlisting">void (*GimpInitProc) (void);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563014"></a><h3>
<a name="GimpQuitProc"></a>GimpQuitProc ()</h3>
<a class="indexterm" name="id2563024"></a><pre class="programlisting">void (*GimpQuitProc) (void);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563045"></a><h3>
<a name="GimpQueryProc"></a>GimpQueryProc ()</h3>
<a class="indexterm" name="id2563055"></a><pre class="programlisting">void (*GimpQueryProc) (void);</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563076"></a><h3>
<a name="GimpRunProc"></a>GimpRunProc ()</h3>
<a class="indexterm" name="id2563086"></a><pre class="programlisting">void (*GimpRunProc) (const gchar *name,
gint n_params,
const <a href="libgimp-gimp.html#GimpParam">GimpParam</a> *param,
gint *n_return_vals,
<a href="libgimp-gimp.html#GimpParam">GimpParam</a> **return_vals);</pre>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_params</code></em>&#160;:</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>param</code></em>&#160;:</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_return_vals</code></em>&#160;:</span></td>
<td>
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>return_vals</code></em>&#160;:</span></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563217"></a><h3>
<a name="GimpPlugInInfo"></a>GimpPlugInInfo</h3>
<a class="indexterm" name="id2563227"></a><pre class="programlisting">typedef struct {
/* called when the gimp application initially starts up */
GimpInitProc init_proc;
/* called when the gimp application exits */
GimpQuitProc quit_proc;
/* called by the gimp so that the plug-in can inform the
* gimp of what it does. (ie. installing a procedure database
* procedure).
*/
GimpQueryProc query_proc;
/* called to run a procedure the plug-in installed in the
* procedure database.
*/
GimpRunProc run_proc;
} GimpPlugInInfo;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563251"></a><h3>
<a name="GimpParamDef"></a>GimpParamDef</h3>
<a class="indexterm" name="id2563261"></a><pre class="programlisting">typedef struct {
GimpPDBArgType type;
gchar *name;
gchar *description;
} GimpParamDef;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563278"></a><h3>
<a name="GimpParamRegion"></a>GimpParamRegion</h3>
<a class="indexterm" name="id2563288"></a><pre class="programlisting">typedef struct {
gint32 x;
gint32 y;
gint32 width;
gint32 height;
} GimpParamRegion;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563306"></a><h3>
<a name="GimpParamData"></a>union GimpParamData</h3>
<a class="indexterm" name="id2563316"></a><pre class="programlisting">union GimpParamData
{
gint32 d_int32;
gint16 d_int16;
gint8 d_int8;
gdouble d_float;
gchar *d_string;
gint32 *d_int32array;
gint16 *d_int16array;
gint8 *d_int8array;
gdouble *d_floatarray;
gchar **d_stringarray;
GimpRGB d_color;
GimpParamRegion d_region;
gint32 d_display;
gint32 d_image;
gint32 d_layer;
gint32 d_layer_mask;
gint32 d_channel;
gint32 d_drawable;
gint32 d_selection;
gint32 d_boundary;
gint32 d_path;
gint32 d_unit;
GimpParasite d_parasite;
gint32 d_tattoo;
GimpPDBStatusType d_status;
};
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2535594"></a><h3>
<a name="GimpParam"></a>GimpParam</h3>
<a class="indexterm" name="id2548769"></a><pre class="programlisting">typedef struct {
GimpPDBArgType type;
GimpParamData data;
} GimpParam;
</pre>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563350"></a><h3>
<a name="MAIN:CAPS"></a>MAIN()</h3>
<a class="indexterm" name="id2563358"></a><pre class="programlisting">#define MAIN()</pre>
<p>
A macro that expands to the appropriate <code class="function">main()</code> function for the
platform being compiled for.
</p>
<p>
To use this macro, simply place a line that contains just the code
<a href="libgimp-gimp.html#MAIN:CAPS"><code class="function">MAIN()</code></a> at the toplevel of your file. No semicolon should be used.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563398"></a><h3>
<a name="gimp-main"></a>gimp_main ()</h3>
<a class="indexterm" name="id2563406"></a><pre class="programlisting">gint gimp_main (const <a href="libgimp-gimp.html#GimpPlugInInfo">GimpPlugInInfo</a> *info,
gint argc,
gchar *argv[]);</pre>
<p>
The main procedure that must be called with the PLUG_IN_INFO structure
and the 'argc' and 'argv' that are passed to "main".</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>info</code></em>&#160;:</span></td>
<td> the PLUG_IN_INFO structure
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>argc</code></em>&#160;:</span></td>
<td> the number of arguments
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>argv</code></em>&#160;:</span></td>
<td> the arguments
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td>
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563501"></a><h3>
<a name="gimp-quit"></a>gimp_quit ()</h3>
<a class="indexterm" name="id2563509"></a><pre class="programlisting">void gimp_quit (void);</pre>
<p>
Forcefully causes the gimp library to exit and close down its
connection to main gimp application. This function never returns.</p>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2563533"></a><h3>
<a name="gimp-install-procedure"></a>gimp_install_procedure ()</h3>
<a class="indexterm" name="id2563542"></a><pre class="programlisting">void gimp_install_procedure (const gchar *name,
const gchar *blurb,
const gchar *help,
const gchar *author,
const gchar *copyright,
const gchar *date,
const gchar *menu_label,
const gchar *image_types,
<a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpPDBProcType"
>GimpPDBProcType</a> type,
gint n_params,
gint n_return_vals,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *params,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *return_vals);</pre>
<p>
Installs a new procedure with the PDB (procedural database).
</p>
<p>
Call this function from within your Plug-In's <code class="function">query()</code> function for
each procedure your Plug-In implements.
</p>
<p>
The <em class="parameter"><code>name</code></em> 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).
</p>
<p>
The <em class="parameter"><code>blurb</code></em>, <em class="parameter"><code>help</code></em>, <em class="parameter"><code>author</code></em>, <em class="parameter"><code>copyright</code></em> and <em class="parameter"><code>date</code></em> parameters are
optional but then you shouldn't write procedures without proper
documentation, should you.
</p>
<p>
<em class="parameter"><code>menu_label</code></em> defines the label that should be used for the
procedure's menu entry (use <span class="type">NULL</span> if the procedure shouldn't have a
menu entry). The position where to register in the menu hierarchy
is choosen using <a href="libgimp-gimpplugin.html#gimp-plugin-menu-register"><code class="function">gimp_plugin_menu_register()</code></a>. This function also
still accepts the old (pre-2.2) way of registering a menu entry and
takes a string in the form "&lt;Domain&gt;/Path/To/My/Menu"
(e.g. "&lt;Image&gt;/Filters/Render/Useless").
</p>
<p>
<em class="parameter"><code>type</code></em> must be one of <span class="type">GIMP_PLUGIN</span> or <span class="type">GIMP_EXTENSION</span>. Note that
temporary procedures must be installed using
<a href="libgimp-gimp.html#gimp-install-temp-proc"><code class="function">gimp_install_temp_proc()</code></a>.
</p>
<p>
NOTE: Unlike the GIMP 1.2 API, <span class="type">GIMP_EXTENSION</span> no longer means
that the procedure's menu prefix is &lt;Toolbox&gt;, but that
it will install temporary procedures. Therefore, the GIMP core
will wait until the <span class="type">GIMP_EXTENSION</span> procedure has called
<a href="libgimp-gimp.html#gimp-extension-ack"><code class="function">gimp_extension_ack()</code></a>, which means that the procedure has done
its initialization, installed its temporary procedures and is
ready to run.
</p>
<p>
<span class="emphasis"><em>Not calling <a href="libgimp-gimp.html#gimp-extension-ack"><code class="function">gimp_extension_ack()</code></a> from a <span class="type">GIMP_EXTENSION</span>
procedure will cause th GIMP core to lock up.</em></span>
</p>
<p>
Additionally, a <span class="type">GIMP_EXTENSION</span> procedure with no parameters
(<em class="parameter"><code>n_params</code></em> == 0 and <em class="parameter"><code>params</code></em> == <span class="type">NULL</span>) is an "automatic" extension
that will be automatically started on each GIMP startup.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> the procedure's name.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>blurb</code></em>&#160;:</span></td>
<td> a short text describing what the procedure does.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>help</code></em>&#160;:</span></td>
<td> the help text for the procedure (usually considerably
longer than <em class="parameter"><code>blurb</code></em>).
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>author</code></em>&#160;:</span></td>
<td> the procedure's author(s).
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>copyright</code></em>&#160;:</span></td>
<td> the procedure's copyright.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>date</code></em>&#160;:</span></td>
<td> the date the procedure was added.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>menu_label</code></em>&#160;:</span></td>
<td> the label to use for the procedure's menu entry,
or <span class="type">NULL</span> if the procedure has no menu entry.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>image_types</code></em>&#160;:</span></td>
<td> the drawable types the procedure can handle.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>type</code></em>&#160;:</span></td>
<td> the type of the procedure.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_params</code></em>&#160;:</span></td>
<td> the number of parameters the procedure takes.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_return_vals</code></em>&#160;:</span></td>
<td> the number of return values the procedure returns.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>params</code></em>&#160;:</span></td>
<td> the procedure's parameters.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>return_vals</code></em>&#160;:</span></td>
<td> the procedure's return values.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564035"></a><h3>
<a name="gimp-install-temp-proc"></a>gimp_install_temp_proc ()</h3>
<a class="indexterm" name="id2564043"></a><pre class="programlisting">void gimp_install_temp_proc (const gchar *name,
const gchar *blurb,
const gchar *help,
const gchar *author,
const gchar *copyright,
const gchar *date,
const gchar *menu_label,
const gchar *image_types,
<a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpPDBProcType"
>GimpPDBProcType</a> type,
gint n_params,
gint n_return_vals,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *params,
const <a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *return_vals,
<a href="libgimp-gimp.html#GimpRunProc">GimpRunProc</a> run_proc);</pre>
<p>
Installs a new temporary procedure with the PDB (procedural database).
</p>
<p>
A temporary procedure is a procedure which is only available while
one of your Plug-In's "real" procedures is running.
</p>
<p>
See <a href="libgimp-gimp.html#gimp-install-procedure"><code class="function">gimp_install_procedure()</code></a> for most details.
</p>
<p>
<em class="parameter"><code>type</code></em> <span class="emphasis"><em>must</em></span> be <span class="type">GIMP_TEMPORARY</span> or the function
will fail.
</p>
<p>
<em class="parameter"><code>run_proc</code></em> is the function which will be called to execute the
procedure.
</p>
<p>
NOTE: Normally, Plug-In communication is triggered by the Plug-In
and the GIMP core only responds to the Plug-In's requests. You must
explicitely enable receiving of temporary procedure run requests
using either <a href="libgimp-gimp.html#gimp-extension-enable"><code class="function">gimp_extension_enable()</code></a> or
<a href="libgimp-gimp.html#gimp-extension-process"><code class="function">gimp_extension_process()</code></a>. See this functions' documentation for
details.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> the procedure's name.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>blurb</code></em>&#160;:</span></td>
<td> a short text describing what the procedure does.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>help</code></em>&#160;:</span></td>
<td> the help text for the procedure (usually considerably
longer than <em class="parameter"><code>blurb</code></em>).
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>author</code></em>&#160;:</span></td>
<td> the procedure's author(s).
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>copyright</code></em>&#160;:</span></td>
<td> the procedure's copyright.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>date</code></em>&#160;:</span></td>
<td> the date the procedure was added.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>menu_label</code></em>&#160;:</span></td>
<td> the procedure's menu label, or <span class="type">NULL</span> if the procedure has
no menu entry.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>image_types</code></em>&#160;:</span></td>
<td> the drawable types the procedure can handle.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>type</code></em>&#160;:</span></td>
<td> the type of the procedure.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_params</code></em>&#160;:</span></td>
<td> the number of parameters the procedure takes.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_return_vals</code></em>&#160;:</span></td>
<td> the number of return values the procedure returns.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>params</code></em>&#160;:</span></td>
<td> the procedure's parameters.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>return_vals</code></em>&#160;:</span></td>
<td> the procedure's return values.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>run_proc</code></em>&#160;:</span></td>
<td> the function to call for executing the procedure.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564430"></a><h3>
<a name="gimp-uninstall-temp-proc"></a>gimp_uninstall_temp_proc ()</h3>
<a class="indexterm" name="id2564439"></a><pre class="programlisting">void gimp_uninstall_temp_proc (const gchar *name);</pre>
<p>
Uninstalls a temporary procedure which has previously been
installed using <a href="libgimp-gimp.html#gimp-install-temp-proc"><code class="function">gimp_install_temp_proc()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> the procedure's name
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564492"></a><h3>
<a name="gimp-run-procedure"></a>gimp_run_procedure ()</h3>
<a class="indexterm" name="id2564501"></a><pre class="programlisting"><a href="libgimp-gimp.html#GimpParam">GimpParam</a>* gimp_run_procedure (const gchar *name,
gint *n_return_vals,
...);</pre>
<p>
This function calls a GIMP procedure and returns its return values.
</p>
<p>
The procedure's parameters are given by a va_list in the format
(type, value, type, value) and must be terminated by <span class="type">GIMP_PDB_END</span>.
</p>
<p>
This function converts the va_list of parameters into an array
and passes them to <a href="libgimp-gimp.html#gimp-run-procedure2"><code class="function">gimp_run_procedure2()</code></a>.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> the name of the procedure to run
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_return_vals</code></em>&#160;:</span></td>
<td> return location for the number of return values
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>...</code></em>&#160;:</span></td>
<td> list of procedure parameters
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the procedure's return values.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564616"></a><h3>
<a name="gimp-run-procedure2"></a>gimp_run_procedure2 ()</h3>
<a class="indexterm" name="id2564624"></a><pre class="programlisting"><a href="libgimp-gimp.html#GimpParam">GimpParam</a>* gimp_run_procedure2 (const gchar *name,
gint *n_return_vals,
gint n_params,
const <a href="libgimp-gimp.html#GimpParam">GimpParam</a> *params);</pre>
<p>
This function calls a GIMP procedure and returns its return values.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> the name of the procedure to run
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_return_vals</code></em>&#160;:</span></td>
<td> return location for the number of return values
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_params</code></em>&#160;:</span></td>
<td> the number of parameters the procedure takes.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>params</code></em>&#160;:</span></td>
<td> the procedure's parameters array.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the procedure's return values.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564740"></a><h3>
<a name="gimp-destroy-params"></a>gimp_destroy_params ()</h3>
<a class="indexterm" name="id2564749"></a><pre class="programlisting">void gimp_destroy_params (<a href="libgimp-gimp.html#GimpParam">GimpParam</a> *params,
gint n_params);</pre>
<p>
Destroys a <a href="libgimp-gimp.html#GimpParam"><span class="type">GimpParam</span></a> array as returned by <a href="libgimp-gimp.html#gimp-run-procedure"><code class="function">gimp_run_procedure()</code></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>params</code></em>&#160;:</span></td>
<td> the <a href="libgimp-gimp.html#GimpParam"><span class="type">GimpParam</span></a> array to destroy
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_params</code></em>&#160;:</span></td>
<td> the number of elements in the array
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564832"></a><h3>
<a name="gimp-destroy-paramdefs"></a>gimp_destroy_paramdefs ()</h3>
<a class="indexterm" name="id2564840"></a><pre class="programlisting">void gimp_destroy_paramdefs (<a href="libgimp-gimp.html#GimpParamDef">GimpParamDef</a> *paramdefs,
gint n_params);</pre>
<p>
Destroys a <a href="libgimp-gimp.html#GimpParamDef"><span class="type">GimpParamDef</span></a> array as returned by <code class="function">gimp_query_procedure()</code></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>paramdefs</code></em>&#160;:</span></td>
<td> the <a href="libgimp-gimp.html#GimpParamDef"><span class="type">GimpParamDef</span></a> array to destroy
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>n_params</code></em>&#160;:</span></td>
<td> the number of elements in the array
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564924"></a><h3>
<a name="gimp-tile-width"></a>gimp_tile_width ()</h3>
<a class="indexterm" name="id2564932"></a><pre class="programlisting">guint gimp_tile_width (void);</pre>
<p>
Returns the tile_width the GIMP is using. This is a constant value
given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the tile_width
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2564969"></a><h3>
<a name="gimp-tile-height"></a>gimp_tile_height ()</h3>
<a class="indexterm" name="id2564978"></a><pre class="programlisting">guint gimp_tile_height (void);</pre>
<p>
Returns the tile_height the GIMP is using. This is a constant value
given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the tile_height
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565015"></a><h3>
<a name="gimp-shm-ID"></a>gimp_shm_ID ()</h3>
<a class="indexterm" name="id2565023"></a><pre class="programlisting">gint gimp_shm_ID (void);</pre>
<p>
Returns the shared memory ID used for passing tile data between the GIMP
core and the Plug-In. This is a constant value
given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the shared memory ID
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565062"></a><h3>
<a name="gimp-shm-addr"></a>gimp_shm_addr ()</h3>
<a class="indexterm" name="id2565070"></a><pre class="programlisting">guchar* gimp_shm_addr (void);</pre>
<p>
Returns the address of the shared memory segment used for passing
tile data between the GIMP core and the Plug-In. This is a constant
value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the shared memory address
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565109"></a><h3>
<a name="gimp-gamma"></a>gimp_gamma ()</h3>
<a class="indexterm" name="id2565117"></a><pre class="programlisting">gdouble gimp_gamma (void);</pre>
<p>
Returns the global gamma value the GIMP and all its Plug-Ins should
use. This is a constant value given at Plug-In config time.
</p>
<p>
NOTE: this feature is unimplemented.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the gamma value
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565159"></a><h3>
<a name="gimp-install-cmap"></a>gimp_install_cmap ()</h3>
<a class="indexterm" name="id2565167"></a><pre class="programlisting">gboolean gimp_install_cmap (void);</pre>
<p>
Returns whether or not the Plug-In should allocate an own colormap
when running on an 8 bit display. This is a constant value given at
Plug-In config time.
</p>
<p>
See also: <a href="libgimp-gimp.html#gimp-min-colors"><code class="function">gimp_min_colors()</code></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the install_cmap boolean
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565216"></a><h3>
<a name="gimp-min-colors"></a>gimp_min_colors ()</h3>
<a class="indexterm" name="id2565224"></a><pre class="programlisting">gint gimp_min_colors (void);</pre>
<p>
Returns the minimum number of colors to use when allocating an own
colormap on 8 bit displays. This is a constant value given at
Plug-In config time.
</p>
<p>
See also: <a href="libgimp-gimp.html#gimp-install-cmap"><code class="function">gimp_install_cmap()</code></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the minimum number of colors to allocate
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565274"></a><h3>
<a name="gimp-show-tool-tips"></a>gimp_show_tool_tips ()</h3>
<a class="indexterm" name="id2565282"></a><pre class="programlisting">gboolean gimp_show_tool_tips (void);</pre>
<p>
Returns whether or not the Plug-In should show tooltips. This is a
constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the show_tool_tips boolean
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565320"></a><h3>
<a name="gimp-show-help-button"></a>gimp_show_help_button ()</h3>
<a class="indexterm" name="id2565329"></a><pre class="programlisting">gboolean gimp_show_help_button (void);</pre>
<p>
Returns whether or not GimpDialog should automatically add a help
button if help_func and help_id are given.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the show_help_button boolean
</td>
</tr></tbody>
</table></div>
<p>Since GIMP 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565371"></a><h3>
<a name="gimp-check-size"></a>gimp_check_size ()</h3>
<a class="indexterm" name="id2565379"></a><pre class="programlisting"><a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpCheckSize"
>GimpCheckSize</a> gimp_check_size (void);</pre>
<p>
Returns the size of the checkerboard to be used in previews.
This is a constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the check_size value
</td>
</tr></tbody>
</table></div>
<p>Since GIMP 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565421"></a><h3>
<a name="gimp-check-type"></a>gimp_check_type ()</h3>
<a class="indexterm" name="id2565430"></a><pre class="programlisting"><a
href="../libgimpbase/libgimpbase-gimpbaseenums.html#GimpCheckType"
>GimpCheckType</a> gimp_check_type (void);</pre>
<p>
Returns the type of the checkerboard to be used in previews.
This is a constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the check_type value
</td>
</tr></tbody>
</table></div>
<p>Since GIMP 2.2
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565471"></a><h3>
<a name="gimp-default-display"></a>gimp_default_display ()</h3>
<a class="indexterm" name="id2565480"></a><pre class="programlisting">gint32 gimp_default_display (void);</pre>
<p>
Returns the default display ID. This corresponds to the display the
running procedure's menu entry was invoked from. This is a
constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the default display ID
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565518"></a><h3>
<a name="gimp-wm-class"></a>gimp_wm_class ()</h3>
<a class="indexterm" name="id2565527"></a><pre class="programlisting">const gchar* gimp_wm_class (void);</pre>
<p>
Returns the window manager class to be used for plug-in windows.
This is a constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the window manager class
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565565"></a><h3>
<a name="gimp-display-name"></a>gimp_display_name ()</h3>
<a class="indexterm" name="id2565574"></a><pre class="programlisting">const gchar* gimp_display_name (void);</pre>
<p>
Returns the display to be used for plug-in windows.
This is a constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the display name
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565612"></a><h3>
<a name="gimp-monitor-number"></a>gimp_monitor_number ()</h3>
<a class="indexterm" name="id2565621"></a><pre class="programlisting">gint gimp_monitor_number (void);</pre>
<p>
Returns the monitor number to be used for plug-in windows.
This is a constant value given at Plug-In config time.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the monitor number
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565658"></a><h3>
<a name="gimp-get-progname"></a>gimp_get_progname ()</h3>
<a class="indexterm" name="id2565667"></a><pre class="programlisting">const gchar* gimp_get_progname (void);</pre>
<p>
Returns the Plug-In's executable name.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> the executable name
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565704"></a><h3>
<a name="gimp-extension-enable"></a>gimp_extension_enable ()</h3>
<a class="indexterm" name="id2565712"></a><pre class="programlisting">void gimp_extension_enable (void);</pre>
<p>
Enables asnychronous processing of messages from the main GIMP
application.
</p>
<p>
Normally, a plug-in is not called by the GIMP except for the call
to the procedure it implements. All subsequent communication is
triggered by the plug-in and all messages sent from the GIMP to the
plug-in are just answers to requests the plug-in made.
</p>
<p>
If the plug-in however registered temporary procedures using
<a href="libgimp-gimp.html#gimp-install-temp-proc"><code class="function">gimp_install_temp_proc()</code></a>, it needs to be able to receive requests
to execute them. Usually this will be done by running
<a href="libgimp-gimp.html#gimp-extension-process"><code class="function">gimp_extension_process()</code></a> in an endless loop.
</p>
<p>
If the plug-in cannot use <a href="libgimp-gimp.html#gimp-extension-process"><code class="function">gimp_extension_process()</code></a>, i.e. if it has
a GUI and is hanging around in a <span class="type">GMainLoop</span>, it must call
<a href="libgimp-gimp.html#gimp-extension-enable"><code class="function">gimp_extension_enable()</code></a>.
</p>
<p>
Note that the plug-in does not need to be a <span class="type">GIMP_EXTENSION</span> to
register temporary procedures.
</p>
<p>
See also: <a href="libgimp-gimp.html#gimp-install-procedure"><code class="function">gimp_install_procedure()</code></a>, <a href="libgimp-gimp.html#gimp-install-temp-proc"><code class="function">gimp_install_temp_proc()</code></a></p>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565826"></a><h3>
<a name="gimp-extension-ack"></a>gimp_extension_ack ()</h3>
<a class="indexterm" name="id2565837"></a><pre class="programlisting">void gimp_extension_ack (void);</pre>
<p>
Notify the main GIMP application that the extension has been properly
initialized and is ready to run.
</p>
<p>
This function <span class="emphasis"><em>must</em></span> be called from every
procedure that was registered as <span class="type">GIMP_EXTENSION</span>.
</p>
<p>
Subsequently, extensions can process temporary procedure run
requests using either <a href="libgimp-gimp.html#gimp-extension-enable"><code class="function">gimp_extension_enable()</code></a> or
<a href="libgimp-gimp.html#gimp-extension-process"><code class="function">gimp_extension_process()</code></a>.
</p>
<p>
See also: <a href="libgimp-gimp.html#gimp-install-procedure"><code class="function">gimp_install_procedure()</code></a>, <a href="libgimp-gimp.html#gimp-install-temp-proc"><code class="function">gimp_install_temp_proc()</code></a></p>
<p>
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2565926"></a><h3>
<a name="gimp-extension-process"></a>gimp_extension_process ()</h3>
<a class="indexterm" name="id2565937"></a><pre class="programlisting">void gimp_extension_process (guint timeout);</pre>
<p>
Processes one message sent by the GIMP and returns.
</p>
<p>
Call this function in an endless loop after calling
<a href="libgimp-gimp.html#gimp-extension-ack"><code class="function">gimp_extension_ack()</code></a> to process requests for running temporary
procedures.
</p>
<p>
See <a href="libgimp-gimp.html#gimp-extension-enable"><code class="function">gimp_extension_enable()</code></a> for an asynchronous way of doing the
same if running an endless loop is not an option.
</p>
<p>
See also: <a href="libgimp-gimp.html#gimp-install-procedure"><code class="function">gimp_install_procedure()</code></a>, <a href="libgimp-gimp.html#gimp-install-temp-proc"><code class="function">gimp_install_temp_proc()</code></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td>
<span class="term"><em class="parameter"><code>timeout</code></em>&#160;:</span></td>
<td> The timeout (in ms) to use for the <code class="function">select()</code> call.
</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2566050"></a><h3>
<a name="gimp-parasite-find"></a>gimp_parasite_find ()</h3>
<a class="indexterm" name="id2566061"></a><pre class="programlisting"><a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
>GimpParasite</a>* gimp_parasite_find (const gchar *name);</pre>
<p>
Finds the named parasite.
</p>
<p>
Finds and returns the named parasite that was previously attached to
the gimp.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> The name of the parasite to find.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> The found parasite.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2566127"></a><h3>
<a name="gimp-parasite-list"></a>gimp_parasite_list ()</h3>
<a class="indexterm" name="id2566138"></a><pre class="programlisting">gboolean gimp_parasite_list (gint *num_parasites,
gchar ***parasites);</pre>
<p>
List all parasites.
</p>
<p>
Returns a list of all currently attached parasites.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>num_parasites</code></em>&#160;:</span></td>
<td> The number of attached parasites.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>parasites</code></em>&#160;:</span></td>
<td> The names of currently attached parasites.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE on success.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2566226"></a><h3>
<a name="gimp-parasite-attach"></a>gimp_parasite_attach ()</h3>
<a class="indexterm" name="id2566237"></a><pre class="programlisting">gboolean gimp_parasite_attach (<a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
>GimpParasite</a> *parasite);</pre>
<p>
Add a parasite to the gimp.
</p>
<p>
This procedure attaches a parasite to the gimp. It has no return
values.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>parasite</code></em>&#160;:</span></td>
<td> The parasite to attach to the gimp.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE on success.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2566304"></a><h3>
<a name="gimp-parasite-detach"></a>gimp_parasite_detach ()</h3>
<a class="indexterm" name="id2566315"></a><pre class="programlisting">gboolean gimp_parasite_detach (const gchar *name);</pre>
<p>
Removes a parasite from the gimp.
</p>
<p>
This procedure detaches a parasite from the gimp. It has no return
values.</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> The name of the parasite to detach from the gimp.
</td>
</tr>
<tr>
<td>
<span class="term"><span class="emphasis"><em>Returns</em></span>&#160;:</span></td>
<td> TRUE on success.
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="id2566381"></a><h3>
<a name="gimp-attach-new-parasite"></a>gimp_attach_new_parasite ()</h3>
<a class="indexterm" name="id2566392"></a><pre class="programlisting">void gimp_attach_new_parasite (const gchar *name,
gint flags,
gint size,
gconstpointer data);</pre>
<p>
Convenience function that creates a parasite and attaches it
to the GIMP.
</p>
<p>
See Also: <a href="libgimp-gimp.html#gimp-parasite-attach"><code class="function">gimp_parasite_attach()</code></a></p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td>
<span class="term"><em class="parameter"><code>name</code></em>&#160;:</span></td>
<td> the name of the <a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
><span class="type">GimpParasite</span></a> to create and attach.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>flags</code></em>&#160;:</span></td>
<td> the flags set on the <a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
><span class="type">GimpParasite</span></a>.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>size</code></em>&#160;:</span></td>
<td> the size of the parasite data in bytes.
</td>
</tr>
<tr>
<td>
<span class="term"><em class="parameter"><code>data</code></em>&#160;:</span></td>
<td> a pointer to the data attached with the <a
href="../libgimpbase/libgimpbase-gimpparasite.html#GimpParasite"
><span class="type">GimpParasite</span></a>.
</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle">
<td align="left"><a accesskey="p" href="libgimp-general.html"><b>&lt;&lt;&#160;Functions not Related to Specific Images</b></a></td>
<td align="right"><a accesskey="n" href="libgimp-gimpcontext.html"><b>gimpcontext&#160;&gt;&gt;</b></a></td>
</tr></table>
</body>
</html>