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"
15 shared-library="libpeas-1.0.so.0"
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"/>
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*"/>
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"/>
40 <parameter name="object" transfer-ownership="none">
41 <doc xml:whitespace="preserve">A #GObject.</doc>
42 <type name="GObject.Object" c:type="GObject*"/>
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"/>
53 <parameter name="object" transfer-ownership="none">
54 <doc xml:whitespace="preserve">A #GObject.</doc>
55 <type name="GObject.Object" c:type="GObject*"/>
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"/>
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*"/>
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"/>
77 <parameter name="object" transfer-ownership="none">
78 <doc xml:whitespace="preserve">A #GObject.</doc>
79 <type name="GObject.Object" c:type="GObject*"/>
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"/>
90 <parameter name="object" transfer-ownership="none">
91 <doc xml:whitespace="preserve">A #GObject.</doc>
92 <type name="GObject.Object" c:type="GObject*"/>
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"/>
103 <field name="activate">
104 <callback name="activate" c:type="activate">
105 <return-value transfer-ownership="none">
106 <type name="none" c:type="void"/>
109 <parameter name="activatable" transfer-ownership="none">
110 <type name="Activatable" c:type="PeasActivatable*"/>
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*"/>
119 <field name="deactivate">
120 <callback name="deactivate" c:type="deactivate">
121 <return-value transfer-ownership="none">
122 <type name="none" c:type="void"/>
125 <parameter name="activatable" transfer-ownership="none">
126 <type name="Activatable" c:type="PeasActivatable*"/>
128 <parameter name="object" transfer-ownership="none">
129 <doc xml:whitespace="preserve">A #GObject.</doc>
130 <type name="GObject.Object" c:type="GObject*"/>
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"/>
141 <parameter name="activatable" transfer-ownership="none">
142 <type name="Activatable" c:type="PeasActivatable*"/>
144 <parameter name="object" transfer-ownership="none">
145 <doc xml:whitespace="preserve">A #GObject.</doc>
146 <type name="GObject.Object" c:type="GObject*"/>
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*"/>
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*"/>
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*"/>
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**">
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
190 peas_engine_disable_loader (engine, "python");
192 <return-value transfer-ownership="none">
193 <type name="none" c:type="void"/>
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*"/>
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"/>
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
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"/>
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**">
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"/>
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**">
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*"/>
258 <parameter name="plugin_name" transfer-ownership="none">
259 <doc xml:whitespace="preserve">A plugin name.</doc>
260 <type name="utf8" c:type="gchar*"/>
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"/>
271 <parameter name="info" transfer-ownership="none">
272 <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
273 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
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"/>
284 <parameter name="info" transfer-ownership="none">
285 <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
286 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
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
296 <return-value transfer-ownership="none">
297 <type name="none" c:type="void"/>
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"/>
306 <parameter name="info" transfer-ownership="none">
307 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
309 <parameter name="extension_type" transfer-ownership="none">
310 <type name="GType" c:type="GType"/>
314 <method name="get_extension" c:identifier="peas_engine_get_extension">
315 <return-value transfer-ownership="full">
316 <type name="Extension" c:type="PeasExtension*"/>
319 <parameter name="info" transfer-ownership="none">
320 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
322 <parameter name="extension_type" transfer-ownership="none">
323 <type name="GType" c:type="GType"/>
327 <property name="app-name"
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"/>
338 <property name="base-module-dir"
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"/>
348 <property name="search-paths"
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:
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),
371 EXAMPLE_PREFIX "/lib/example/plugins/",
372 EXAMPLE_PREFIX "/share/example/plugins/",
376 <type name="GObject.Strv" c:type="GStrv"/>
378 <field name="parent">
379 <type name="GObject.Object" c:type="GObject"/>
382 <type name="EnginePrivate" c:type="PeasEnginePrivate*"/>
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"/>
390 <parameter name="info" transfer-ownership="none">
391 <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
392 <type name="PluginInfo" c:type="PeasPluginInfo"/>
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"/>
402 <parameter name="info" transfer-ownership="none">
403 <doc xml:whitespace="preserve">A #PeasPluginInfo.</doc>
404 <type name="PluginInfo" c:type="PeasPluginInfo"/>
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"/>
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"/>
421 <parameter name="engine" transfer-ownership="none">
422 <type name="Engine" c:type="PeasEngine*"/>
424 <parameter name="info" transfer-ownership="none">
425 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
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"/>
436 <parameter name="engine" transfer-ownership="none">
437 <type name="Engine" c:type="PeasEngine*"/>
439 <parameter name="info" transfer-ownership="none">
440 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
446 <record name="EnginePrivate" c:type="PeasEnginePrivate">
448 <class name="Extension"
449 c:type="PeasExtension"
450 parent="GObject.Object"
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>
457 c:identifier="peas_extension_call"
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"/>
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*"/>
469 <parameter transfer-ownership="none">
475 <field name="parent">
476 <type name="GObject.Object" c:type="GObject"/>
479 <class name="ExtensionBase"
480 c:type="PeasExtensionBase"
481 parent="GObject.Object"
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*"/>
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
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*"/>
505 <property name="data-dir" transfer-ownership="none">
506 <type name="utf8" c:type="gchararray"/>
508 <property name="plugin-info"
511 transfer-ownership="none">
512 <type name="PluginInfo" c:type="PeasPluginInfo"/>
514 <field name="parent">
515 <type name="GObject.Object" c:type="GObject"/>
517 <field name="plugin_info">
518 <type name="PluginInfo" c:type="PeasPluginInfo*"/>
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"/>
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"/>
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*"/>
548 <parameter name="engine" transfer-ownership="none">
549 <doc xml:whitespace="preserve">A #PeasEngine.</doc>
550 <type name="Engine" c:type="PeasEngine*"/>
552 <parameter name="exten_type" transfer-ownership="none">
553 <doc xml:whitespace="preserve">the extension #GType.</doc>
554 <type name="GType" c:type="GType"/>
559 c:identifier="peas_extension_set_call"
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"/>
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*"/>
571 <parameter transfer-ownership="none">
577 <property name="engine"
580 transfer-ownership="none">
581 <type name="Engine" c:type="PeasEngine"/>
583 <property name="extension-type"
586 transfer-ownership="none">
587 <type name="GType" c:type="GType"/>
589 <field name="parent">
590 <type name="GObject.Object" c:type="GObject"/>
593 <type name="ExtensionSetPrivate" c:type="PeasExtensionSetPrivate*"/>
595 <glib:signal name="extension-added">
596 <return-value transfer-ownership="full">
597 <type name="none" c:type="void"/>
600 <parameter name="object" transfer-ownership="none">
601 <type name="PluginInfo" c:type="PeasPluginInfo"/>
603 <parameter name="p0" transfer-ownership="none">
604 <type name="Extension" c:type="PeasExtension"/>
608 <glib:signal name="extension-removed">
609 <return-value transfer-ownership="full">
610 <type name="none" c:type="void"/>
613 <parameter name="object" transfer-ownership="none">
614 <type name="PluginInfo" c:type="PeasPluginInfo"/>
616 <parameter name="p0" transfer-ownership="none">
617 <type name="Extension" c:type="PeasExtension"/>
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"/>
629 <record name="ExtensionSetPrivate" c:type="PeasExtensionSetPrivate">
631 <callback name="FactoryFunc" c:type="PeasFactoryFunc">
632 <return-value transfer-ownership="full">
633 <type name="GObject.Object" c:type="GObject*"/>
636 <parameter name="n_parameters" transfer-ownership="none">
637 <type name="uint" c:type="guint"/>
639 <parameter name="parameters" transfer-ownership="none">
640 <type name="GObject.Parameter" c:type="GParameter*"/>
642 <parameter name="user_data" transfer-ownership="none" closure="2">
643 <type name="any" c:type="gpointer"/>
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*"/>
659 <parameter name="module_name" transfer-ownership="none">
660 <type name="utf8" c:type="gchar*"/>
662 <parameter name="path" transfer-ownership="none">
663 <type name="utf8" c:type="gchar*"/>
665 <parameter name="resident" transfer-ownership="none">
666 <type name="boolean" c:type="gboolean"/>
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"/>
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*"/>
682 <parameter name="interface" transfer-ownership="none">
683 <type name="GType" c:type="GType"/>
685 <parameter name="n_parameters" transfer-ownership="none">
686 <type name="uint" c:type="guint"/>
688 <parameter name="parameters" transfer-ownership="none">
689 <type name="GObject.Parameter" c:type="GParameter*"/>
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"/>
699 <parameter name="interface" transfer-ownership="none">
700 <type name="GType" c:type="GType"/>
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*"/>
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*"/>
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*"/>
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
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"/>
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"/>
737 <parameter name="factory_func"
738 transfer-ownership="none"
742 <doc xml:whitespace="preserve">The #PeasFactoryFunc that will create the @iface_type instance when requested.</doc>
743 <type name="FactoryFunc" c:type="PeasFactoryFunc"/>
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"/>
749 <parameter name="destroy_func"
750 transfer-ownership="none"
752 <doc xml:whitespace="preserve">A #GDestroyNotify for @user_data.</doc>
753 <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
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"/>
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"/>
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"/>
774 <property name="module-name"
777 transfer-ownership="none">
778 <type name="utf8" c:type="gchararray"/>
780 <property name="path"
783 transfer-ownership="none">
784 <type name="utf8" c:type="gchararray"/>
786 <property name="resident"
789 transfer-ownership="none">
790 <type name="boolean" c:type="gboolean"/>
792 <field name="parent">
793 <type name="GObject.TypeModule" c:type="GTypeModule"/>
796 <type name="ObjectModulePrivate" c:type="PeasObjectModulePrivate*"/>
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"/>
806 <record name="ObjectModulePrivate" c:type="PeasObjectModulePrivate">
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"/>
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"/>
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*"/>
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*"/>
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*"/>
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*"/>
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*"/>
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**">
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*"/>
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*"/>
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*"/>
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"/>
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*"/>
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"/>
924 <parameter name="visible" transfer-ownership="none">
925 <doc xml:whitespace="preserve">visibility of the plugin</doc>
926 <type name="boolean" c:type="gboolean"/>
930 <method name="get_visible" c:identifier="peas_plugin_info_get_visible">
931 <doc xml:whitespace="preserve">Gets the visibility of the plugin.
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"/>