1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>PeasActivatable</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="Peas Reference Manual">
<link rel="up" href="ch03.html" title="Built-in Extension Interfaces">
<link rel="prev" href="ch03.html" title="Built-in Extension Interfaces">
<link rel="next" href="PeasGtkConfigurable.html" title="PeasGtkConfigurable">
<meta name="generator" content="GTK-Doc V1.18.1 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="ch03.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="ch03.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">Peas Reference Manual</th>
<td><a accesskey="n" href="PeasGtkConfigurable.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#PeasActivatable.synopsis" class="shortcut">Top</a>
|
<a href="#PeasActivatable.description" class="shortcut">Description</a>
|
<a href="#PeasActivatable.object-hierarchy" class="shortcut">Object Hierarchy</a>
|
<a href="#PeasActivatable.prerequisites" class="shortcut">Prerequisites</a>
|
<a href="#PeasActivatable.properties" class="shortcut">Properties</a>
</td></tr>
</table>
<div class="refentry">
<a name="PeasActivatable"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="PeasActivatable.top_of_page"></a>PeasActivatable</span></h2>
<p>PeasActivatable — Interface for activatable plugins.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="PeasActivatable.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis"> <a class="link" href="PeasActivatable.html#PeasActivatable-struct" title="PeasActivatable">PeasActivatable</a>;
struct <a class="link" href="PeasActivatable.html#PeasActivatableInterface" title="struct PeasActivatableInterface">PeasActivatableInterface</a>;
<span class="returnvalue">void</span> <a class="link" href="PeasActivatable.html#peas-activatable-activate" title="peas_activatable_activate ()">peas_activatable_activate</a> (<em class="parameter"><code><a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> *activatable</code></em>);
<span class="returnvalue">void</span> <a class="link" href="PeasActivatable.html#peas-activatable-deactivate" title="peas_activatable_deactivate ()">peas_activatable_deactivate</a> (<em class="parameter"><code><a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> *activatable</code></em>);
<span class="returnvalue">void</span> <a class="link" href="PeasActivatable.html#peas-activatable-update-state" title="peas_activatable_update_state ()">peas_activatable_update_state</a> (<em class="parameter"><code><a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> *activatable</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="PeasActivatable.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
GInterface
+----PeasActivatable
</pre>
</div>
<div class="refsect1">
<a name="PeasActivatable.prerequisites"></a><h2>Prerequisites</h2>
<p>
PeasActivatable requires
GObject.</p>
</div>
<div class="refsect1">
<a name="PeasActivatable.properties"></a><h2>Properties</h2>
<pre class="synopsis">
"<a class="link" href="PeasActivatable.html#PeasActivatable--object" title='The "object" property'>object</a>" <span class="type">GObject</span>* : Read / Write / Construct Only
</pre>
</div>
<div class="refsect1">
<a name="PeasActivatable.description"></a><h2>Description</h2>
<p>
<a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> is an interface which should be implemented by plugins
that should be activated on an object of a certain type (depending on the
application). For instance, in a typical windowed application,
<a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> plugin instances could be bound to individual toplevel
windows.
</p>
<p>
It is typical to use <a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> along with <a class="link" href="PeasExtensionSet.html" title="PeasExtensionSet"><span class="type">PeasExtensionSet</span></a> in order
to activate and deactivate extensions automatically when plugins are loaded
or unloaded.
</p>
<p>
You can also use the code of this interface as a base for your own
extension types, as illustrated by gedit's <code class="literal">GeditWindowActivatable</code> and
<code class="literal">GeditDocumentActivatable</code> interfaces.
</p>
</div>
<div class="refsect1">
<a name="PeasActivatable.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="PeasActivatable-struct"></a><h3>PeasActivatable</h3>
<pre class="programlisting">typedef struct _PeasActivatable PeasActivatable;</pre>
<p>
Interface for activatable plugins.
</p>
</div>
<hr>
<div class="refsect2">
<a name="PeasActivatableInterface"></a><h3>struct PeasActivatableInterface</h3>
<pre class="programlisting">struct PeasActivatableInterface {
GTypeInterface g_iface;
/* Virtual public methods */
void (*activate) (PeasActivatable *activatable);
void (*deactivate) (PeasActivatable *activatable);
void (*update_state) (PeasActivatable *activatable);
};
</pre>
<p>
Provides an interface for activatable plugins.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><span class="type">GTypeInterface</span> <em class="structfield"><code><a name="PeasActivatableInterface.g-iface"></a>g_iface</code></em>;</span></p></td>
<td>The parent interface.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="PeasActivatableInterface.activate"></a>activate</code></em> ()</span></p></td>
<td>Activates the plugin.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="PeasActivatableInterface.deactivate"></a>deactivate</code></em> ()</span></p></td>
<td>Deactivates the plugin.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="PeasActivatableInterface.update-state"></a>update_state</code></em> ()</span></p></td>
<td>Updates the plugin's internal state to take account of
a change in the target object's state.</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="peas-activatable-activate"></a><h3>peas_activatable_activate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> peas_activatable_activate (<em class="parameter"><code><a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> *activatable</code></em>);</pre>
<p>
Activates the extension on the targetted object.
</p>
<p>
On activation, the extension should hook itself to the object
where it makes sense.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>activatable</code></em> :</span></p></td>
<td>A <a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a>.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="peas-activatable-deactivate"></a><h3>peas_activatable_deactivate ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> peas_activatable_deactivate (<em class="parameter"><code><a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> *activatable</code></em>);</pre>
<p>
Deactivates the extension on the targetted object.
</p>
<p>
On deactivation, an extension should remove itself from all the hooks it
used and should perform any cleanup required, so it can be unreffed safely
and without any more effect on the host application.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>activatable</code></em> :</span></p></td>
<td>A <a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a>.</td>
</tr></tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="peas-activatable-update-state"></a><h3>peas_activatable_update_state ()</h3>
<pre class="programlisting"><span class="returnvalue">void</span> peas_activatable_update_state (<em class="parameter"><code><a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> *activatable</code></em>);</pre>
<p>
Triggers an update of the extension internal state to take into account
state changes in the targetted object, due to some event or user action.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody><tr>
<td><p><span class="term"><em class="parameter"><code>activatable</code></em> :</span></p></td>
<td>A <a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a>.</td>
</tr></tbody>
</table></div>
</div>
</div>
<div class="refsect1">
<a name="PeasActivatable.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="PeasActivatable--object"></a><h3>The <code class="literal">"object"</code> property</h3>
<pre class="programlisting"> "object" <span class="type">GObject</span>* : Read / Write / Construct Only</pre>
<p>
The object property contains the targetted object for this
<a class="link" href="PeasActivatable.html" title="PeasActivatable"><span class="type">PeasActivatable</span></a> instance, for example a toplevel window in a typical
windowed application. It is set at construction time and won't change.
</p>
</div>
</div>
<div class="refsect1">
<a name="PeasActivatable.see-also"></a><h2>See Also</h2>
<a class="link" href="PeasExtensionSet.html" title="PeasExtensionSet"><span class="type">PeasExtensionSet</span></a>
</div>
</div>
<div class="footer">
<hr>
Generated by GTK-Doc V1.18.1</div>
</body>
</html>
|