<?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="GLib" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gck" version="1"/>
  <include name="Gcr" version="3"/>
  <include name="Gtk" version="3.0"/>
  <package name="gcr-ui-3"/>
  <c:include name="ui/gcr-ui.h"/>
  <namespace name="GcrUi"
             version="3"
             shared-library="libgcr-base-3.so.2.0,libgcr-ui-3.so.2.0"
             c:identifier-prefixes="Gcr"
             c:symbol-prefixes="gcr">
    <class name="CertificateRenderer"
           c:symbol-prefix="certificate_renderer"
           c:type="GcrCertificateRenderer"
           parent="GObject.Object"
           glib:type-name="GcrCertificateRenderer"
           glib:get-type="gcr_certificate_renderer_get_type"
           glib:type-struct="CertificateRendererClass">
      <doc xml:space="preserve">An implementation of #GcrRenderer which renders certificates.</doc>
      <implements name="Gcr.Certificate"/>
      <implements name="Gcr.ComparableIface"/>
      <implements name="Renderer"/>
      <constructor name="new" c:identifier="gcr_certificate_renderer_new">
        <doc xml:space="preserve">Create a new certificate renderer to display the certificate.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GcrCertificateRenderer, which should be released with g_object_unref()</doc>
          <type name="CertificateRenderer" c:type="GcrCertificateRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="certificate" transfer-ownership="none">
            <doc xml:space="preserve">The certificate to display</doc>
            <type name="Gcr.Certificate" c:type="GcrCertificate*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_for_attributes"
                   c:identifier="gcr_certificate_renderer_new_for_attributes">
        <doc xml:space="preserve">Create a new certificate renderer to display the label and attributes. One
of the attributes should be a CKA_VALUE type attribute containing a DER
encoded certificate.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GcrCertificateRenderer, which should be released with g_object_unref()</doc>
          <type name="CertificateRenderer" c:type="GcrCertificateRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the label to display</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none">
            <doc xml:space="preserve">The attributes to display</doc>
            <type name="gpointer" c:type="_GckAttributes*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_certificate"
              c:identifier="gcr_certificate_renderer_get_certificate">
        <doc xml:space="preserve">Get the certificate displayed in the renderer. If no certificate was
explicitly set, then the renderer will return itself since it acts as
a valid certificate.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The certificate, owned by the renderer.</doc>
          <type name="Gcr.Certificate" c:type="GcrCertificate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="CertificateRenderer" c:type="GcrCertificateRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_certificate"
              c:identifier="gcr_certificate_renderer_set_certificate">
        <doc xml:space="preserve">Set a certificate to display in the renderer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="CertificateRenderer" c:type="GcrCertificateRenderer*"/>
          </instance-parameter>
          <parameter name="certificate"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">the certificate to display</doc>
            <type name="Gcr.Certificate" c:type="GcrCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attributes" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The certificate attributes to display. One of the attributes must be
a CKA_VALUE type attribute which contains a DER encoded certificate.</doc>
        <type name="Gck.Attributes"/>
      </property>
      <property name="certificate" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The certificate to display. May be %NULL.</doc>
        <type name="Gcr.Certificate"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The label to display.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="CertificateRendererPrivate"
              c:type="GcrCertificateRendererPrivate*"/>
      </field>
    </class>
    <record name="CertificateRendererClass"
            c:type="GcrCertificateRendererClass"
            glib:is-gtype-struct-for="CertificateRenderer">
      <doc xml:space="preserve">The class for #GcrCertificateRenderer.</doc>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="CertificateRendererPrivate"
            c:type="GcrCertificateRendererPrivate"
            disguised="1">
    </record>
    <class name="CertificateWidget"
           c:symbol-prefix="certificate_widget"
           c:type="GcrCertificateWidget"
           parent="Gtk.Bin"
           glib:type-name="GcrCertificateWidget"
           glib:get-type="gcr_certificate_widget_get_type"
           glib:type-struct="CertificateWidgetClass">
      <doc xml:space="preserve">A widget that displays a certificate.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gcr_certificate_widget_new">
        <doc xml:space="preserve">Create a new certificate widget which displays a given certificate.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GcrCertificateWidget, which should be freed with g_object_unref()</doc>
          <type name="CertificateWidget" c:type="GcrCertificateWidget*"/>
        </return-value>
        <parameters>
          <parameter name="certificate"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">certificate to display, or %NULL</doc>
            <type name="Gcr.Certificate" c:type="GcrCertificate*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_certificate"
              c:identifier="gcr_certificate_widget_get_certificate">
        <doc xml:space="preserve">Get the certificate displayed in the widget.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the certificate</doc>
          <type name="Gcr.Certificate" c:type="GcrCertificate*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The certificate widget</doc>
            <type name="CertificateWidget" c:type="GcrCertificateWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_certificate"
              c:identifier="gcr_certificate_widget_set_certificate">
        <doc xml:space="preserve">Set the certificate displayed in the widget</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The certificate widget</doc>
            <type name="CertificateWidget" c:type="GcrCertificateWidget*"/>
          </instance-parameter>
          <parameter name="certificate"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">the certificate to display</doc>
            <type name="Gcr.Certificate" c:type="GcrCertificate*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attributes" writable="1" transfer-ownership="none">
        <type name="Gck.Attributes"/>
      </property>
      <property name="certificate" writable="1" transfer-ownership="none">
        <type name="Gcr.Certificate"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="Gtk.Bin" c:type="GtkBin"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="CertificateWidgetPrivate"
              c:type="GcrCertificateWidgetPrivate*"/>
      </field>
    </class>
    <record name="CertificateWidgetClass"
            c:type="GcrCertificateWidgetClass"
            glib:is-gtype-struct-for="CertificateWidget">
      <doc xml:space="preserve">The class for #GcrCertificateWidget</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="Gtk.BinClass" c:type="GtkBinClass"/>
      </field>
    </record>
    <record name="CertificateWidgetPrivate"
            c:type="GcrCertificateWidgetPrivate"
            disguised="1">
    </record>
    <class name="CollectionModel"
           c:symbol-prefix="collection_model"
           c:type="GcrCollectionModel"
           parent="GObject.Object"
           glib:type-name="GcrCollectionModel"
           glib:get-type="gcr_collection_model_get_type"
           glib:type-struct="CollectionModelClass">
      <doc xml:space="preserve">A #GtkTreeModel which contains a row for each object in a #GcrCollection.</doc>
      <implements name="Gtk.TreeModel"/>
      <implements name="Gtk.TreeSortable"/>
      <constructor name="new"
                   c:identifier="gcr_collection_model_new"
                   introspectable="0">
        <doc xml:space="preserve">Create a new #GcrCollectionModel. The variable argument list should contain
pairs of property names, and #GType values. The variable argument list should
be terminated with %NULL.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated model, which should be released with g_object_unref().</doc>
          <type name="CollectionModel" c:type="GcrCollectionModel*"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">the collection to represent</doc>
            <type name="Gcr.Collection" c:type="GcrCollection*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">whether list or tree mode</doc>
            <type name="CollectionModelMode" c:type="GcrCollectionModelMode"/>
          </parameter>
          <parameter name="arg2" transfer-ownership="none">
            <varargs>
            </varargs>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_full"
                   c:identifier="gcr_collection_model_new_full"
                   introspectable="0">
        <doc xml:space="preserve">Create a new #GcrCollectionModel.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated model, which should be released with g_object_unref()</doc>
          <type name="CollectionModel" c:type="GcrCollectionModel*"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">the collection to represent</doc>
            <type name="Gcr.Collection" c:type="GcrCollection*"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve">whether list or tree mode</doc>
            <type name="CollectionModelMode" c:type="GcrCollectionModelMode"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve">the columns the model should contain</doc>
            <type c:type="const GcrColumn*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="change_selected"
              c:identifier="gcr_collection_model_change_selected">
        <doc xml:space="preserve">Set whether a given row is toggled selected or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">The row</doc>
            <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
          <parameter name="selected" transfer-ownership="none">
            <doc xml:space="preserve">Whether the row should be selected or not.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="column_for_selected"
              c:identifier="gcr_collection_model_column_for_selected">
        <doc xml:space="preserve">Get the column identifier for the column that contains the values
of the selected state.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The column identifier.</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_collection"
              c:identifier="gcr_collection_model_get_collection">
        <doc xml:space="preserve">Get the collection which this model represents</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the collection, owned by the model</doc>
          <type name="Gcr.Collection" c:type="GcrCollection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a collection model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected_objects"
              c:identifier="gcr_collection_model_get_selected_objects">
        <doc xml:space="preserve">Get a list of checked/selected objects.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">a list of selected objects, which should be freed with g_list_free()</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GObject.Object"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the collection model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_selected"
              c:identifier="gcr_collection_model_is_selected">
        <doc xml:space="preserve">Check whether a given row has been toggled as selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether the row has been selected.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">The row</doc>
            <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="iter_for_object"
              c:identifier="gcr_collection_model_iter_for_object">
        <doc xml:space="preserve">Set @iter to the row for the given object. If the object is not in this
model, then %FALSE will be returned.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">%TRUE if the object was present.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="object" transfer-ownership="none">
            <doc xml:space="preserve">The object</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">The row for the object</doc>
            <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="object_for_iter"
              c:identifier="gcr_collection_model_object_for_iter">
        <doc xml:space="preserve">Get the object that is represented by the given row in the model.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The object, owned by the model.</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">The row</doc>
            <type name="Gtk.TreeIter" c:type="const GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_collection"
              c:identifier="gcr_collection_model_set_collection">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="collection" transfer-ownership="none">
            <type name="Gcr.Collection" c:type="GcrCollection*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_columns"
              c:identifier="gcr_collection_model_set_columns"
              introspectable="0">
        <doc xml:space="preserve">Set the columns that the model should contain. @columns is an array of
#GcrColumn structures, with the last one containing %NULL for all values.

This function can only be called once, and only if the model was not created
without a set of columns. This function cannot be called after the model
has been added to a view.

The columns are accessed as static data. They should continue to remain
in memory for longer than the GcrCollectionModel object.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of columns</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve">The columns the model should contain</doc>
            <type c:type="const GcrColumn*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_selected_objects"
              c:identifier="gcr_collection_model_set_selected_objects">
        <doc xml:space="preserve">Set the checked/selected objects.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">the collection model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="selected" transfer-ownership="none">
            <doc xml:space="preserve">a list of objects to select</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="GObject.Object"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="toggle_selected"
              c:identifier="gcr_collection_model_toggle_selected">
        <doc xml:space="preserve">Toggle the selected state of a given row.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="iter" transfer-ownership="none">
            <doc xml:space="preserve">The row</doc>
            <type name="Gtk.TreeIter" c:type="GtkTreeIter*"/>
          </parameter>
        </parameters>
      </method>
      <property name="collection" writable="1" transfer-ownership="none">
        <type name="Gcr.Collection"/>
      </property>
      <property name="columns"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <property name="mode"
                introspectable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="CollectionModelPrivate"
              c:type="GcrCollectionModelPrivate*"/>
      </field>
    </class>
    <record name="CollectionModelClass"
            c:type="GcrCollectionModelClass"
            glib:is-gtype-struct-for="CollectionModel">
      <doc xml:space="preserve">The class for #GcrCollectionModel.</doc>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <enumeration name="CollectionModelMode" c:type="GcrCollectionModelMode">
      <doc xml:space="preserve">If set GcrCollectionModel is created with a mode of %GCR_COLLECTION_MODEL_TREE,
then any included objects that are themselves a #GcrCollection, will have all child
objects include as child rows in a tree form.</doc>
      <member name="list" value="0" c:identifier="GCR_COLLECTION_MODEL_LIST">
        <doc xml:space="preserve">only objects in the top collection, no child objects</doc>
      </member>
      <member name="tree" value="1" c:identifier="GCR_COLLECTION_MODEL_TREE">
        <doc xml:space="preserve">show objects in the collection, and child objects in a tree form</doc>
      </member>
    </enumeration>
    <record name="CollectionModelPrivate"
            c:type="GcrCollectionModelPrivate"
            disguised="1">
    </record>
    <class name="ComboSelector"
           c:symbol-prefix="combo_selector"
           c:type="GcrComboSelector"
           parent="Gtk.ComboBox"
           glib:type-name="GcrComboSelector"
           glib:get-type="gcr_combo_selector_get_type"
           glib:type-struct="ComboSelectorClass">
      <doc xml:space="preserve">A combo selector widget.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.CellEditable"/>
      <implements name="Gtk.CellLayout"/>
      <constructor name="new" c:identifier="gcr_combo_selector_new">
        <doc xml:space="preserve">Create a new #GcrTreeSelector.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A newly allocated selector, which should be released with g_object_unref().</doc>
          <type name="ComboSelector" c:type="GcrComboSelector*"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">The collection that contains the objects to display</doc>
            <type name="Gcr.Collection" c:type="GcrCollection*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_collection"
              c:identifier="gcr_combo_selector_get_collection">
        <doc xml:space="preserve">Get the collection that this selector is displaying objects from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The collection, owned by the selector.</doc>
          <type name="Gcr.Collection" c:type="GcrCollection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="ComboSelector" c:type="GcrComboSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="gcr_combo_selector_get_selected">
        <doc xml:space="preserve">Get the selected object in the selector, or %NULL if nothing selected.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the selected object, owned by the selector, or %NULL</doc>
          <type name="GObject.Object" c:type="GObject*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="ComboSelector" c:type="GcrComboSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="gcr_combo_selector_set_selected">
        <doc xml:space="preserve">Set the currently selected object in the selector, or clear the selection
if selected is set to %NULL.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="ComboSelector" c:type="GcrComboSelector*"/>
          </instance-parameter>
          <parameter name="selected" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the object to select or %NULL</doc>
            <type name="GObject.Object" c:type="GObject*"/>
          </parameter>
        </parameters>
      </method>
      <property name="collection"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The collection which contains the objects to display in the selector.</doc>
        <type name="Gcr.Collection"/>
      </property>
      <field name="parent">
        <type name="Gtk.ComboBox" c:type="GtkComboBox"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="ComboSelectorPrivate" c:type="GcrComboSelectorPrivate*"/>
      </field>
    </class>
    <record name="ComboSelectorClass"
            c:type="GcrComboSelectorClass"
            glib:is-gtype-struct-for="ComboSelector">
      <doc xml:space="preserve">The class for #GcrComboSelector.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="Gtk.ComboBoxClass" c:type="GtkComboBoxClass"/>
      </field>
    </record>
    <record name="ComboSelectorPrivate"
            c:type="GcrComboSelectorPrivate"
            disguised="1">
    </record>
    <class name="FailureRenderer"
           c:symbol-prefix="failure_renderer"
           c:type="GcrFailureRenderer"
           parent="GObject.Object"
           glib:type-name="GcrFailureRenderer"
           glib:get-type="gcr_failure_renderer_get_type"
           glib:type-struct="FailureRendererClass">
      <implements name="Renderer"/>
      <constructor name="new" c:identifier="gcr_failure_renderer_new">
        <doc xml:space="preserve">Create a new renderer for an error.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new renderer</doc>
          <type name="FailureRenderer" c:type="GcrRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the label for the failure</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">the error to display</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new_unsupported"
                c:identifier="gcr_failure_renderer_new_unsupported">
        <doc xml:space="preserve">Create a new renderer for unsupported data.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new renderer</doc>
          <type name="Renderer" c:type="GcrRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">the label for the failure</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </function>
      <property name="attributes" writable="1" transfer-ownership="none">
        <type name="Gck.Attributes"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent" readable="0" private="1">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="FailureRendererPrivate"
              c:type="GcrFailureRendererPrivate*"/>
      </field>
    </class>
    <record name="FailureRendererClass"
            c:type="GcrFailureRendererClass"
            glib:is-gtype-struct-for="FailureRenderer">
      <field name="parent_class" readable="0" private="1">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="FailureRendererPrivate"
            c:type="GcrFailureRendererPrivate"
            disguised="1">
    </record>
    <class name="ImportButton"
           c:symbol-prefix="import_button"
           c:type="GcrImportButton"
           parent="Gtk.Button"
           glib:type-name="GcrImportButton"
           glib:get-type="gcr_import_button_get_type"
           glib:type-struct="ImportButtonClass">
      <doc xml:space="preserve">Button which imports parsed certificates and keys.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Actionable"/>
      <implements name="Gtk.Activatable"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gcr_import_button_new">
        <doc xml:space="preserve">Create a new #GcrImportButton.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly created #GcrImportButton</doc>
          <type name="ImportButton" c:type="GcrImportButton*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">label to display on the button</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="imported">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ImportButton" c:type="GcrImportButton*"/>
          </instance-parameter>
          <parameter name="importer" transfer-ownership="none">
            <type name="Gcr.Importer" c:type="GcrImporter*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="importing">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="ImportButton" c:type="GcrImportButton*"/>
          </instance-parameter>
          <parameter name="importer" transfer-ownership="none">
            <type name="Gcr.Importer" c:type="GcrImporter*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_parsed" c:identifier="gcr_import_button_add_parsed">
        <doc xml:space="preserve">Queue an item to import via the button</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">an import button</doc>
            <type name="ImportButton" c:type="GcrImportButton*"/>
          </instance-parameter>
          <parameter name="parsed" transfer-ownership="none">
            <doc xml:space="preserve">a parsed item</doc>
            <type name="Gcr.Parsed" c:type="GcrParsed*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="Gtk.Button" c:type="GtkButton"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="ImportButtonPrivate" c:type="GcrImportButtonPrivate*"/>
      </field>
      <glib:signal name="imported" when="last">
        <doc xml:space="preserve">Signal emitted when an import completes or fails.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="importer" transfer-ownership="none">
            <doc xml:space="preserve">the importer that was imported to</doc>
            <type name="GObject.Object"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <doc xml:space="preserve">if import was successful %NULL, or an error</doc>
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="importing" when="last">
        <doc xml:space="preserve">Signal emitted when an import begins.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="importer" transfer-ownership="none">
            <doc xml:space="preserve">the importer that will be imported to</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="ImportButtonClass"
            c:type="GcrImportButtonClass"
            glib:is-gtype-struct-for="ImportButton">
      <doc xml:space="preserve">Class for #GcrImportButton.</doc>
      <field name="parent_class">
        <type name="Gtk.ButtonClass" c:type="GtkButtonClass"/>
      </field>
      <field name="importing">
        <callback name="importing">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ImportButton" c:type="GcrImportButton*"/>
            </parameter>
            <parameter name="importer" transfer-ownership="none">
              <type name="Gcr.Importer" c:type="GcrImporter*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="imported">
        <callback name="imported">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="ImportButton" c:type="GcrImportButton*"/>
            </parameter>
            <parameter name="importer" transfer-ownership="none">
              <type name="Gcr.Importer" c:type="GcrImporter*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="padding" readable="0" private="1">
        <array zero-terminated="0" c:type="gpointer" fixed-size="10">
          <type name="gpointer" c:type="gpointer"/>
        </array>
      </field>
    </record>
    <record name="ImportButtonPrivate"
            c:type="GcrImportButtonPrivate"
            disguised="1">
    </record>
    <class name="KeyRenderer"
           c:symbol-prefix="key_renderer"
           c:type="GcrKeyRenderer"
           parent="GObject.Object"
           glib:type-name="GcrKeyRenderer"
           glib:get-type="gcr_key_renderer_get_type"
           glib:type-struct="KeyRendererClass">
      <doc xml:space="preserve">An implementation of #GcrRenderer which renders keys.</doc>
      <implements name="Renderer"/>
      <constructor name="new" c:identifier="gcr_key_renderer_new">
        <doc xml:space="preserve">Create a new key renderer which renders a given key in the attributes.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GcrKeyRenderer, which should be freed with g_object_unref()</doc>
          <type name="KeyRenderer" c:type="GcrKeyRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">label describing the key</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">key to display, or %NULL</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_attributes"
              c:identifier="gcr_key_renderer_get_attributes">
        <doc xml:space="preserve">Get the attributes displayed in the renderer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the attributes, owned by the renderer</doc>
          <type name="Gck.Attributes" c:type="GckAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The key renderer</doc>
            <type name="KeyRenderer" c:type="GcrKeyRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_attributes"
              c:identifier="gcr_key_renderer_set_attributes">
        <doc xml:space="preserve">Get the attributes displayed in the renderer. The attributes should represent
either an RSA or DSA key in PKCS\#11 style.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The key renderer</doc>
            <type name="KeyRenderer" c:type="GcrKeyRenderer*"/>
          </instance-parameter>
          <parameter name="attrs" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the attributes to display</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </method>
      <property name="object" writable="1" transfer-ownership="none">
        <type name="Gck.Object"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="KeyRendererPrivate" c:type="GcrKeyRendererPrivate*"/>
      </field>
    </class>
    <record name="KeyRendererClass"
            c:type="GcrKeyRendererClass"
            glib:is-gtype-struct-for="KeyRenderer">
      <doc xml:space="preserve">The class for #GcrKeyRenderer.</doc>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="KeyRendererPrivate"
            c:type="GcrKeyRendererPrivate"
            disguised="1">
    </record>
    <class name="KeyWidget"
           c:symbol-prefix="key_widget"
           c:type="GcrKeyWidget"
           parent="Gtk.Alignment"
           glib:type-name="GcrKeyWidget"
           glib:get-type="gcr_key_widget_get_type"
           glib:type-struct="KeyWidgetClass">
      <doc xml:space="preserve">A widget that displays a key.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gcr_key_widget_new">
        <doc xml:space="preserve">Create a new key widget which displays a given key in the attributes.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">A newly allocated #GcrKeyWidget, which should be freed with g_object_unref().</doc>
          <type name="KeyWidget" c:type="GcrKeyWidget*"/>
        </return-value>
        <parameters>
          <parameter name="attrs" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">key to display, or %NULL</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_attributes"
              c:identifier="gcr_key_widget_get_attributes">
        <doc xml:space="preserve">Get the attributes displayed in the widget.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The attributes, owned by the widget.</doc>
          <type name="Gck.Attributes" c:type="GckAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The key widget</doc>
            <type name="KeyWidget" c:type="GcrKeyWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_attributes"
              c:identifier="gcr_key_widget_set_attributes">
        <doc xml:space="preserve">Get the attributes displayed in the widget. The attributes should represent
either an RSA or DSA key in PKCS\#11 style.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The key widget</doc>
            <type name="KeyWidget" c:type="GcrKeyWidget*"/>
          </instance-parameter>
          <parameter name="attrs" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the attributes to display</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attributes" writable="1" transfer-ownership="none">
        <type name="Gck.Attributes"/>
      </property>
    </class>
    <record name="KeyWidgetClass"
            c:type="GcrKeyWidgetClass"
            disguised="1"
            glib:is-gtype-struct-for="KeyWidget">
      <doc xml:space="preserve">The class for #GcrKeyWidget</doc>
    </record>
    <record name="KeyWidgetPrivate" c:type="GcrKeyWidgetPrivate" disguised="1">
    </record>
    <class name="ListSelector"
           c:symbol-prefix="list_selector"
           c:type="GcrListSelector"
           parent="Gtk.TreeView"
           glib:type-name="GcrListSelector"
           glib:get-type="gcr_list_selector_get_type"
           glib:type-struct="ListSelectorClass">
      <doc xml:space="preserve">A list selector widget.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new" c:identifier="gcr_list_selector_new">
        <doc xml:space="preserve">Create a new #GcrListSelector.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated selector, which should be released with g_object_unref()</doc>
          <type name="ListSelector" c:type="GcrListSelector*"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">The collection that contains the objects to display</doc>
            <type name="Gcr.Collection" c:type="GcrCollection*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_collection"
              c:identifier="gcr_list_selector_get_collection">
        <doc xml:space="preserve">Get the collection that this selector is displaying objects from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The collection, owned by the selector.</doc>
          <type name="Gcr.Collection" c:type="GcrCollection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="ListSelector" c:type="GcrListSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="gcr_list_selector_get_selected">
        <doc xml:space="preserve">Get a list of selected objects.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of selected objects, to be released with g_list_free()</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GObject.Object"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="ListSelector" c:type="GcrListSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="gcr_list_selector_set_selected">
        <doc xml:space="preserve">Select certain objects in the selector.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="ListSelector" c:type="GcrListSelector*"/>
          </instance-parameter>
          <parameter name="selected" transfer-ownership="none">
            <doc xml:space="preserve">the list of objects to select</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="GObject.Object"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="collection"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The collection which contains the objects to display in the selector.</doc>
        <type name="Gcr.Collection"/>
      </property>
      <field name="parent">
        <type name="Gtk.TreeView" c:type="GtkTreeView"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="ListSelectorPrivate" c:type="GcrListSelectorPrivate*"/>
      </field>
    </class>
    <record name="ListSelectorClass"
            c:type="GcrListSelectorClass"
            glib:is-gtype-struct-for="ListSelector">
      <doc xml:space="preserve">The class for #GcrListSelector.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="Gtk.TreeViewClass" c:type="GtkTreeViewClass"/>
      </field>
    </record>
    <record name="ListSelectorPrivate"
            c:type="GcrListSelectorPrivate"
            disguised="1">
    </record>
    <class name="PromptDialog"
           c:symbol-prefix="prompt_dialog"
           c:type="GcrPromptDialog"
           parent="Gtk.Dialog"
           glib:type-name="GcrPromptDialog"
           glib:get-type="gcr_prompt_dialog_get_type"
           glib:type-struct="PromptDialogClass">
      <doc xml:space="preserve">A #GcrPrompt implementation which shows a GTK+ dialog.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gcr.Prompt"/>
      <implements name="Gtk.Buildable"/>
      <property name="choice-visible" transfer-ownership="none">
        <doc xml:space="preserve">Whether the choice check box is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="confirm-visible" transfer-ownership="none">
        <doc xml:space="preserve">Whether the password confirm entry is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="password-visible" transfer-ownership="none">
        <doc xml:space="preserve">Whether the password entry is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="warning-visible" transfer-ownership="none">
        <doc xml:space="preserve">Whether the warning label is visible or not.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <field name="parent">
        <type name="Gtk.Dialog" c:type="GtkDialog"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="PromptDialogPrivate" c:type="GcrPromptDialogPrivate*"/>
      </field>
    </class>
    <record name="PromptDialogClass"
            c:type="GcrPromptDialogClass"
            glib:is-gtype-struct-for="PromptDialog">
      <doc xml:space="preserve">The class for #GcrPromptDialog.</doc>
      <field name="parent_class">
        <type name="Gtk.DialogClass" c:type="GtkDialogClass"/>
      </field>
    </record>
    <record name="PromptDialogPrivate"
            c:type="GcrPromptDialogPrivate"
            disguised="1">
    </record>
    <interface name="Renderer"
               c:symbol-prefix="renderer"
               c:type="GcrRenderer"
               glib:type-name="GcrRenderer"
               glib:get-type="gcr_renderer_get_type"
               glib:type-struct="RendererIface">
      <doc xml:space="preserve">A renderer.</doc>
      <function name="create" c:identifier="gcr_renderer_create">
        <doc xml:space="preserve">Create and initialize a renderer for the given attributes and label. These
renderers should have been preregistered via gcr_renderer_register().</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new renderer, or %NULL if no renderer matched the attributes; the render should be released with g_object_unref()</doc>
          <type name="Renderer" c:type="GcrRenderer*"/>
        </return-value>
        <parameters>
          <parameter name="label" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">The label for the renderer</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none">
            <doc xml:space="preserve">The attributes to render</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </function>
      <function name="register" c:identifier="gcr_renderer_register">
        <doc xml:space="preserve">Register a renderer to be created when matching attributes are passed to
gcr_renderer_create().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="renderer_type" transfer-ownership="none">
            <doc xml:space="preserve">The renderer class type</doc>
            <type name="GType" c:type="GType"/>
          </parameter>
          <parameter name="attrs" transfer-ownership="none">
            <doc xml:space="preserve">The attributes to match</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </function>
      <function name="register_well_known"
                c:identifier="gcr_renderer_register_well_known">
        <doc xml:space="preserve">Register all the well known renderers for certificates and keys known to the
Gcr library.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </function>
      <virtual-method name="data_changed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="populate_popup">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
          <parameter name="viewer" transfer-ownership="none">
            <type name="Viewer" c:type="GcrViewer*"/>
          </parameter>
          <parameter name="menu" transfer-ownership="none">
            <type name="Gtk.Menu" c:type="GtkMenu*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="render_view" invoker="render_view">
        <doc xml:space="preserve">Render the contents of the renderer to the given viewer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
          <parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer to render to.</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="emit_data_changed"
              c:identifier="gcr_renderer_emit_data_changed">
        <doc xml:space="preserve">Emit the #GcrRenderer::data-changed signal on the renderer. This is used by
renderer implementations.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_attributes" c:identifier="gcr_renderer_get_attributes">
        <doc xml:space="preserve">Get the PKCS\#11 attributes, if any, set for this renderer to display.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the attributes, owned by the renderer</doc>
          <type name="Gck.Attributes" c:type="GckAttributes*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="popuplate_popup"
              c:identifier="gcr_renderer_popuplate_popup">
        <doc xml:space="preserve">Called by #GcrViewer when about to display a popup menu for the content
displayed by the renderer. The renderer can add a menu item if desired.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
          <parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer that is displaying a popup</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </parameter>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve">The popup menu being displayed</doc>
            <type name="Gtk.Menu" c:type="GtkMenu*"/>
          </parameter>
        </parameters>
      </method>
      <method name="render_view" c:identifier="gcr_renderer_render_view">
        <doc xml:space="preserve">Render the contents of the renderer to the given viewer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
          <parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer to render to.</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_attributes" c:identifier="gcr_renderer_set_attributes">
        <doc xml:space="preserve">Set the PKCS\#11 attributes for this renderer to display.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The renderer</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </instance-parameter>
          <parameter name="attrs" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">attributes to set</doc>
            <type name="Gck.Attributes" c:type="GckAttributes*"/>
          </parameter>
        </parameters>
      </method>
      <property name="attributes" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The attributes to display.</doc>
        <type name="Gck.Attributes"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">The label to display.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <glib:signal name="data-changed" when="last">
        <doc xml:space="preserve">A signal that is emitted by the renderer when it's data
changed and should be rerendered.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="RendererIface"
            c:type="GcrRendererIface"
            glib:is-gtype-struct-for="Renderer">
      <doc xml:space="preserve">The interface for #GcrRenderer</doc>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="data_changed">
        <callback name="data_changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="render_view">
        <callback name="render_view">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="self" transfer-ownership="none">
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
            <parameter name="viewer" transfer-ownership="none">
              <doc xml:space="preserve">The viewer to render to.</doc>
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
          </parameters>
        </callback>
      </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="self" transfer-ownership="none">
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
            <parameter name="viewer" transfer-ownership="none">
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
            <parameter name="menu" transfer-ownership="none">
              <type name="Gtk.Menu" c:type="GtkMenu*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy5" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy6" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy7" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="SecureEntryBuffer"
           c:symbol-prefix="secure_entry_buffer"
           c:type="GcrSecureEntryBuffer"
           parent="Gtk.EntryBuffer"
           glib:type-name="GcrSecureEntryBuffer"
           glib:get-type="gcr_secure_entry_buffer_get_type"
           glib:type-struct="SecureEntryBufferClass">
      <doc xml:space="preserve">A #GtkEntryBuffer which uses non-pageable memory for passwords or secrets.</doc>
      <constructor name="new" c:identifier="gcr_secure_entry_buffer_new">
        <doc xml:space="preserve">Create a new #GcrSecureEntryBuffer, a #GtkEntryBuffer which uses
non-pageable memory for the text.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the new entry buffer</doc>
          <type name="Gtk.EntryBuffer" c:type="GtkEntryBuffer*"/>
        </return-value>
      </constructor>
      <field name="parent">
        <type name="Gtk.EntryBuffer" c:type="GtkEntryBuffer"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="SecureEntryBufferPrivate"
              c:type="GcrSecureEntryBufferPrivate*"/>
      </field>
    </class>
    <record name="SecureEntryBufferClass"
            c:type="GcrSecureEntryBufferClass"
            glib:is-gtype-struct-for="SecureEntryBuffer">
      <doc xml:space="preserve">The class for #GcrSecureEntryBuffer.</doc>
      <field name="parent_class">
        <type name="Gtk.EntryBufferClass" c:type="GtkEntryBufferClass"/>
      </field>
    </record>
    <record name="SecureEntryBufferPrivate"
            c:type="GcrSecureEntryBufferPrivate"
            disguised="1">
    </record>
    <class name="TreeSelector"
           c:symbol-prefix="tree_selector"
           c:type="GcrTreeSelector"
           parent="Gtk.TreeView"
           glib:type-name="GcrTreeSelector"
           glib:get-type="gcr_tree_selector_get_type"
           glib:type-struct="TreeSelectorClass">
      <doc xml:space="preserve">A tree selector widget.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Scrollable"/>
      <constructor name="new"
                   c:identifier="gcr_tree_selector_new"
                   introspectable="0">
        <doc xml:space="preserve">Create a new #GcrTreeSelector.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated selector, which should be released with g_object_unref()</doc>
          <type name="TreeSelector" c:type="GcrTreeSelector*"/>
        </return-value>
        <parameters>
          <parameter name="collection" transfer-ownership="none">
            <doc xml:space="preserve">The collection that contains the objects to display</doc>
            <type name="Gcr.Collection" c:type="GcrCollection*"/>
          </parameter>
          <parameter name="columns" transfer-ownership="none">
            <doc xml:space="preserve">The columns to use to display the objects</doc>
            <type c:type="const GcrColumn*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_collection"
              c:identifier="gcr_tree_selector_get_collection">
        <doc xml:space="preserve">Get the collection that this selector is displaying objects from.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the collection, owned by the selector</doc>
          <type name="Gcr.Collection" c:type="GcrCollection*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="TreeSelector" c:type="GcrTreeSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_columns"
              c:identifier="gcr_tree_selector_get_columns"
              introspectable="0">
        <doc xml:space="preserve">Get the columns displayed in a selector in multiple mode.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The columns, owned by the selector.</doc>
          <type c:type="const GcrColumn*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="TreeSelector" c:type="GcrTreeSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_selected"
              c:identifier="gcr_tree_selector_get_selected">
        <doc xml:space="preserve">Get a list of selected objects.</doc>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve">the list of selected objects, to be released with g_list_free()</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="GObject.Object"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="TreeSelector" c:type="GcrTreeSelector*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_selected"
              c:identifier="gcr_tree_selector_set_selected">
        <doc xml:space="preserve">Select certain objects in the selector.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The selector</doc>
            <type name="TreeSelector" c:type="GcrTreeSelector*"/>
          </instance-parameter>
          <parameter name="selected" transfer-ownership="none">
            <doc xml:space="preserve">the list of objects to select</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="GObject.Object"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <property name="collection"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The collection which contains the objects to display in the selector.</doc>
        <type name="Gcr.Collection"/>
      </property>
      <property name="columns"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">The columns to use to display the objects.</doc>
        <type name="gpointer" c:type="gpointer"/>
      </property>
      <field name="parent">
        <type name="Gtk.TreeView" c:type="GtkTreeView"/>
      </field>
      <field name="pv" readable="0" private="1">
        <type name="TreeSelectorPrivate" c:type="GcrTreeSelectorPrivate*"/>
      </field>
    </class>
    <record name="TreeSelectorClass"
            c:type="GcrTreeSelectorClass"
            glib:is-gtype-struct-for="TreeSelector">
      <doc xml:space="preserve">The class for #GcrTreeSelector.</doc>
      <field name="parent_class" readable="0" private="1">
        <type name="Gtk.TreeViewClass" c:type="GtkTreeViewClass"/>
      </field>
    </record>
    <record name="TreeSelectorPrivate"
            c:type="GcrTreeSelectorPrivate"
            disguised="1">
    </record>
    <class name="UnlockOptionsWidget"
           c:symbol-prefix="unlock_options_widget"
           c:type="GcrUnlockOptionsWidget"
           parent="Gtk.Alignment"
           glib:type-name="GcrUnlockOptionsWidget"
           glib:get-type="gcr_unlock_options_widget_get_type"
           glib:type-struct="UnlockOptionsWidgetClass">
      <doc xml:space="preserve">An unlock options widget.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="gcr_unlock_options_widget_new">
        <doc xml:space="preserve">Create a new #GcrUnlockOptionsWidget.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #GcrUnlockOptionsWidget</doc>
          <type name="UnlockOptionsWidget" c:type="GtkWidget*"/>
        </return-value>
      </constructor>
      <method name="get_choice"
              c:identifier="gcr_unlock_options_widget_get_choice">
        <doc xml:space="preserve">Get the currently selected option, like %GCR_UNLOCK_OPTION_ALWAYS.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The currently selected option name.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_label"
              c:identifier="gcr_unlock_options_widget_get_label">
        <doc xml:space="preserve">Get the label for one of the options. Use an option name like
%GCR_UNLOCK_OPTION_ALWAYS.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The current label for the option.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
          <parameter name="option" transfer-ownership="none">
            <doc xml:space="preserve">The option name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_sensitive"
              c:identifier="gcr_unlock_options_widget_get_sensitive">
        <doc xml:space="preserve">Get the sensitivity state for one of the options. Use an option name like
%GCR_UNLOCK_OPTION_ALWAYS.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">Whether the option is sensitive or not.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
          <parameter name="option" transfer-ownership="none">
            <doc xml:space="preserve">The option name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ttl" c:identifier="gcr_unlock_options_widget_get_ttl">
        <doc xml:space="preserve">Get the timeout setting set for unlock options that have a timeout.
This will also return a valid value if the currently selected option
does not have a timeout.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The unlock timeout in seconds.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_choice"
              c:identifier="gcr_unlock_options_widget_set_choice">
        <doc xml:space="preserve">Set the currently selected option. Use an option name like
%GCR_UNLOCK_OPTION_ALWAYS.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
          <parameter name="option" transfer-ownership="none">
            <doc xml:space="preserve">The option name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_label"
              c:identifier="gcr_unlock_options_widget_set_label">
        <doc xml:space="preserve">Set the label for one of the options. Use an option name like
%GCR_UNLOCK_OPTION_ALWAYS.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
          <parameter name="option" transfer-ownership="none">
            <doc xml:space="preserve">The option name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="text" transfer-ownership="none">
            <doc xml:space="preserve">The new label</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_sensitive"
              c:identifier="gcr_unlock_options_widget_set_sensitive">
        <doc xml:space="preserve">Set the sensitivity state for one of the options. Use an option name like
%GCR_UNLOCK_OPTION_ALWAYS. The reason will be displayed as a tooltip.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
          <parameter name="option" transfer-ownership="none">
            <doc xml:space="preserve">The option name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="sensitive" transfer-ownership="none">
            <doc xml:space="preserve">The sensitivity state.</doc>
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="reason" transfer-ownership="none">
            <doc xml:space="preserve">A user displayable string which contains the reason for the sensitivity.</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_ttl" c:identifier="gcr_unlock_options_widget_set_ttl">
        <doc xml:space="preserve">Set the current setting for the timeout. This can be set even when the
currently selected option does not have a timeout.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">The unlock options widget</doc>
            <type name="UnlockOptionsWidget" c:type="GcrUnlockOptionsWidget*"/>
          </instance-parameter>
          <parameter name="ttl" transfer-ownership="none">
            <doc xml:space="preserve">The timeout to set, in seconds</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <property name="choice" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="ttl" writable="1" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
    </class>
    <record name="UnlockOptionsWidgetClass"
            c:type="GcrUnlockOptionsWidgetClass"
            disguised="1"
            glib:is-gtype-struct-for="UnlockOptionsWidget">
      <doc xml:space="preserve">Class for #GcrUnlockOptionsWidget.</doc>
    </record>
    <record name="UnlockOptionsWidgetPrivate"
            c:type="GcrUnlockOptionsWidgetPrivate"
            disguised="1">
    </record>
    <interface name="Viewer"
               c:symbol-prefix="viewer"
               c:type="GcrViewer"
               glib:type-name="GcrViewer"
               glib:get-type="gcr_viewer_get_type"
               glib:type-struct="ViewerIface">
      <doc xml:space="preserve">An abstract viewer which displays renderers contents.</doc>
      <prerequisite name="Gtk.Widget"/>
      <function name="new" c:identifier="gcr_viewer_new">
        <doc xml:space="preserve">Get an implementation of #GcrViewer that supports a view
of multiple renderers.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GcrViewer, which should be released with g_object_unref()</doc>
          <type name="Viewer" c:type="GcrViewer*"/>
        </return-value>
      </function>
      <function name="new_scrolled" c:identifier="gcr_viewer_new_scrolled">
        <doc xml:space="preserve">Get an implementation of #GcrViewer that supports a scrolled view
of multiple renderers.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated #GcrViewer, which should be released with g_object_unref()</doc>
          <type name="Viewer" c:type="GcrViewer*"/>
        </return-value>
      </function>
      <virtual-method name="add_renderer" invoker="add_renderer">
        <doc xml:space="preserve">Add a renderer to this viewer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">The renderer to add</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="count_renderers" invoker="count_renderers">
        <doc xml:space="preserve">Get the number of renderers present in the viewer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of renderers.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_renderer" invoker="get_renderer">
        <doc xml:space="preserve">Get a pointer to the renderer at the given index. It is an error to request
an index that is out of bounds.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the render, owned by the viewer</doc>
          <type name="Renderer" c:type="GcrRenderer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve">The index of the renderer to get</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="insert_renderer" invoker="insert_renderer">
        <doc xml:space="preserve">Insert a renderer at a specific point in the viewer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the renderer to insert</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
          <parameter name="before" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the renderer to insert before</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="remove_renderer" invoker="remove_renderer">
        <doc xml:space="preserve">Remove a renderer from this viewer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">The renderer to remove</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_renderer" c:identifier="gcr_viewer_add_renderer">
        <doc xml:space="preserve">Add a renderer to this viewer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">The renderer to add</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="count_renderers" c:identifier="gcr_viewer_count_renderers">
        <doc xml:space="preserve">Get the number of renderers present in the viewer.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">The number of renderers.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_renderer" c:identifier="gcr_viewer_get_renderer">
        <doc xml:space="preserve">Get a pointer to the renderer at the given index. It is an error to request
an index that is out of bounds.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the render, owned by the viewer</doc>
          <type name="Renderer" c:type="GcrRenderer*"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="index_" transfer-ownership="none">
            <doc xml:space="preserve">The index of the renderer to get</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <method name="insert_renderer" c:identifier="gcr_viewer_insert_renderer">
        <doc xml:space="preserve">Insert a renderer at a specific point in the viewer</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">the viewer</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the renderer to insert</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
          <parameter name="before" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">the renderer to insert before</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
        </parameters>
      </method>
      <method name="remove_renderer" c:identifier="gcr_viewer_remove_renderer">
        <doc xml:space="preserve">Remove a renderer from this viewer.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="viewer" transfer-ownership="none">
            <doc xml:space="preserve">The viewer</doc>
            <type name="Viewer" c:type="GcrViewer*"/>
          </instance-parameter>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">The renderer to remove</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="ViewerIface"
            c:type="GcrViewerIface"
            glib:is-gtype-struct-for="Viewer">
      <doc xml:space="preserve">The interface for #GcrViewer</doc>
      <field name="parent">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="add_renderer">
        <callback name="add_renderer">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="viewer" transfer-ownership="none">
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve">The renderer to add</doc>
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="insert_renderer">
        <callback name="insert_renderer">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="viewer" transfer-ownership="none">
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve">the renderer to insert</doc>
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
            <parameter name="before" transfer-ownership="none" allow-none="1">
              <doc xml:space="preserve">the renderer to insert before</doc>
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="remove_renderer">
        <callback name="remove_renderer">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="viewer" transfer-ownership="none">
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
            <parameter name="renderer" transfer-ownership="none">
              <doc xml:space="preserve">The renderer to remove</doc>
              <type name="Renderer" c:type="GcrRenderer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="count_renderers">
        <callback name="count_renderers">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">The number of renderers.</doc>
            <type name="guint" c:type="guint"/>
          </return-value>
          <parameters>
            <parameter name="viewer" transfer-ownership="none">
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_renderer">
        <callback name="get_renderer">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the render, owned by the viewer</doc>
            <type name="Renderer" c:type="GcrRenderer*"/>
          </return-value>
          <parameters>
            <parameter name="viewer" transfer-ownership="none">
              <type name="Viewer" c:type="GcrViewer*"/>
            </parameter>
            <parameter name="index_" transfer-ownership="none">
              <doc xml:space="preserve">The index of the renderer to get</doc>
              <type name="guint" c:type="guint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="dummy1" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy2" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy3" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
      <field name="dummy4" readable="0" private="1">
        <type name="gpointer" c:type="gpointer"/>
      </field>
    </record>
    <class name="ViewerWidget"
           c:symbol-prefix="viewer_widget"
           c:type="GcrViewerWidget"
           parent="Gtk.Box"
           glib:type-name="GcrViewerWidget"
           glib:get-type="gcr_viewer_widget_get_type">
      <doc xml:space="preserve">A viewer widget object.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="gcr_viewer_widget_new">
        <doc xml:space="preserve">Create a new viewer widget.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A new #GcrViewerWidget object</doc>
          <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
        </return-value>
      </constructor>
      <method name="clear_error" c:identifier="gcr_viewer_widget_clear_error">
        <doc xml:space="preserve">Clear the error displayed on the viewer widget.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="gcr_viewer_widget_get_display_name">
        <doc xml:space="preserve">Get the display name for data being displayed. This is automatically
calculated from a loaded file, or can be explicitly set.

Used as a hint when displaying a title for the data, but may be
overridden by the parsed data.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the display name</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parser" c:identifier="gcr_viewer_widget_get_parser">
        <doc xml:space="preserve">Get the parser used to parse loaded data into viewable items.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the parser</doc>
          <type name="Gcr.Parser" c:type="GcrParser*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_data" c:identifier="gcr_viewer_widget_load_data">
        <doc xml:space="preserve">Parse and load some data to be displayed into the viewer widgets. The data
may contain multiple parseable items if the format can contain multiple
items.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
          <parameter name="display_name"
                     transfer-ownership="none"
                     allow-none="1">
            <doc xml:space="preserve">label for the loaded data</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="data" transfer-ownership="none">
            <doc xml:space="preserve">data to load</doc>
            <array length="2" zero-terminated="0" c:type="guchar*">
              <type name="guint8" c:type="guchar"/>
            </array>
          </parameter>
          <parameter name="n_data" transfer-ownership="none">
            <doc xml:space="preserve">length of data to load</doc>
            <type name="gsize" c:type="gsize"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_file" c:identifier="gcr_viewer_widget_load_file">
        <doc xml:space="preserve">Display contents of a file in the viewer widget. Multiple files can
be loaded.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a file to load</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_display_name"
              c:identifier="gcr_viewer_widget_set_display_name">
        <doc xml:space="preserve">Set the display name for data being displayed. Once explicitly
set it will no longer be calculated automatically by loading data.

Used as a hint when displaying a title for the data, but may be
overridden by the parsed data.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
          <parameter name="display_name" transfer-ownership="none">
            <doc xml:space="preserve">the display name</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="show_error" c:identifier="gcr_viewer_widget_show_error">
        <doc xml:space="preserve">Show an error on the viewer widget. This is displayed on a info bar near
the edge of the widget.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve">a viewer widget</doc>
            <type name="ViewerWidget" c:type="GcrViewerWidget*"/>
          </instance-parameter>
          <parameter name="message" transfer-ownership="none">
            <doc xml:space="preserve">descriptive error message</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none" allow-none="1">
            <doc xml:space="preserve">detailed error</doc>
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </method>
      <property name="display-name" writable="1" transfer-ownership="none">
        <doc xml:space="preserve">Display name for data being displayed. This is automatically
calculated from a loaded file, or can be explicitly set.

Used as a hint when displaying a title for the data, but may be
overridden by the parsed data.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="parser" transfer-ownership="none">
        <doc xml:space="preserve">The parser used to parse loaded data into viewable items.</doc>
        <type name="Gcr.Parser"/>
      </property>
      <glib:signal name="added" when="last">
        <doc xml:space="preserve">This signal is emitted when an item is added to the viewer widget.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="renderer" transfer-ownership="none">
            <doc xml:space="preserve">the renderer that was added</doc>
            <type name="Renderer"/>
          </parameter>
          <parameter name="parsed" transfer-ownership="none">
            <doc xml:space="preserve">the parsed item that was added</doc>
            <type name="Gcr.Parsed"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <function name="renderer_create"
              c:identifier="gcr_renderer_create"
              moved-to="Renderer.create">
      <doc xml:space="preserve">Create and initialize a renderer for the given attributes and label. These
renderers should have been preregistered via gcr_renderer_register().</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a new renderer, or %NULL if no renderer matched the attributes; the render should be released with g_object_unref()</doc>
        <type name="Renderer" c:type="GcrRenderer*"/>
      </return-value>
      <parameters>
        <parameter name="label" transfer-ownership="none" allow-none="1">
          <doc xml:space="preserve">The label for the renderer</doc>
          <type name="utf8" c:type="const gchar*"/>
        </parameter>
        <parameter name="attrs" transfer-ownership="none">
          <doc xml:space="preserve">The attributes to render</doc>
          <type name="Gck.Attributes" c:type="GckAttributes*"/>
        </parameter>
      </parameters>
    </function>
    <function name="renderer_register"
              c:identifier="gcr_renderer_register"
              moved-to="Renderer.register">
      <doc xml:space="preserve">Register a renderer to be created when matching attributes are passed to
gcr_renderer_create().</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="renderer_type" transfer-ownership="none">
          <doc xml:space="preserve">The renderer class type</doc>
          <type name="GType" c:type="GType"/>
        </parameter>
        <parameter name="attrs" transfer-ownership="none">
          <doc xml:space="preserve">The attributes to match</doc>
          <type name="Gck.Attributes" c:type="GckAttributes*"/>
        </parameter>
      </parameters>
    </function>
    <function name="renderer_register_well_known"
              c:identifier="gcr_renderer_register_well_known"
              moved-to="Renderer.register_well_known">
      <doc xml:space="preserve">Register all the well known renderers for certificates and keys known to the
Gcr library.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
    <function name="viewer_new"
              c:identifier="gcr_viewer_new"
              moved-to="Viewer.new">
      <doc xml:space="preserve">Get an implementation of #GcrViewer that supports a view
of multiple renderers.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated #GcrViewer, which should be released with g_object_unref()</doc>
        <type name="Viewer" c:type="GcrViewer*"/>
      </return-value>
    </function>
    <function name="viewer_new_scrolled"
              c:identifier="gcr_viewer_new_scrolled"
              moved-to="Viewer.new_scrolled">
      <doc xml:space="preserve">Get an implementation of #GcrViewer that supports a scrolled view
of multiple renderers.</doc>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a newly allocated #GcrViewer, which should be released with g_object_unref()</doc>
        <type name="Viewer" c:type="GcrViewer*"/>
      </return-value>
    </function>
  </namespace>
</repository>
