libpurple/plugins.h

branch
soc.2013.gobjectification.plugins
changeset 36460
8c939ea45957
parent 36458
a9cccad073e9
child 36461
e769bd450874
--- a/libpurple/plugins.h	Wed Aug 07 03:47:13 2013 +0530
+++ b/libpurple/plugins.h	Wed Aug 07 04:35:15 2013 +0530
@@ -253,6 +253,35 @@
 void purple_plugin_disable(PurplePlugin *plugin);
 
 /**
+ * Registers a new dynamic type.
+ *
+ * @param plugin  The plugin that is registering the type.
+ * @param parent  Type from which this type will be derived.
+ * @param name    Name of the new type.
+ * @param info    Information to initialize and destroy a type's classes and
+ *                instances.
+ * @param flags   Bitwise combination of values that determines the nature
+ *                (e.g. abstract or not) of the type.
+ *
+ * @return The new GType, or @c G_TYPE_INVALID if registration failed.
+ */
+GType purple_plugin_register_type(PurplePlugin *plugin, GType parent,
+                                  const gchar *name, const GTypeInfo *info,
+                                  GTypeFlags flags);
+
+/**
+ * Adds a dynamic interface type to an instantiable type.
+ *
+ * @param plugin          The plugin that is adding the interface type.
+ * @param instance_type   The GType of the instantiable type.
+ * @param interface_type  The GType of the interface type.
+ * @param interface_info  Information used to manage the interface type.
+ */
+void purple_plugin_add_interface(PurplePlugin *plugin, GType instance_type,
+                                 GType interface_type,
+                                 const GInterfaceInfo *interface_info);
+
+/**
  * Adds a new action to a plugin.
  *
  * @param plugin   The plugin to add the action to.

mercurial