<?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.1,libgcr-ui-3.so.1"
             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.Comparable"/>
      <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"
                     nullable="1"
                     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"
                     nullable="1"
                     allow-none="1">
            <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"
                     nullable="1"
                     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">
        <doc xml:space="preserve">The parent class.</doc>
        <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"
                     nullable="1"
                     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" nullable="1">
          <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"
                     nullable="1"
                     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="..." transfer-ownership="none">
            <doc xml:space="preserve">the column names and types</doc>
            <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 name="Gcr.Column" 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">
        <doc xml:space="preserve">Set the collection which this model represents</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 collection model</doc>
            <type name="CollectionModel" c:type="GcrCollectionModel*"/>
          </instance-parameter>
          <parameter name="collection"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve">the collection or %NULL</doc>
            <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 name="Gcr.Column" 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">
        <doc xml:space="preserve">The parent class</doc>
        <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"
                     nullable="1"
                     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"
                     nullable="1"
                     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"
                     nullable="1"
                     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">
        <doc xml:space="preserve">The parent class</doc>
        <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"
                     nullable="1"
                     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"
                     nullable="1"
                     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" nullable="1">
          <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, DSA, or EC 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"
                     nullable="1"
                     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">
        <doc xml:space="preserve">The parent class.</doc>
        <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.Bin"
           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"
                     nullable="1"
                     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" nullable="1">
          <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, DSA or EC 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"
                     nullable="1"
                     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">
        <doc xml:space="preserve">parent class</doc>
        <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" nullable="1">
          <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"
                     nullable="1"
                     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">
            <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>
      </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" nullable="1">
          <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"
                     nullable="1"
                     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">
        <doc xml:space="preserve">the parent interface type</doc>
        <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">
              <doc xml:space="preserve">The renderer</doc>
              <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">
        <doc xml:space="preserve">parent class</doc>
        <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 name="Gcr.Column" 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 name="Gcr.Column" 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.Bin"
           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="none">
          <doc xml:space="preserve">a #GcrViewer which is also a #GtkWidget</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">
            <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>
      </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">
            <doc xml:space="preserve">The viewer</doc>
            <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">
            <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>
      </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">
            <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"
                     nullable="1"
                     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">
            <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>
      </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"
                     nullable="1"
                     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">
        <doc xml:space="preserve">The parent interface</doc>
        <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">
              <doc xml:space="preserve">The viewer</doc>
              <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">
              <doc xml:space="preserve">the viewer</doc>
              <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"
                       nullable="1"
                       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">
              <doc xml:space="preserve">The viewer</doc>
              <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">
              <doc xml:space="preserve">The viewer</doc>
              <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">
              <doc xml:space="preserve">The viewer</doc>
              <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="get_viewer" c:identifier="gcr_viewer_widget_get_viewer">
        <doc xml:space="preserve">Get the viewer used to display the viewable items.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the viewer</doc>
          <type name="Viewer" c:type="GcrViewer*"/>
        </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_bytes" c:identifier="gcr_viewer_widget_load_bytes">
        <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"
                     nullable="1"
                     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>
            <type name="GLib.Bytes" c:type="GBytes*"/>
          </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.

This function will copy the data. Use gcr_viewer_widget_load_bytes() to avoid
copying the 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"
                     nullable="1"
                     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"
                     nullable="1"
                     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" nullable="1">
        <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"
                   nullable="1"
                   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="none">
        <doc xml:space="preserve">a #GcrViewer which is also a #GtkWidget</doc>
        <type name="Viewer" c:type="GcrViewer*"/>
      </return-value>
    </function>
  </namespace>
</repository>
