sync
[gir-1.1] / Peas-1.0.gir
1 <?xml version="1.0"?>
2 <!-- This file was automatically generated from C sources - DO NOT EDIT!
3 To affect the contents of this file, edit the original C definitions,
4 and/or use gtk-doc annotations.  -->
5 <repository version="1.1"
6             xmlns="http://www.gtk.org/introspection/core/1.0"
7             xmlns:c="http://www.gtk.org/introspection/c/1.0"
8             xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
9   <include name="GLib" version="2.0"/>
10   <include name="GModule" version="2.0"/>
11   <include name="GObject" version="2.0"/>
12   <c:include name="libpeas/peas.h"/>
13   <namespace name="Peas"
14              version="1.0"
15              shared-library="libpeas-1.0.so.0"
16              c:prefix="Peas">
17     <interface name="Activatable"
18                c:type="PeasActivatable"
19                glib:type-name="PeasActivatable"
20                glib:get-type="peas_activatable_get_type"
21                glib:type-struct="ActivatableInterface">
22       <virtual-method name="activate" invoker="activate">
23         <doc xml:whitespace="preserve">Activates the extension on the given object.</doc>
24         <return-value transfer-ownership="none">
25           <type name="none" c:type="void"/>
26         </return-value>
27         <parameters>
28           <parameter name="object" transfer-ownership="none">
29             <doc xml:whitespace="preserve">The #GObject on which the plugin should be activated.</doc>
30             <type name="GObject.Object" c:type="GObject*"/>
31           </parameter>
32         </parameters>
33       </virtual-method>
34       <virtual-method name="deactivate" invoker="deactivate">
35         <doc xml:whitespace="preserve">Deactivates the plugin on the given object.</doc>
36         <return-value transfer-ownership="none">
37           <type name="none" c:type="void"/>
38         </return-value>
39         <parameters>
40           <parameter name="object" transfer-ownership="none">
41             <doc xml:whitespace="preserve">A #GObject.</doc>
42             <type name="GObject.Object" c:type="GObject*"/>
43           </parameter>
44         </parameters>
45       </virtual-method>
46       <virtual-method name="update_state" invoker="update_state">
47         <doc xml:whitespace="preserve">Triggers an update of the plugin's internal state to take into account
48 state changes in the targetted object, due to a plugin or user action.</doc>
49         <return-value transfer-ownership="none">
50           <type name="none" c:type="void"/>
51         </return-value>
52         <parameters>
53           <parameter name="object" transfer-ownership="none">
54             <doc xml:whitespace="preserve">A #GObject.</doc>
55             <type name="GObject.Object" c:type="GObject*"/>
56           </parameter>
57         </parameters>
58       </virtual-method>
59       <method name="activate" c:identifier="peas_activatable_activate">
60         <doc xml:whitespace="preserve">Activates the extension on the given object.</doc>
61         <return-value transfer-ownership="none">
62           <type name="none" c:type="void"/>
63         </return-value>
64         <parameters>
65           <parameter name="object" transfer-ownership="none">
66             <doc xml:whitespace="preserve">The #GObject on which the plugin should be activated.</doc>
67             <type name="GObject.Object" c:type="GObject*"/>
68           </parameter>
69         </parameters>
70       </method>
71       <method name="deactivate" c:identifier="peas_activatable_deactivate">
72         <doc xml:whitespace="preserve">Deactivates the plugin on the given object.</doc>
73         <return-value transfer-ownership="none">
74           <type name="none" c:type="void"/>
75         </return-value>
76         <parameters>
77           <parameter name="object" transfer-ownership="none">
78             <doc xml:whitespace="preserve">A #GObject.</doc>
79             <type name="GObject.Object" c:type="GObject*"/>
80           </parameter>
81         </parameters>
82       </method>
83       <method name="update_state" c:identifier="peas_activatable_update_state">
84         <doc xml:whitespace="preserve">Triggers an update of the plugin's internal state to take into account
85 state changes in the targetted object, due to a plugin or user action.</doc>
86         <return-value transfer-ownership="none">
87           <type name="none" c:type="void"/>
88         </return-value>
89         <parameters>
90           <parameter name="object" transfer-ownership="none">
91             <doc xml:whitespace="preserve">A #GObject.</doc>
92             <type name="GObject.Object" c:type="GObject*"/>
93           </parameter>
94         </parameters>
95       </method>
96     </interface>
97     <record name="ActivatableInterface"
98             c:type="PeasActivatableInterface"
99             glib:is-gtype-struct-for="Activatable">
100       <field name="g_iface">
101         <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
102       </field>
103       <field name="activate">
104         <callback name="activate" c:type="activate">
105           <return-value transfer-ownership="none">
106             <type name="none" c:type="void"/>
107           </return-value>
108           <parameters>
109             <parameter name="activatable" transfer-ownership="none">
110               <type name="Activatable" c:type="PeasActivatable*"/>
111             </parameter>
112             <parameter name="object" transfer-ownership="none">
113               <doc xml:whitespace="preserve">The #GObject on which the plugin should be activated.</doc>
114               <type name="GObject.Object" c:type="GObject*"/>
115             </parameter>
116           </parameters>
117         </callback>
118       </field>
119       <field name="deactivate">
120         <callback name="deactivate" c:type="deactivate">
121           <return-value transfer-ownership="none">
122             <type name="none" c:type="void"/>
123           </return-value>
124           <parameters>
125             <parameter name="activatable" transfer-ownership="none">
126               <type name="Activatable" c:type="PeasActivatable*"/>
127             </parameter>
128             <parameter name="object" transfer-ownership="none">
129               <doc xml:whitespace="preserve">A #GObject.</doc>
130               <type name="GObject.Object" c:type="GObject*"/>
131             </parameter>
132           </parameters>
133         </callback>
134       </field>
135       <field name="update_state">
136         <callback name="update_state" c:type="update_state">
137           <return-value transfer-ownership="none">
138             <type name="none" c:type="void"/>
139           </return-value>
140           <parameters>
141             <parameter name="activatable" transfer-ownership="none">
142               <type name="Activatable" c:type="PeasActivatable*"/>
143             </parameter>
144             <parameter name="object" transfer-ownership="none">
145               <doc xml:whitespace="preserve">A #GObject.</doc>
146               <type name="GObject.Object" c:type="GObject*"/>
147             </parameter>
148           </parameters>
149         </callback>
150       </field>
151     </record>
152     <class name="Engine"
153            c:type="PeasEngine"
154            parent="GObject.Object"
155            glib:type-name="PeasEngine"
156            glib:get-type="peas_engine_get_type"
157            glib:type-struct="EngineClass">
158       <doc xml:whitespace="preserve">Engine at the heart of the Peas plugin system.</doc>
159       <constructor name="new" c:identifier="peas_engine_new">
160         <doc xml:whitespace="preserve">Returns a new #PeasEngine object.
161 See the properties description for more information about the parameters.</doc>
162         <return-value transfer-ownership="full">
163           <doc xml:whitespace="preserve">a newly created #PeasEngine object.</doc>
164           <type name="Engine" c:type="PeasEngine*"/>
165         </return-value>
166         <parameters>
167           <parameter name="app_name" transfer-ownership="none" allow-none="1">
168             <doc xml:whitespace="preserve">The name of the application</doc>
169             <type name="utf8" c:type="gchar*"/>
170           </parameter>
171           <parameter name="base_module_dir" transfer-ownership="none">
172             <doc xml:whitespace="preserve">The base directory for language modules</doc>
173             <type name="utf8" c:type="gchar*"/>
174           </parameter>
175           <parameter name="search_paths" transfer-ownership="none">
176             <doc xml:whitespace="preserve">The paths where to look for plugins</doc>
177             <array c:type="gchar**">
178               <type name="utf8"/>
179             </array>
180           </parameter>
181         </parameters>
182       </constructor>
183       <method name="disable_loader" c:identifier="peas_engine_disable_loader">
184         <doc xml:whitespace="preserve">Disable a loader, avoiding using the plugins written using the
185 related language to be loaded. This method must be called before
186 any plugin relying on the loader @loader_id has been loaded.
187 For instance, the following code will prevent any python plugin
188 from being loaded:
189 |[
190 peas_engine_disable_loader (engine, "python");
191 ]|</doc>
192         <return-value transfer-ownership="none">
193           <type name="none" c:type="void"/>
194         </return-value>
195         <parameters>
196           <parameter name="loader_id" transfer-ownership="none">
197             <doc xml:whitespace="preserve">The id of the loader to inhibit.</doc>
198             <type name="utf8" c:type="gchar*"/>
199           </parameter>
200         </parameters>
201       </method>
202       <method name="rescan_plugins" c:identifier="peas_engine_rescan_plugins">
203         <doc xml:whitespace="preserve">Rescan all the registered directories to find new or updated plugins.
204 Calling this function will make the newly installed plugin infos to be
205 loaded by the engine, so the new plugins can actually be used without
206 restarting the application.</doc>
207         <return-value transfer-ownership="none">
208           <type name="none" c:type="void"/>
209         </return-value>
210       </method>
211       <method name="get_plugin_list"
212               c:identifier="peas_engine_get_plugin_list">
213         <doc xml:whitespace="preserve">Returns the list of #PeasPluginInfo known to the engine.
214 #PeasPluginInfo. Note that the list belongs to the engine and should
215 not be freed.</doc>
216         <return-value transfer-ownership="none">
217           <doc xml:whitespace="preserve">a #GList of</doc>
218           <type name="GLib.List" c:type="GList*">
219             <type name="Peas.PluginInfo"/>
220           </type>
221         </return-value>
222       </method>
223       <method name="get_loaded_plugins"
224               c:identifier="peas_engine_get_loaded_plugins">
225         <doc xml:whitespace="preserve">Returns the list of the names of all the loaded plugins, or %NULL if there
226 is no plugin currently loaded. Please note that the returned array is a</doc>
227         <return-value transfer-ownership="full">
228           <doc xml:whitespace="preserve">A newly-allocated NULL-terminated array of strings, or %NULL.</doc>
229           <array c:type="gchar**">
230             <type name="utf8"/>
231           </array>
232         </return-value>
233       </method>
234       <method name="set_loaded_plugins"
235               c:identifier="peas_engine_set_loaded_plugins">
236         <doc xml:whitespace="preserve">Sets the list of loaded plugins for @engine. When this function is called,
237 the #PeasEngine will load all the plugins whose names are in @plugin_names,
238 and ensures all other active plugins are unloaded.</doc>
239         <return-value transfer-ownership="none">
240           <type name="none" c:type="void"/>
241         </return-value>
242         <parameters>
243           <parameter name="plugin_names" transfer-ownership="none">
244             <doc xml:whitespace="preserve">A %NULL-terminated array of plugin names.</doc>
245             <array c:type="gchar**">
246               <type name="utf8"/>
247             </array>
248           </parameter>
249         </parameters>
250       </method>
251       <method name="get_plugin_info"
252               c:identifier="peas_engine_get_plugin_info">
253         <return-value transfer-ownership="full">
254           <doc xml:whitespace="preserve">the #PeasPluginInfo corresponding with a given plugin name.</doc>
255           <type name="PluginInfo" c:type="PeasPluginInfo*"/>
256         </return-value>
257         <parameters>
258           <parameter name="plugin_name" transfer-ownership="none">
259             <doc xml:whitespace="preserve">A plugin name.</doc>
260             <type name="utf8" c:type="gchar*"/>
261           </parameter>
262         </parameters>
263       </method>
264       <method name="load_plugin" c:identifier="peas_engine_load_plugin">
265         <doc xml:whitespace="preserve">Loads the plugin corresponding to @info if it's not currently loaded.</doc>
266         <return-value transfer-ownership="none">
267           <doc xml:whitespace="preserve">whether the plugin has been successfuly loaded.</doc>
268           <type name="boolean" c:type="gboolean"/>
269         </return-value>
270         <parameters>
271           <parameter name="info" transfer-ownership="none">
272             <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
273             <type name="PluginInfo" c:type="PeasPluginInfo*"/>
274           </parameter>
275         </parameters>
276       </method>
277       <method name="unload_plugin" c:identifier="peas_engine_unload_plugin">
278         <doc xml:whitespace="preserve">Unloads the plugin corresponding to @info.</doc>
279         <return-value transfer-ownership="none">
280           <doc xml:whitespace="preserve">whether the plugin has been successfuly unloaded.</doc>
281           <type name="boolean" c:type="gboolean"/>
282         </return-value>
283         <parameters>
284           <parameter name="info" transfer-ownership="none">
285             <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
286             <type name="PluginInfo" c:type="PeasPluginInfo*"/>
287           </parameter>
288         </parameters>
289       </method>
290       <method name="garbage_collect"
291               c:identifier="peas_engine_garbage_collect">
292         <doc xml:whitespace="preserve">This function triggers garbage collection on all the loaders currently
293 owned by the #PeasEngine.  This can be used to force the loaders to destroy
294 managed objects that still hold references to objects that are about to
295 disappear.</doc>
296         <return-value transfer-ownership="none">
297           <type name="none" c:type="void"/>
298         </return-value>
299       </method>
300       <method name="provides_extension"
301               c:identifier="peas_engine_provides_extension">
302         <return-value transfer-ownership="none">
303           <type name="boolean" c:type="gboolean"/>
304         </return-value>
305         <parameters>
306           <parameter name="info" transfer-ownership="none">
307             <type name="PluginInfo" c:type="PeasPluginInfo*"/>
308           </parameter>
309           <parameter name="extension_type" transfer-ownership="none">
310             <type name="GType" c:type="GType"/>
311           </parameter>
312         </parameters>
313       </method>
314       <method name="get_extension" c:identifier="peas_engine_get_extension">
315         <return-value transfer-ownership="full">
316           <type name="Extension" c:type="PeasExtension*"/>
317         </return-value>
318         <parameters>
319           <parameter name="info" transfer-ownership="none">
320             <type name="PluginInfo" c:type="PeasPluginInfo*"/>
321           </parameter>
322           <parameter name="extension_type" transfer-ownership="none">
323             <type name="GType" c:type="GType"/>
324           </parameter>
325         </parameters>
326       </method>
327       <property name="app-name"
328                 writable="1"
329                 construct-only="1"
330                 transfer-ownership="none">
331         <doc xml:whitespace="preserve">The application name. Filename extension and section header for
332 #PeasPluginInfo files are actually derived from this value.
333 For instance, if app-name is "Gedit", then info files will have
334 the .gedit-plugin extension, and the engine will look for a
335 "Gedit Plugin" section in it to load the plugin data.</doc>
336         <type name="utf8" c:type="gchararray"/>
337       </property>
338       <property name="base-module-dir"
339                 writable="1"
340                 construct-only="1"
341                 transfer-ownership="none">
342         <doc xml:whitespace="preserve">The base application directory for binding modules lookup.
343 Each loader module will load its modules from a subdirectory of
344 the base module directory. For instance, the python loader will
345 look for python modules in "${base-module-dir}/python/".</doc>
346         <type name="utf8" c:type="gchararray"/>
347       </property>
348       <property name="search-paths"
349                 writable="1"
350                 construct-only="1"
351                 transfer-ownership="none">
352         <doc xml:whitespace="preserve">The list of path where to look for plugins.
353 A so-called "search path" actually consists on a couple of both a
354 module directory (where the shared libraries or language modules
355 lie) and a data directory (where the plugin data is).
356 The #PeasPlugin will be able to use a correct data dir depending on
357 where it is installed, hence allowing to keep the plugin agnostic
358 installed both in the system path or in the user's home directory,
359 without taking other special care than using
360 egg_plugin_get_data_dir() when looking for its data files.
361 Concretely, this property contains a NULL-terminated array of
362 strings, whose even-indexed strings are module directories, and
363 odd-indexed ones are the associated data directories.  Here is an
364 example of such an array:
365 |[
366 gchar const * const search_paths[] = {
367 // Plugins in ~/.config
368 g_build_filename (g_get_user_config_dir (), "example/plugins", NULL),
369 g_build_filename (g_get_user_config_dir (), "example/plugins", NULL),
370 // System plugins
371 EXAMPLE_PREFIX "/lib/example/plugins/",
372 EXAMPLE_PREFIX "/share/example/plugins/",
373 NULL
374 };
375 ]|</doc>
376         <type name="GObject.Strv" c:type="GStrv"/>
377       </property>
378       <field name="parent">
379         <type name="GObject.Object" c:type="GObject"/>
380       </field>
381       <field name="priv">
382         <type name="EnginePrivate" c:type="PeasEnginePrivate*"/>
383       </field>
384       <glib:signal name="load-plugin">
385         <doc xml:whitespace="preserve">The load-plugin signal is emitted when a plugin is being loaded.</doc>
386         <return-value transfer-ownership="full">
387           <type name="none" c:type="void"/>
388         </return-value>
389         <parameters>
390           <parameter name="info" transfer-ownership="none">
391             <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
392             <type name="PluginInfo" c:type="PeasPluginInfo"/>
393           </parameter>
394         </parameters>
395       </glib:signal>
396       <glib:signal name="unload-plugin">
397         <doc xml:whitespace="preserve">The unload-plugin signal is emitted when a plugin is being unloaded.</doc>
398         <return-value transfer-ownership="full">
399           <type name="none" c:type="void"/>
400         </return-value>
401         <parameters>
402           <parameter name="info" transfer-ownership="none">
403             <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
404             <type name="PluginInfo" c:type="PeasPluginInfo"/>
405           </parameter>
406         </parameters>
407       </glib:signal>
408     </class>
409     <record name="EngineClass"
410             c:type="PeasEngineClass"
411             glib:is-gtype-struct-for="Engine">
412       <field name="parent_class">
413         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
414       </field>
415       <field name="load_plugin">
416         <callback name="load_plugin" c:type="load_plugin">
417           <return-value transfer-ownership="none">
418             <type name="none" c:type="void"/>
419           </return-value>
420           <parameters>
421             <parameter name="engine" transfer-ownership="none">
422               <type name="Engine" c:type="PeasEngine*"/>
423             </parameter>
424             <parameter name="info" transfer-ownership="none">
425               <type name="PluginInfo" c:type="PeasPluginInfo*"/>
426             </parameter>
427           </parameters>
428         </callback>
429       </field>
430       <field name="unload_plugin">
431         <callback name="unload_plugin" c:type="unload_plugin">
432           <return-value transfer-ownership="none">
433             <type name="none" c:type="void"/>
434           </return-value>
435           <parameters>
436             <parameter name="engine" transfer-ownership="none">
437               <type name="Engine" c:type="PeasEngine*"/>
438             </parameter>
439             <parameter name="info" transfer-ownership="none">
440               <type name="PluginInfo" c:type="PeasPluginInfo*"/>
441             </parameter>
442           </parameters>
443         </callback>
444       </field>
445     </record>
446     <record name="EnginePrivate" c:type="PeasEnginePrivate">
447     </record>
448     <class name="Extension"
449            c:type="PeasExtension"
450            parent="GObject.Object"
451            abstract="1"
452            glib:type-name="PeasExtension"
453            glib:get-type="peas_extension_get_type"
454            glib:type-struct="ExtensionClass">
455       <doc xml:whitespace="preserve">Base class for plugins.</doc>
456       <method name="call"
457               c:identifier="peas_extension_call"
458               introspectable="0">
459         <doc xml:whitespace="preserve">Call a method of the object behind @extension.</doc>
460         <return-value transfer-ownership="none">
461           <doc xml:whitespace="preserve">%TRUE on successful call.</doc>
462           <type name="boolean" c:type="gboolean"/>
463         </return-value>
464         <parameters>
465           <parameter name="method_name" transfer-ownership="none">
466             <doc xml:whitespace="preserve">the name of the method that should be called.</doc>
467             <type name="utf8" c:type="gchar*"/>
468           </parameter>
469           <parameter transfer-ownership="none">
470             <varargs>
471             </varargs>
472           </parameter>
473         </parameters>
474       </method>
475       <field name="parent">
476         <type name="GObject.Object" c:type="GObject"/>
477       </field>
478     </class>
479     <class name="ExtensionBase"
480            c:type="PeasExtensionBase"
481            parent="GObject.Object"
482            abstract="1"
483            glib:type-name="PeasExtensionBase"
484            glib:get-type="peas_extension_base_get_type"
485            glib:type-struct="ExtensionBaseClass">
486       <doc xml:whitespace="preserve">Base class for C extensions.</doc>
487       <method name="get_plugin_info"
488               c:identifier="peas_extension_base_get_plugin_info">
489         <doc xml:whitespace="preserve">Get information relative to @extbase.</doc>
490         <return-value transfer-ownership="full">
491           <doc xml:whitespace="preserve">the #PeasPluginInfo relative to the #PeasExtensionBase.</doc>
492           <type name="PluginInfo" c:type="PeasPluginInfo*"/>
493         </return-value>
494       </method>
495       <method name="get_data_dir"
496               c:identifier="peas_extension_base_get_data_dir">
497         <doc xml:whitespace="preserve">Get the path of the directory where the plugin should look for
498 its data files.
499 directory where the plugin should look for its data files</doc>
500         <return-value transfer-ownership="full">
501           <doc xml:whitespace="preserve">A newly allocated string with the path of the</doc>
502           <type name="utf8" c:type="gchar*"/>
503         </return-value>
504       </method>
505       <property name="data-dir" transfer-ownership="none">
506         <type name="utf8" c:type="gchararray"/>
507       </property>
508       <property name="plugin-info"
509                 writable="1"
510                 construct-only="1"
511                 transfer-ownership="none">
512         <type name="PluginInfo" c:type="PeasPluginInfo"/>
513       </property>
514       <field name="parent">
515         <type name="GObject.Object" c:type="GObject"/>
516       </field>
517       <field name="plugin_info">
518         <type name="PluginInfo" c:type="PeasPluginInfo*"/>
519       </field>
520     </class>
521     <record name="ExtensionBaseClass"
522             c:type="PeasExtensionBaseClass"
523             glib:is-gtype-struct-for="ExtensionBase">
524       <field name="parent_class">
525         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
526       </field>
527     </record>
528     <record name="ExtensionClass"
529             c:type="PeasExtensionClass"
530             glib:is-gtype-struct-for="Extension">
531       <field name="parent_class">
532         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
533       </field>
534     </record>
535     <class name="ExtensionSet"
536            c:type="PeasExtensionSet"
537            parent="GObject.Object"
538            glib:type-name="PeasExtensionSet"
539            glib:get-type="peas_extension_set_get_type"
540            glib:type-struct="ExtensionSetClass">
541       <constructor name="new" c:identifier="peas_extension_set_new">
542         <doc xml:whitespace="preserve">Create an #ExtensionSet for all the @exten_type extensions defined in
543 the plugins loaded in @engine.</doc>
544         <return-value transfer-ownership="full">
545           <type name="ExtensionSet" c:type="PeasExtensionSet*"/>
546         </return-value>
547         <parameters>
548           <parameter name="engine" transfer-ownership="none">
549             <doc xml:whitespace="preserve">A #PeasEngine.</doc>
550             <type name="Engine" c:type="PeasEngine*"/>
551           </parameter>
552           <parameter name="exten_type" transfer-ownership="none">
553             <doc xml:whitespace="preserve">the extension #GType.</doc>
554             <type name="GType" c:type="GType"/>
555           </parameter>
556         </parameters>
557       </constructor>
558       <method name="call"
559               c:identifier="peas_extension_set_call"
560               introspectable="0">
561         <doc xml:whitespace="preserve">Call a method on all the #PeasExtension instances contained in @set.</doc>
562         <return-value transfer-ownership="none">
563           <doc xml:whitespace="preserve">%TRUE on successful call.</doc>
564           <type name="boolean" c:type="gboolean"/>
565         </return-value>
566         <parameters>
567           <parameter name="method_name" transfer-ownership="none">
568             <doc xml:whitespace="preserve">the name of the method that should be called.</doc>
569             <type name="utf8" c:type="gchar*"/>
570           </parameter>
571           <parameter transfer-ownership="none">
572             <varargs>
573             </varargs>
574           </parameter>
575         </parameters>
576       </method>
577       <property name="engine"
578                 writable="1"
579                 construct-only="1"
580                 transfer-ownership="none">
581         <type name="Engine" c:type="PeasEngine"/>
582       </property>
583       <property name="extension-type"
584                 writable="1"
585                 construct-only="1"
586                 transfer-ownership="none">
587         <type name="GType" c:type="GType"/>
588       </property>
589       <field name="parent">
590         <type name="GObject.Object" c:type="GObject"/>
591       </field>
592       <field name="priv">
593         <type name="ExtensionSetPrivate" c:type="PeasExtensionSetPrivate*"/>
594       </field>
595       <glib:signal name="extension-added">
596         <return-value transfer-ownership="full">
597           <type name="none" c:type="void"/>
598         </return-value>
599         <parameters>
600           <parameter name="object" transfer-ownership="none">
601             <type name="PluginInfo" c:type="PeasPluginInfo"/>
602           </parameter>
603           <parameter name="p0" transfer-ownership="none">
604             <type name="Extension" c:type="PeasExtension"/>
605           </parameter>
606         </parameters>
607       </glib:signal>
608       <glib:signal name="extension-removed">
609         <return-value transfer-ownership="full">
610           <type name="none" c:type="void"/>
611         </return-value>
612         <parameters>
613           <parameter name="object" transfer-ownership="none">
614             <type name="PluginInfo" c:type="PeasPluginInfo"/>
615           </parameter>
616           <parameter name="p0" transfer-ownership="none">
617             <type name="Extension" c:type="PeasExtension"/>
618           </parameter>
619         </parameters>
620       </glib:signal>
621     </class>
622     <record name="ExtensionSetClass"
623             c:type="PeasExtensionSetClass"
624             glib:is-gtype-struct-for="ExtensionSet">
625       <field name="parent_class">
626         <type name="GObject.ObjectClass" c:type="GObjectClass"/>
627       </field>
628     </record>
629     <record name="ExtensionSetPrivate" c:type="PeasExtensionSetPrivate">
630     </record>
631     <callback name="FactoryFunc" c:type="PeasFactoryFunc">
632       <return-value transfer-ownership="full">
633         <type name="GObject.Object" c:type="GObject*"/>
634       </return-value>
635       <parameters>
636         <parameter name="n_parameters" transfer-ownership="none">
637           <type name="uint" c:type="guint"/>
638         </parameter>
639         <parameter name="parameters" transfer-ownership="none">
640           <type name="GObject.Parameter" c:type="GParameter*"/>
641         </parameter>
642         <parameter name="user_data" transfer-ownership="none" closure="2">
643           <type name="any" c:type="gpointer"/>
644         </parameter>
645       </parameters>
646     </callback>
647     <class name="ObjectModule"
648            c:type="PeasObjectModule"
649            parent="GObject.TypeModule"
650            glib:type-name="PeasObjectModule"
651            glib:get-type="peas_object_module_get_type"
652            glib:type-struct="ObjectModuleClass">
653       <implements name="GObject.TypePlugin"/>
654       <constructor name="new" c:identifier="peas_object_module_new">
655         <return-value transfer-ownership="full">
656           <type name="ObjectModule" c:type="PeasObjectModule*"/>
657         </return-value>
658         <parameters>
659           <parameter name="module_name" transfer-ownership="none">
660             <type name="utf8" c:type="gchar*"/>
661           </parameter>
662           <parameter name="path" transfer-ownership="none">
663             <type name="utf8" c:type="gchar*"/>
664           </parameter>
665           <parameter name="resident" transfer-ownership="none">
666             <type name="boolean" c:type="gboolean"/>
667           </parameter>
668         </parameters>
669       </constructor>
670       <method name="register_types"
671               c:identifier="peas_object_module_register_types">
672         <return-value transfer-ownership="none">
673           <type name="none" c:type="void"/>
674         </return-value>
675       </method>
676       <method name="create_object"
677               c:identifier="peas_object_module_create_object">
678         <return-value transfer-ownership="full">
679           <type name="GObject.Object" c:type="GObject*"/>
680         </return-value>
681         <parameters>
682           <parameter name="interface" transfer-ownership="none">
683             <type name="GType" c:type="GType"/>
684           </parameter>
685           <parameter name="n_parameters" transfer-ownership="none">
686             <type name="uint" c:type="guint"/>
687           </parameter>
688           <parameter name="parameters" transfer-ownership="none">
689             <type name="GObject.Parameter" c:type="GParameter*"/>
690           </parameter>
691         </parameters>
692       </method>
693       <method name="provides_object"
694               c:identifier="peas_object_module_provides_object">
695         <return-value transfer-ownership="none">
696           <type name="boolean" c:type="gboolean"/>
697         </return-value>
698         <parameters>
699           <parameter name="interface" transfer-ownership="none">
700             <type name="GType" c:type="GType"/>
701           </parameter>
702         </parameters>
703       </method>
704       <method name="get_path" c:identifier="peas_object_module_get_path">
705         <return-value transfer-ownership="none">
706           <type name="utf8" c:type="gchar*"/>
707         </return-value>
708       </method>
709       <method name="get_module_name"
710               c:identifier="peas_object_module_get_module_name">
711         <return-value transfer-ownership="none">
712           <type name="utf8" c:type="gchar*"/>
713         </return-value>
714       </method>
715       <method name="get_library" c:identifier="peas_object_module_get_library">
716         <return-value transfer-ownership="full">
717           <type name="GModule.Module" c:type="GModule*"/>
718         </return-value>
719       </method>
720       <method name="register_extension_factory"
721               c:identifier="peas_object_module_register_extension_factory">
722         <doc xml:whitespace="preserve">Register an implementation for an extension type through a factory
723 function @factory_func which will instantiate the extension when
724 requested.
725 This method is primarily meant to be used by native bindings (like gtkmm),
726 creatint native types which cannot be instantiated correctly using
727 g_object_new().  For other uses, you will usually prefer relying on
728 peas_object_module_register_extension_type().</doc>
729         <return-value transfer-ownership="none">
730           <type name="none" c:type="void"/>
731         </return-value>
732         <parameters>
733           <parameter name="iface_type" transfer-ownership="none">
734             <doc xml:whitespace="preserve">The #GType of the extension interface you implement.</doc>
735             <type name="GType" c:type="GType"/>
736           </parameter>
737           <parameter name="factory_func"
738                      transfer-ownership="none"
739                      scope="notified"
740                      closure="3"
741                      destroy="4">
742             <doc xml:whitespace="preserve">The #PeasFactoryFunc that will create the @iface_type instance when requested.</doc>
743             <type name="FactoryFunc" c:type="PeasFactoryFunc"/>
744           </parameter>
745           <parameter name="user_data" transfer-ownership="none">
746             <doc xml:whitespace="preserve">Data to pass to @func calls.</doc>
747             <type name="any" c:type="gpointer"/>
748           </parameter>
749           <parameter name="destroy_func"
750                      transfer-ownership="none"
751                      scope="call">
752             <doc xml:whitespace="preserve">A #GDestroyNotify for @user_data.</doc>
753             <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
754           </parameter>
755         </parameters>
756       </method>
757       <method name="register_extension_type"
758               c:identifier="peas_object_module_register_extension_type">
759         <doc xml:whitespace="preserve">Register an extension type which implements the extension interface</doc>
760         <return-value transfer-ownership="none">
761           <type name="none" c:type="void"/>
762         </return-value>
763         <parameters>
764           <parameter name="iface_type" transfer-ownership="none">
765             <doc xml:whitespace="preserve">The #GType of the extension interface you implement.</doc>
766             <type name="GType" c:type="GType"/>
767           </parameter>
768           <parameter name="extension_type" transfer-ownership="none">
769             <doc xml:whitespace="preserve">The #GType of your implementation of @iface_type.</doc>
770             <type name="GType" c:type="GType"/>
771           </parameter>
772         </parameters>
773       </method>
774       <property name="module-name"
775                 writable="1"
776                 construct-only="1"
777                 transfer-ownership="none">
778         <type name="utf8" c:type="gchararray"/>
779       </property>
780       <property name="path"
781                 writable="1"
782                 construct-only="1"
783                 transfer-ownership="none">
784         <type name="utf8" c:type="gchararray"/>
785       </property>
786       <property name="resident"
787                 writable="1"
788                 construct-only="1"
789                 transfer-ownership="none">
790         <type name="boolean" c:type="gboolean"/>
791       </property>
792       <field name="parent">
793         <type name="GObject.TypeModule" c:type="GTypeModule"/>
794       </field>
795       <field name="priv">
796         <type name="ObjectModulePrivate" c:type="PeasObjectModulePrivate*"/>
797       </field>
798     </class>
799     <record name="ObjectModuleClass"
800             c:type="PeasObjectModuleClass"
801             glib:is-gtype-struct-for="ObjectModule">
802       <field name="parent_class">
803         <type name="GObject.TypeModuleClass" c:type="GTypeModuleClass"/>
804       </field>
805     </record>
806     <record name="ObjectModulePrivate" c:type="PeasObjectModulePrivate">
807     </record>
808     <record name="PluginInfo"
809             c:type="PeasPluginInfo"
810             glib:type-name="PeasPluginInfo"
811             glib:get-type="peas_plugin_info_get_type">
812       <doc xml:whitespace="preserve">Boxed type for the information related to a plugin.</doc>
813       <method name="is_loaded" c:identifier="peas_plugin_info_is_loaded">
814         <doc xml:whitespace="preserve">Check if the plugin is loaded.</doc>
815         <return-value transfer-ownership="none">
816           <doc xml:whitespace="preserve">%TRUE if the plugin is loaded.</doc>
817           <type name="boolean" c:type="gboolean"/>
818         </return-value>
819       </method>
820       <method name="is_available" c:identifier="peas_plugin_info_is_available">
821         <doc xml:whitespace="preserve">Check if the plugin is available.  A plugin is marked as not available when
822 there is no loader available to load it, or when there has been an error
823 when trying to load it previously.</doc>
824         <return-value transfer-ownership="none">
825           <doc xml:whitespace="preserve">%TRUE if the plugin is available.</doc>
826           <type name="boolean" c:type="gboolean"/>
827         </return-value>
828       </method>
829       <method name="get_module_name"
830               c:identifier="peas_plugin_info_get_module_name">
831         <doc xml:whitespace="preserve">Gets the module name.</doc>
832         <return-value transfer-ownership="none">
833           <doc xml:whitespace="preserve">the module name.</doc>
834           <type name="utf8" c:type="gchar*"/>
835         </return-value>
836       </method>
837       <method name="get_module_dir"
838               c:identifier="peas_plugin_info_get_module_dir">
839         <doc xml:whitespace="preserve">Gets the module directory.</doc>
840         <return-value transfer-ownership="none">
841           <doc xml:whitespace="preserve">the module directory.</doc>
842           <type name="utf8" c:type="gchar*"/>
843         </return-value>
844       </method>
845       <method name="get_data_dir" c:identifier="peas_plugin_info_get_data_dir">
846         <doc xml:whitespace="preserve">Gets the data dir of the plugin.</doc>
847         <return-value transfer-ownership="none">
848           <doc xml:whitespace="preserve">the plugin's data dir.</doc>
849           <type name="utf8" c:type="gchar*"/>
850         </return-value>
851       </method>
852       <method name="get_name" c:identifier="peas_plugin_info_get_name">
853         <doc xml:whitespace="preserve">Gets the name of the plugin.</doc>
854         <return-value transfer-ownership="none">
855           <doc xml:whitespace="preserve">the plugin's name.</doc>
856           <type name="utf8" c:type="gchar*"/>
857         </return-value>
858       </method>
859       <method name="get_description"
860               c:identifier="peas_plugin_info_get_description">
861         <doc xml:whitespace="preserve">Gets the description of the plugin.</doc>
862         <return-value transfer-ownership="none">
863           <doc xml:whitespace="preserve">the plugin's description.</doc>
864           <type name="utf8" c:type="gchar*"/>
865         </return-value>
866       </method>
867       <method name="get_authors" c:identifier="peas_plugin_info_get_authors">
868         <doc xml:whitespace="preserve">Gets a NULL-terminated array of strings with the authors of the plugin.</doc>
869         <return-value transfer-ownership="full">
870           <doc xml:whitespace="preserve">the plugin's author list.</doc>
871           <array c:type="gchar**">
872             <type name="utf8"/>
873           </array>
874         </return-value>
875       </method>
876       <method name="get_website" c:identifier="peas_plugin_info_get_website">
877         <doc xml:whitespace="preserve">Gets the website of the plugin.</doc>
878         <return-value transfer-ownership="none">
879           <doc xml:whitespace="preserve">the plugin's associated website.</doc>
880           <type name="utf8" c:type="gchar*"/>
881         </return-value>
882       </method>
883       <method name="get_copyright"
884               c:identifier="peas_plugin_info_get_copyright">
885         <doc xml:whitespace="preserve">Gets the copyright of the plugin.</doc>
886         <return-value transfer-ownership="none">
887           <doc xml:whitespace="preserve">the plugin's copyright information.</doc>
888           <type name="utf8" c:type="gchar*"/>
889         </return-value>
890       </method>
891       <method name="get_version" c:identifier="peas_plugin_info_get_version">
892         <doc xml:whitespace="preserve">Gets the version of the plugin.</doc>
893         <return-value transfer-ownership="none">
894           <doc xml:whitespace="preserve">the plugin's version.</doc>
895           <type name="utf8" c:type="gchar*"/>
896         </return-value>
897       </method>
898       <method name="get_iage" c:identifier="peas_plugin_info_get_iage">
899         <doc xml:whitespace="preserve">Gets the interface age of the plugin.</doc>
900         <return-value transfer-ownership="none">
901           <doc xml:whitespace="preserve">the interface age of the plugin or %0 if not known.</doc>
902           <type name="int" c:type="gint"/>
903         </return-value>
904       </method>
905       <method name="get_keys" c:identifier="peas_plugin_info_get_keys">
906         <doc xml:whitespace="preserve">Gets a hash table of string keys present and #GValue values,
907 present in the plugin information file, but not handled
908 by libpeas. Note that libpeas only handles booleans and
909 strings, and that strings that are recognised as booleans,
910 as done by #g_key_file_get_boolean, will be of boolean type.
911 not free or destroy any data in this hashtable.</doc>
912         <return-value transfer-ownership="none">
913           <doc xml:whitespace="preserve">a #GHashTable of string keys and #GValue values. Do</doc>
914           <type name="GLib.HashTable" c:type="GHashTable*"/>
915         </return-value>
916       </method>
917       <method name="set_visible" c:identifier="peas_plugin_info_set_visible">
918         <doc xml:whitespace="preserve">Sets whether the plugin should be visible in the
919 plugin manager.</doc>
920         <return-value transfer-ownership="none">
921           <type name="none" c:type="void"/>
922         </return-value>
923         <parameters>
924           <parameter name="visible" transfer-ownership="none">
925             <doc xml:whitespace="preserve">visibility of the plugin</doc>
926             <type name="boolean" c:type="gboolean"/>
927           </parameter>
928         </parameters>
929       </method>
930       <method name="get_visible" c:identifier="peas_plugin_info_get_visible">
931         <doc xml:whitespace="preserve">Gets the visibility of the plugin.
932 if not.</doc>
933         <return-value transfer-ownership="none">
934           <doc xml:whitespace="preserve">%TRUE if the plugin should be visible, %FALSE</doc>
935           <type name="boolean" c:type="gboolean"/>
936         </return-value>
937       </method>
938     </record>
939   </namespace>
940 </repository>