<?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="Atk" version="1.0"/>
  <include name="GIRepository" version="2.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <include name="Peas" version="1.0"/>
  <include name="cairo" 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-gtk-1.0.so.0.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">
      <virtual-method name="create_configure_widget"
                      invoker="create_configure_widget">
        <doc xml:whitespace="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:whitespace="preserve">A #GtkWidget used for configuration.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </virtual-method>
      <method name="create_configure_widget"
              c:identifier="peas_gtk_configurable_create_configure_widget">
        <doc xml:whitespace="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:whitespace="preserve">A #GtkWidget used for configuration.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </method>
    </interface>
    <record name="ConfigurableInterface"
            c:type="PeasGtkConfigurableInterface"
            glib:is-gtype-struct-for="Configurable">
      <field name="g_iface">
        <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:whitespace="preserve">A #GtkWidget used for configuration.</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="configurable" transfer-ownership="none">
              <type name="Configurable" c:type="PeasGtkConfigurable*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="PluginManager"
           c:symbol-prefix="plugin_manager"
           c:type="PeasGtkPluginManager"
           parent="Gtk.VBox"
           glib:type-name="PeasGtkPluginManager"
           glib:get-type="peas_gtk_plugin_manager_get_type"
           glib:type-struct="PluginManagerClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="peas_gtk_plugin_manager_new">
        <doc xml:whitespace="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:whitespace="preserve">the new #PeasGtkPluginManager.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="engine" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="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:whitespace="preserve">Returns the #PeasGtkPluginManagerView of @pm.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the #GtkTreeView of @pm.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
      </method>
      <property name="engine"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="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:whitespace="preserve">The #PeasGtkPluginManagerView shown in the #PeasGtkPluginManager.</doc>
        <type name="PluginManagerView"/>
      </property>
      <field name="vbox">
        <type name="Gtk.VBox" c:type="GtkVBox"/>
      </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">
      <field name="parent_class">
        <type name="Gtk.VBoxClass" c:type="GtkVBoxClass"/>
      </field>
      <field name="padding">
        <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">
      <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:whitespace="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:whitespace="preserve">the new #PeasGtkPluginManagerView.</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="engine" transfer-ownership="none" allow-none="1">
            <doc xml:whitespace="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>
          <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:whitespace="preserve">Returns the currently selected plugin, or %NULL if a plugin is not selected.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the selected plugin.</doc>
          <type name="Peas.PluginInfo" c:type="PeasPluginInfo*"/>
        </return-value>
      </method>
      <method name="get_show_builtin"
              c:identifier="peas_gtk_plugin_manager_view_get_show_builtin">
        <doc xml:whitespace="preserve">Returns if builtin plugins should be shown.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">if builtin plugins should be shown.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_selected_plugin"
              c:identifier="peas_gtk_plugin_manager_view_set_selected_plugin">
        <doc xml:whitespace="preserve">Selects the given plugin.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="info" transfer-ownership="none">
            <doc xml:whitespace="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">
        <doc xml:whitespace="preserve">Sets if builtin plugins should be shown.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="show_builtin" transfer-ownership="none">
            <doc xml:whitespace="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" writable="1" transfer-ownership="none">
        <doc xml:whitespace="preserve">If builtin plugins should be shown.</doc>
        <type name="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">
        <doc xml:whitespace="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"/>
        </return-value>
        <parameters>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:whitespace="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">
      <field name="parent_class">
        <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">
        <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>
