<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="GObject" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Peas" version="1.0"/>
  <package name="libpeas-gtk-1.0"/>
  <c:include name="libpeas-gtk/peas-gtk.h"/>
  <namespace name="PeasGtk"
             version="1.0"
             shared-library="libpeas-1.0.so.0,libpeas-gtk-1.0.so.0"
             c:identifier-prefixes="PeasGtk"
             c:symbol-prefixes="peas_gtk">
    <interface name="Configurable"
               c:symbol-prefix="configurable"
               c:type="PeasGtkConfigurable"
               glib:type-name="PeasGtkConfigurable"
               glib:get-type="peas_gtk_configurable_get_type"
               glib:type-struct="ConfigurableInterface">
      <doc xml:space="preserve">Interface for configurable plugins.</doc>
      <virtual-method name="create_configure_widget"
                      invoker="create_configure_widget">
        <doc xml:space="preserve">Creates the configure widget for the plugin. The returned widget
should allow configuring all the relevant aspects of the plugin, and should
allow instant-apply, as promoted by the Gnome Human Interface Guidelines.

#PeasGtkPluginManager will embed the returned widget into a dialog box,
but you shouldn't take this behaviour for granted as other implementations
of a plugin manager UI might do otherwise.

This method should always return a valid #GtkWidget instance, never %NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GtkWidget used for configuration.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="configurable" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkConfigurable</doc>
            <type name="Configurable" c:type="PeasGtkConfigurable*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="create_configure_widget"
              c:identifier="peas_gtk_configurable_create_configure_widget">
        <doc xml:space="preserve">Creates the configure widget for the plugin. The returned widget
should allow configuring all the relevant aspects of the plugin, and should
allow instant-apply, as promoted by the Gnome Human Interface Guidelines.

#PeasGtkPluginManager will embed the returned widget into a dialog box,
but you shouldn't take this behaviour for granted as other implementations
of a plugin manager UI might do otherwise.

This method should always return a valid #GtkWidget instance, never %NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GtkWidget used for configuration.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="configurable" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkConfigurable</doc>
            <type name="Configurable" c:type="PeasGtkConfigurable*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="ConfigurableInterface"
            c:type="PeasGtkConfigurableInterface"
            glib:is-gtype-struct-for="Configurable">
      <doc xml:space="preserve">Provides an interface for configurable plugins.</doc>
      <field name="g_iface">
        <doc xml:space="preserve">The parent interface.</doc>
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="create_configure_widget">
        <callback name="create_configure_widget">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">A #GtkWidget used for configuration.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="configurable" transfer-ownership="none">
              <doc xml:space="preserve">A #PeasGtkConfigurable</doc>
              <type name="Configurable" c:type="PeasGtkConfigurable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="PluginManager"
           c:symbol-prefix="plugin_manager"
           c:type="PeasGtkPluginManager"
           parent="Gtk.Box"
           glib:type-name="PeasGtkPluginManager"
           glib:get-type="peas_gtk_plugin_manager_get_type"
           glib:type-struct="PluginManagerClass">
      <doc xml:space="preserve">The #PeasGtkPluginManager structure contains only private data
and should only be accessed using the provided API.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="peas_gtk_plugin_manager_new">
        <doc xml:space="preserve">Creates a new plugin manager for the given #PeasEngine.

If @engine is %NULL, then the default engine will be used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the new #PeasGtkPluginManager.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="engine"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #PeasEngine, or %NULL.</doc>
            <type name="Peas.Engine" c:type="PeasEngine*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_view" c:identifier="peas_gtk_plugin_manager_get_view">
        <doc xml:space="preserve">Returns the #PeasGtkPluginManagerView of @pm.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the #GtkTreeView of @pm.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pm" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkPluginManager.</doc>
            <type name="PluginManager" c:type="PeasGtkPluginManager*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="engine"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #PeasEngine this manager is attached to.</doc>
        <type name="Peas.Engine"/>
      </property>
      <property name="view"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The #PeasGtkPluginManagerView shown in the #PeasGtkPluginManager.</doc>
        <type name="PluginManagerView"/>
      </property>
      <field name="box">
        <type name="Gtk.Box" c:type="GtkBox"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="PluginManagerPrivate"
              c:type="PeasGtkPluginManagerPrivate*"/>
      </field>
    </class>
    <record name="PluginManagerClass"
            c:type="PeasGtkPluginManagerClass"
            glib:is-gtype-struct-for="PluginManager">
      <doc xml:space="preserve">The class structure for #PeasGtkPluginManager.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">The parent class.</doc>
        <type name="Gtk.BoxClass" c:type="GtkBoxClass"/>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PluginManagerPrivate"
            c:type="PeasGtkPluginManagerPrivate"
            disguised="1">
    </record>
    <class name="PluginManagerView"
           c:symbol-prefix="plugin_manager_view"
           c:type="PeasGtkPluginManagerView"
           parent="Gtk.TreeView"
           glib:type-name="PeasGtkPluginManagerView"
           glib:get-type="peas_gtk_plugin_manager_view_get_type"
           glib:type-struct="PluginManagerViewClass">
      <doc xml:space="preserve">The #PeasGtkPluginManagerView structure contains only private data
and should only be accessed using the provided API.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="peas_gtk_plugin_manager_view_new">
        <doc xml:space="preserve">Creates a new plugin manager view for the given #PeasEngine.

If @engine is %NULL, then the default engine will be used.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the new #PeasGtkPluginManagerView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="engine"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">A #PeasEngine, or %NULL.</doc>
            <type name="Peas.Engine" c:type="PeasEngine*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="populate_popup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <type name="PluginManagerView" c:type="PeasGtkPluginManagerView*"/>
          </instance-parameter>
          <parameter name="menu" transfer-ownership="none">
            <type name="Gtk.Menu" c:type="GtkMenu*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_selected_plugin"
              c:identifier="peas_gtk_plugin_manager_view_get_selected_plugin">
        <doc xml:space="preserve">Returns the currently selected plugin, or %NULL if a plugin is not selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selected plugin.</doc>
          <type name="Peas.PluginInfo" c:type="PeasPluginInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkPluginManagerView.</doc>
            <type name="PluginManagerView" c:type="PeasGtkPluginManagerView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_show_builtin"
              c:identifier="peas_gtk_plugin_manager_view_get_show_builtin"
              deprecated="1"
              deprecated-version="1.2">
        <doc xml:space="preserve">Returns if builtin plugins should be shown.</doc>
        <doc-deprecated xml:space="preserve">Use hidden plugins instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">if builtin plugins should be shown.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkPluginManagerView.</doc>
            <type name="PluginManagerView" c:type="PeasGtkPluginManagerView*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_selected_plugin"
              c:identifier="peas_gtk_plugin_manager_view_set_selected_plugin">
        <doc xml:space="preserve">Selects the given plugin.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkPluginManagerView.</doc>
            <type name="PluginManagerView" c:type="PeasGtkPluginManagerView*"/>
          </instance-parameter>
          <parameter name="info" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasPluginInfo.</doc>
            <type name="Peas.PluginInfo" c:type="PeasPluginInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_show_builtin"
              c:identifier="peas_gtk_plugin_manager_view_set_show_builtin"
              deprecated="1"
              deprecated-version="1.2">
        <doc xml:space="preserve">Sets if builtin plugins should be shown.</doc>
        <doc-deprecated xml:space="preserve">Use hidden plugins instead.</doc-deprecated>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="view" transfer-ownership="none">
            <doc xml:space="preserve">A #PeasGtkPluginManagerView.</doc>
            <type name="PluginManagerView" c:type="PeasGtkPluginManagerView*"/>
          </instance-parameter>
          <parameter name="show_builtin" transfer-ownership="none">
            <doc xml:space="preserve">If builtin plugins should be shown.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="engine"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Peas.Engine"/>
      </property>
      <property name="show-builtin"
                deprecated="1"
                deprecated-version="1.2"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If builtin plugins should be shown.</doc>
        <doc-deprecated xml:space="preserve">Use hidden plugins instead.</doc-deprecated>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Gtk.TreeView" c:type="GtkTreeView"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="PluginManagerViewPrivate"
              c:type="PeasGtkPluginManagerViewPrivate*"/>
      </field>
      <glib:signal name="populate-popup" when="last">
        <doc xml:space="preserve">The ::populate-popup signal is emitted before showing the context
menu of the view. If you need to add items to the context menu,
connect to this signal and add your menuitems to the @menu.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve">A #GtkMenu.</doc>
            <type name="Gtk.Menu"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="PluginManagerViewClass"
            c:type="PeasGtkPluginManagerViewClass"
            glib:is-gtype-struct-for="PluginManagerView">
      <doc xml:space="preserve">The class structure for #PeasGtkPluginManagerView.</doc>
      <field name="parent_class">
        <doc xml:space="preserve">The parent class.</doc>
        <type name="Gtk.TreeViewClass" c:type="GtkTreeViewClass"/>
      </field>
      <field name="populate_popup">
        <callback name="populate_popup">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="view" transfer-ownership="none">
              <type name="PluginManagerView"
                    c:type="PeasGtkPluginManagerView*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <type name="Gtk.Menu" c:type="GtkMenu*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="8">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="PluginManagerViewPrivate"
            c:type="PeasGtkPluginManagerViewPrivate"
            disguised="1">
    </record>
  </namespace>
</repository>
