Files
gimp/devel-docs/libgimpbase/html/libgimpbase-gimpprotocol.html
2010-08-11 01:13:56 -04:00

316 lines
23 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>gimpprotocol</title><meta name="generator" content="DocBook XSL Stylesheets V1.66.1"><link rel="start" href="index.html" title="GIMP Base Library Reference Manual"><link rel="up" href="libgimpbase.html" title="Part I. GIMP Base Library"><link rel="prev" href="libgimpbase-gimputils.html" title="gimputils"><link rel="next" href="libgimpbase-gimpwire.html" title="gimpwire"><meta name="generator" content="GTK-Doc V1.3 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="libgimpbase.html" title="Part I. GIMP Base Library"></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="libgimpbase-gimputils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="libgimpbase.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 Base Library Reference Manual</th><td><a accesskey="n" href="libgimpbase-gimpwire.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr></table><div class="refentry" lang="en"><a name="libgimpbase-gimpprotocol"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle">gimpprotocol</span></h2><p>gimpprotocol &#8212; The communication protocol between GIMP and it's plug-ins.</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><h2>Synopsis</h2><pre class="synopsis">
#define <a href="libgimpbase-gimpprotocol.html#GIMP-PROTOCOL-VERSION:CAPS">GIMP_PROTOCOL_VERSION</a>
<a href="libgimpbase-gimpprotocol.html#GPConfig">GPConfig</a>;
<a href="libgimpbase-gimpprotocol.html#GPTileReq">GPTileReq</a>;
<a href="libgimpbase-gimpprotocol.html#GPTileAck">GPTileAck</a>;
<a href="libgimpbase-gimpprotocol.html#GPTileData">GPTileData</a>;
<a href="libgimpbase-gimpprotocol.html#GPParam">GPParam</a>;
<a href="libgimpbase-gimpprotocol.html#GPParamDef">GPParamDef</a>;
<a href="libgimpbase-gimpprotocol.html#GPProcRun">GPProcRun</a>;
<a href="libgimpbase-gimpprotocol.html#GPProcReturn">GPProcReturn</a>;
<a href="libgimpbase-gimpprotocol.html#GPProcInstall">GPProcInstall</a>;
<a href="libgimpbase-gimpprotocol.html#GPProcUninstall">GPProcUninstall</a>;
void <a href="libgimpbase-gimpprotocol.html#gp-init">gp_init</a> (void);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-has-init-write">gp_has_init_write</a> (GIOChannel *channel,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-quit-write">gp_quit_write</a> (GIOChannel *channel,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-config-write">gp_config_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPConfig">GPConfig</a> *config,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-tile-req-write">gp_tile_req_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPTileReq">GPTileReq</a> *tile_req,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-tile-ack-write">gp_tile_ack_write</a> (GIOChannel *channel,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-tile-data-write">gp_tile_data_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPTileData">GPTileData</a> *tile_data,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-proc-run-write">gp_proc_run_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcRun">GPProcRun</a> *proc_run,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-proc-return-write">gp_proc_return_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcReturn">GPProcReturn</a> *proc_return,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-temp-proc-run-write">gp_temp_proc_run_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcRun">GPProcRun</a> *proc_run,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-temp-proc-return-write">gp_temp_proc_return_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcReturn">GPProcReturn</a> *proc_return,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-proc-install-write">gp_proc_install_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcInstall">GPProcInstall</a> *proc_install,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-proc-uninstall-write">gp_proc_uninstall_write</a> (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcUninstall">GPProcUninstall</a> *proc_uninstall,
gpointer user_data);
gboolean <a href="libgimpbase-gimpprotocol.html#gp-extension-ack-write">gp_extension_ack_write</a> (GIOChannel *channel,
gpointer user_data);
</pre></div><div class="refsect1" lang="en"><a name="id2589678"></a><h2>Description</h2><p>
The communication protocol between GIMP and it's plug-ins.
</p></div><div class="refsect1" lang="en"><a name="id2574805"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2574810"></a><h3><a name="GIMP-PROTOCOL-VERSION:CAPS"></a>GIMP_PROTOCOL_VERSION</h3><a class="indexterm" name="id2574819"></a><pre class="programlisting">#define GIMP_PROTOCOL_VERSION 0x0011
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574828"></a><h3><a name="GPConfig"></a>GPConfig</h3><a class="indexterm" name="id2574837"></a><pre class="programlisting">typedef struct {
guint32 version;
guint32 tile_width;
guint32 tile_height;
gint32 shm_ID;
gint8 check_size;
gint8 check_type;
gint8 show_help_button;
gint8 gimp_reserved_4;
gint8 gimp_reserved_5;
gint8 gimp_reserved_6;
gint8 gimp_reserved_7;
gint8 gimp_reserved_8;
gint8 install_cmap;
gint8 show_tool_tips;
gint32 min_colors;
gint32 gdisp_ID;
gchar *app_name;
gchar *wm_class;
gchar *display_name;
gint32 monitor_number;
} GPConfig;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2556165"></a><h3><a name="GPTileReq"></a>GPTileReq</h3><a class="indexterm" name="id2581208"></a><pre class="programlisting">typedef struct {
gint32 drawable_ID;
guint32 tile_num;
guint32 shadow;
} GPTileReq;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2557980"></a><h3><a name="GPTileAck"></a>GPTileAck</h3><a class="indexterm" name="id2556851"></a><pre class="programlisting">typedef struct _GPTileAck GPTileAck;</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574860"></a><h3><a name="GPTileData"></a>GPTileData</h3><a class="indexterm" name="id2574868"></a><pre class="programlisting">typedef struct {
gint32 drawable_ID;
guint32 tile_num;
guint32 shadow;
guint32 bpp;
guint32 width;
guint32 height;
guint32 use_shm;
guchar *data;
} GPTileData;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574880"></a><h3><a name="GPParam"></a>GPParam</h3><a class="indexterm" name="id2574888"></a><pre class="programlisting">typedef struct {
guint32 type;
union
{
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;
struct
{
gint32 x;
gint32 y;
gint32 width;
gint32 height;
} d_region;
gint32 d_display;
gint32 d_image;
gint32 d_layer;
gint32 d_channel;
gint32 d_drawable;
gint32 d_selection;
gint32 d_boundary;
gint32 d_path;
struct
{
gchar *name;
guint32 flags;
guint32 size;
gpointer data;
} d_parasite;
gint32 d_status;
} data;
} GPParam;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2534219"></a><h3><a name="GPParamDef"></a>GPParamDef</h3><a class="indexterm" name="id2574910"></a><pre class="programlisting">typedef struct {
guint32 type;
gchar *name;
gchar *description;
} GPParamDef;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574922"></a><h3><a name="GPProcRun"></a>GPProcRun</h3><a class="indexterm" name="id2574929"></a><pre class="programlisting">typedef struct {
gchar *name;
guint32 nparams;
GPParam *params;
} GPProcRun;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574940"></a><h3><a name="GPProcReturn"></a>GPProcReturn</h3><a class="indexterm" name="id2574948"></a><pre class="programlisting">typedef struct {
gchar *name;
guint32 nparams;
GPParam *params;
} GPProcReturn;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574959"></a><h3><a name="GPProcInstall"></a>GPProcInstall</h3><a class="indexterm" name="id2574966"></a><pre class="programlisting">typedef struct {
gchar *name;
gchar *blurb;
gchar *help;
gchar *author;
gchar *copyright;
gchar *date;
gchar *menu_path;
gchar *image_types;
guint32 type;
guint32 nparams;
guint32 nreturn_vals;
GPParamDef *params;
GPParamDef *return_vals;
} GPProcInstall;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574982"></a><h3><a name="GPProcUninstall"></a>GPProcUninstall</h3><a class="indexterm" name="id2574989"></a><pre class="programlisting">typedef struct {
gchar *name;
} GPProcUninstall;
</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2574999"></a><h3><a name="gp-init"></a>gp_init ()</h3><a class="indexterm" name="id2575006"></a><pre class="programlisting">void gp_init (void);</pre><p>
</p></div><hr><div class="refsect2" lang="en"><a name="id2575019"></a><h3><a name="gp-has-init-write"></a>gp_has_init_write ()</h3><a class="indexterm" name="id2575027"></a><pre class="programlisting">gboolean gp_has_init_write (GIOChannel *channel,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2575083"></a><h3><a name="gp-quit-write"></a>gp_quit_write ()</h3><a class="indexterm" name="id2575091"></a><pre class="programlisting">gboolean gp_quit_write (GIOChannel *channel,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2575147"></a><h3><a name="gp-config-write"></a>gp_config_write ()</h3><a class="indexterm" name="id2575155"></a><pre class="programlisting">gboolean gp_config_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPConfig">GPConfig</a> *config,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>config</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593266"></a><h3><a name="gp-tile-req-write"></a>gp_tile_req_write ()</h3><a class="indexterm" name="id2593275"></a><pre class="programlisting">gboolean gp_tile_req_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPTileReq">GPTileReq</a> *tile_req,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>tile_req</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593352"></a><h3><a name="gp-tile-ack-write"></a>gp_tile_ack_write ()</h3><a class="indexterm" name="id2593360"></a><pre class="programlisting">gboolean gp_tile_ack_write (GIOChannel *channel,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593421"></a><h3><a name="gp-tile-data-write"></a>gp_tile_data_write ()</h3><a class="indexterm" name="id2593429"></a><pre class="programlisting">gboolean gp_tile_data_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPTileData">GPTileData</a> *tile_data,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>tile_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593506"></a><h3><a name="gp-proc-run-write"></a>gp_proc_run_write ()</h3><a class="indexterm" name="id2593515"></a><pre class="programlisting">gboolean gp_proc_run_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcRun">GPProcRun</a> *proc_run,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>proc_run</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593592"></a><h3><a name="gp-proc-return-write"></a>gp_proc_return_write ()</h3><a class="indexterm" name="id2593600"></a><pre class="programlisting">gboolean gp_proc_return_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcReturn">GPProcReturn</a> *proc_return,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>proc_return</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593678"></a><h3><a name="gp-temp-proc-run-write"></a>gp_temp_proc_run_write ()</h3><a class="indexterm" name="id2593686"></a><pre class="programlisting">gboolean gp_temp_proc_run_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcRun">GPProcRun</a> *proc_run,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>proc_run</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593763"></a><h3><a name="gp-temp-proc-return-write"></a>gp_temp_proc_return_write ()</h3><a class="indexterm" name="id2593772"></a><pre class="programlisting">gboolean gp_temp_proc_return_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcReturn">GPProcReturn</a> *proc_return,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>proc_return</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593849"></a><h3><a name="gp-proc-install-write"></a>gp_proc_install_write ()</h3><a class="indexterm" name="id2593857"></a><pre class="programlisting">gboolean gp_proc_install_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcInstall">GPProcInstall</a> *proc_install,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>proc_install</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2593935"></a><h3><a name="gp-proc-uninstall-write"></a>gp_proc_uninstall_write ()</h3><a class="indexterm" name="id2593943"></a><pre class="programlisting">gboolean gp_proc_uninstall_write (GIOChannel *channel,
<a href="libgimpbase-gimpprotocol.html#GPProcUninstall">GPProcUninstall</a> *proc_uninstall,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>proc_uninstall</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div><hr><div class="refsect2" lang="en"><a name="id2594020"></a><h3><a name="gp-extension-ack-write"></a>gp_extension_ack_write ()</h3><a class="indexterm" name="id2594029"></a><pre class="programlisting">gboolean gp_extension_ack_write (GIOChannel *channel,
gpointer user_data);</pre><p>
</p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term"><i class="parameter"><tt>channel</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><i class="parameter"><tt>user_data</tt></i> :</span></td><td>
</td></tr><tr><td><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></td><td>
</td></tr></tbody></table></div></div></div><div class="refsect1" lang="en"><a name="id2594090"></a><h2>See Also</h2><p>
<span class="type">libgimp-gimpwire</span>
</p></div></div><table class="navigation" width="100%" summary="Navigation footer" cellpadding="2" cellspacing="0"><tr valign="middle"><td align="left"><a accesskey="p" href="libgimpbase-gimputils.html"><b>&lt;&lt; gimputils</b></a></td><td align="right"><a accesskey="n" href="libgimpbase-gimpwire.html"><b>gimpwire &gt;&gt;</b></a></td></tr></table></body></html>