<?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="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <namespace name="Caja"
             version="2.0"
             shared-library="libcaja-extension.so.1"
             c:identifier-prefixes="Caja"
             c:symbol-prefixes="caja">
    <class name="Column"
           c:symbol-prefix="column"
           c:type="CajaColumn"
           parent="GObject.Object"
           glib:type-name="CajaColumn"
           glib:get-type="caja_column_get_type"
           glib:type-struct="ColumnClass">
      <constructor name="new" c:identifier="caja_column_new">
        <doc xml:space="preserve">Creates a new column</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly created #CajaColumn</doc>
          <type name="Column" c:type="CajaColumn*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">identifier of the column</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="attribute" transfer-ownership="none">
            <doc xml:space="preserve">the file attribute to be displayed in the column</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">the user-visible label for the column</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="description" transfer-ownership="none">
            <doc xml:space="preserve">a user-visible description of the column</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="attribute" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="attribute-q" transfer-ownership="none">
        <type name="guint" c:type="guint"/>
      </property>
      <property name="description" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="xalign" writable="1" transfer-ownership="none">
        <type name="gfloat" c:type="gfloat"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="details">
        <type name="ColumnDetails" c:type="CajaColumnDetails*"/>
      </field>
    </class>
    <record name="ColumnClass"
            c:type="CajaColumnClass"
            glib:is-gtype-struct-for="Column">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="ColumnDetails" c:type="CajaColumnDetails" disguised="1">
    </record>
    <interface name="ColumnProvider"
               c:symbol-prefix="column_provider"
               c:type="CajaColumnProvider"
               glib:type-name="CajaColumnProvider"
               glib:get-type="caja_column_provider_get_type"
               glib:type-struct="ColumnProviderIface">
      <virtual-method name="get_columns" invoker="get_columns">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided #CajaColumn objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Column"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaColumnProvider</doc>
            <type name="ColumnProvider" c:type="CajaColumnProvider*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="get_columns"
              c:identifier="caja_column_provider_get_columns">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided #CajaColumn objects</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="Column"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaColumnProvider</doc>
            <type name="ColumnProvider" c:type="CajaColumnProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
    </interface>
    <record name="ColumnProviderIface"
            c:type="CajaColumnProviderIface"
            glib:is-gtype-struct-for="ColumnProvider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_columns">
        <callback name="get_columns">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">the provided #CajaColumn objects</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="Column"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaColumnProvider</doc>
              <type name="ColumnProvider" c:type="CajaColumnProvider*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="File" c:type="CajaFile" disguised="1">
    </record>
    <interface name="FileInfo"
               c:symbol-prefix="file_info"
               glib:type-name="CajaFileInfo"
               glib:get-type="caja_file_info_get_type"
               glib:type-struct="FileInfoIface">
      <function name="create" c:identifier="caja_file_info_create">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #CajaFileInfo</doc>
          <type name="FileInfo" c:type="CajaFileInfo*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location to create the file info for</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </function>
      <function name="create_for_uri"
                c:identifier="caja_file_info_create_for_uri">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #CajaFileInfo</doc>
          <type name="FileInfo" c:type="CajaFileInfo*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI to lookup the file info for</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <function name="list_copy" c:identifier="caja_file_info_list_copy">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @files.
 Use #caja_file_info_list_free to free the list and unref its contents.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FileInfo"/>
          </type>
        </return-value>
        <parameters>
          <parameter name="files" transfer-ownership="none">
            <doc xml:space="preserve">the files to copy</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FileInfo"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="list_free" c:identifier="caja_file_info_list_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="files" transfer-ownership="none">
            <doc xml:space="preserve">a list created with
  #caja_file_info_list_copy</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FileInfo"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <function name="lookup" c:identifier="caja_file_info_lookup">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #CajaFileInfo</doc>
          <type name="FileInfo" c:type="CajaFileInfo*"/>
        </return-value>
        <parameters>
          <parameter name="location" transfer-ownership="none">
            <doc xml:space="preserve">the location to lookup the file info for</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </parameter>
        </parameters>
      </function>
      <function name="lookup_for_uri"
                c:identifier="caja_file_info_lookup_for_uri">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #CajaFileInfo</doc>
          <type name="FileInfo" c:type="CajaFileInfo*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI to lookup the file info for</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="add_emblem" invoker="add_emblem">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="emblem_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="add_string_attribute"
                      invoker="add_string_attribute">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="attribute_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="can_write" invoker="can_write">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_activation_uri" invoker="get_activation_uri">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_file_type" invoker="get_file_type">
        <return-value transfer-ownership="none">
          <type name="Gio.FileType" c:type="GFileType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_location" invoker="get_location">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GFile for the location of @file</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_mime_type" invoker="get_mime_type">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_mount" invoker="get_mount">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GMount for the mount of @file,
  or %NULL if @file has no mount</doc>
          <type name="Gio.Mount" c:type="GMount*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_name" invoker="get_name">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_parent_info" invoker="get_parent_info">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #CajaFileInfo for the parent of @file,
  or %NULL if @file has no parent</doc>
          <type name="FileInfo" c:type="CajaFileInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_parent_location" invoker="get_parent_location">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GFile for the parent location of @file,
  or %NULL if @file has no parent</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_parent_uri" invoker="get_parent_uri">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_string_attribute"
                      invoker="get_string_attribute">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="attribute_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_uri" invoker="get_uri">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_uri_scheme" invoker="get_uri_scheme">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="invalidate_extension_info"
                      invoker="invalidate_extension_info">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_directory" invoker="is_directory">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_gone" invoker="is_gone">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="is_mime_type" invoker="is_mime_type">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="mime_Type" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="add_emblem" c:identifier="caja_file_info_add_emblem">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="emblem_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_string_attribute"
              c:identifier="caja_file_info_add_string_attribute">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="attribute_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="can_write" c:identifier="caja_file_info_can_write">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_activation_uri"
              c:identifier="caja_file_info_get_activation_uri">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_file_type" c:identifier="caja_file_info_get_file_type">
        <return-value transfer-ownership="none">
          <type name="Gio.FileType" c:type="GFileType"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_location" c:identifier="caja_file_info_get_location">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GFile for the location of @file</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mime_type" c:identifier="caja_file_info_get_mime_type">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_mount" c:identifier="caja_file_info_get_mount">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GMount for the mount of @file,
  or %NULL if @file has no mount</doc>
          <type name="Gio.Mount" c:type="GMount*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="caja_file_info_get_name">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_info"
              c:identifier="caja_file_info_get_parent_info">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #CajaFileInfo for the parent of @file,
  or %NULL if @file has no parent</doc>
          <type name="FileInfo" c:type="CajaFileInfo*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_location"
              c:identifier="caja_file_info_get_parent_location">
        <return-value transfer-ownership="full" nullable="1">
          <doc xml:space="preserve">a #GFile for the parent location of @file,
  or %NULL if @file has no parent</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaFileInfo</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_parent_uri"
              c:identifier="caja_file_info_get_parent_uri">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_string_attribute"
              c:identifier="caja_file_info_get_string_attribute">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="attribute_name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_uri" c:identifier="caja_file_info_get_uri">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_uri_scheme"
              c:identifier="caja_file_info_get_uri_scheme">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="invalidate_extension_info"
              c:identifier="caja_file_info_invalidate_extension_info">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_directory" c:identifier="caja_file_info_is_directory">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_gone" c:identifier="caja_file_info_is_gone">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_mime_type" c:identifier="caja_file_info_is_mime_type">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </instance-parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="FileInfoIface"
            c:type="CajaFileInfoIface"
            glib:is-gtype-struct-for="FileInfo">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="is_gone">
        <callback name="is_gone">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_name">
        <callback name="get_name">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_uri">
        <callback name="get_uri">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_parent_uri">
        <callback name="get_parent_uri">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_uri_scheme">
        <callback name="get_uri_scheme">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_mime_type">
        <callback name="get_mime_type">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_mime_type">
        <callback name="is_mime_type">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
            <parameter name="mime_Type" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="is_directory">
        <callback name="is_directory">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_emblem">
        <callback name="add_emblem">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
            <parameter name="emblem_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_string_attribute">
        <callback name="get_string_attribute">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
            <parameter name="attribute_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="add_string_attribute">
        <callback name="add_string_attribute">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
            <parameter name="attribute_name" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="value" transfer-ownership="none">
              <type name="utf8" c:type="const char*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="invalidate_extension_info">
        <callback name="invalidate_extension_info">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_activation_uri">
        <callback name="get_activation_uri">
          <return-value transfer-ownership="full">
            <type name="utf8" c:type="char*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_file_type">
        <callback name="get_file_type">
          <return-value transfer-ownership="none">
            <type name="Gio.FileType" c:type="GFileType"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_location">
        <callback name="get_location">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">a #GFile for the location of @file</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaFileInfo</doc>
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_parent_location">
        <callback name="get_parent_location">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">a #GFile for the parent location of @file,
  or %NULL if @file has no parent</doc>
            <type name="Gio.File" c:type="GFile*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaFileInfo</doc>
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_parent_info">
        <callback name="get_parent_info">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">a #CajaFileInfo for the parent of @file,
  or %NULL if @file has no parent</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaFileInfo</doc>
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_mount">
        <callback name="get_mount">
          <return-value transfer-ownership="full" nullable="1">
            <doc xml:space="preserve">a #GMount for the mount of @file,
  or %NULL if @file has no mount</doc>
            <type name="Gio.Mount" c:type="GMount*"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaFileInfo</doc>
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="can_write">
        <callback name="can_write">
          <return-value transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </return-value>
          <parameters>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <interface name="InfoProvider"
               c:symbol-prefix="info_provider"
               c:type="CajaInfoProvider"
               glib:type-name="CajaInfoProvider"
               glib:get-type="caja_info_provider_get_type"
               glib:type-struct="InfoProviderIface">
      <function name="update_complete_invoke"
                c:identifier="caja_info_provider_update_complete_invoke">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="update_complete" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="provider" transfer-ownership="none">
            <type name="InfoProvider" c:type="CajaInfoProvider*"/>
          </parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="OperationHandle" c:type="CajaOperationHandle*"/>
          </parameter>
          <parameter name="result" transfer-ownership="none">
            <type name="OperationResult" c:type="CajaOperationResult"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="cancel_update" invoker="cancel_update">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="InfoProvider" c:type="CajaInfoProvider*"/>
          </instance-parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="OperationHandle" c:type="CajaOperationHandle*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="update_file_info" invoker="update_file_info">
        <return-value transfer-ownership="none">
          <type name="OperationResult" c:type="CajaOperationResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="InfoProvider" c:type="CajaInfoProvider*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </parameter>
          <parameter name="update_complete" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="OperationHandle" c:type="CajaOperationHandle**"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="cancel_update"
              c:identifier="caja_info_provider_cancel_update">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="InfoProvider" c:type="CajaInfoProvider*"/>
          </instance-parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="OperationHandle" c:type="CajaOperationHandle*"/>
          </parameter>
        </parameters>
      </method>
      <method name="update_file_info"
              c:identifier="caja_info_provider_update_file_info">
        <return-value transfer-ownership="none">
          <type name="OperationResult" c:type="CajaOperationResult"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="InfoProvider" c:type="CajaInfoProvider*"/>
          </instance-parameter>
          <parameter name="file" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </parameter>
          <parameter name="update_complete" transfer-ownership="none">
            <type name="GObject.Closure" c:type="GClosure*"/>
          </parameter>
          <parameter name="handle" transfer-ownership="none">
            <type name="OperationHandle" c:type="CajaOperationHandle**"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="InfoProviderIface"
            c:type="CajaInfoProviderIface"
            glib:is-gtype-struct-for="InfoProvider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="update_file_info">
        <callback name="update_file_info">
          <return-value transfer-ownership="none">
            <type name="OperationResult" c:type="CajaOperationResult"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="InfoProvider" c:type="CajaInfoProvider*"/>
            </parameter>
            <parameter name="file" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
            <parameter name="update_complete" transfer-ownership="none">
              <type name="GObject.Closure" c:type="GClosure*"/>
            </parameter>
            <parameter name="handle" transfer-ownership="none">
              <type name="OperationHandle" c:type="CajaOperationHandle**"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="cancel_update">
        <callback name="cancel_update">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="InfoProvider" c:type="CajaInfoProvider*"/>
            </parameter>
            <parameter name="handle" transfer-ownership="none">
              <type name="OperationHandle" c:type="CajaOperationHandle*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <callback name="InfoProviderUpdateComplete"
              c:type="CajaInfoProviderUpdateComplete">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="provider" transfer-ownership="none">
          <type name="InfoProvider" c:type="CajaInfoProvider*"/>
        </parameter>
        <parameter name="handle" transfer-ownership="none">
          <type name="OperationHandle" c:type="CajaOperationHandle*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="OperationResult" c:type="CajaOperationResult"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="3">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <interface name="LocationWidgetProvider"
               c:symbol-prefix="location_widget_provider"
               c:type="CajaLocationWidgetProvider"
               glib:type-name="CajaLocationWidgetProvider"
               glib:get-type="caja_location_widget_provider_get_type"
               glib:type-struct="LocationWidgetProviderIface">
      <virtual-method name="get_widget" invoker="get_widget">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the location widget for @provider at @uri</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaLocationWidgetProvider</doc>
            <type name="LocationWidgetProvider"
                  c:type="CajaLocationWidgetProvider*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI of the location</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">parent #GtkWindow</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_widget"
              c:identifier="caja_location_widget_provider_get_widget">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the location widget for @provider at @uri</doc>
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaLocationWidgetProvider</doc>
            <type name="LocationWidgetProvider"
                  c:type="CajaLocationWidgetProvider*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve">the URI of the location</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">parent #GtkWindow</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="LocationWidgetProviderIface"
            c:type="CajaLocationWidgetProviderIface"
            glib:is-gtype-struct-for="LocationWidgetProvider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_widget">
        <callback name="get_widget">
          <return-value transfer-ownership="none">
            <doc xml:space="preserve">the location widget for @provider at @uri</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaLocationWidgetProvider</doc>
              <type name="LocationWidgetProvider"
                    c:type="CajaLocationWidgetProvider*"/>
            </parameter>
            <parameter name="uri" transfer-ownership="none">
              <doc xml:space="preserve">the URI of the location</doc>
              <type name="utf8" c:type="const char*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve">parent #GtkWindow</doc>
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <class name="Menu"
           c:symbol-prefix="menu"
           c:type="CajaMenu"
           parent="GObject.Object"
           glib:type-name="CajaMenu"
           glib:get-type="caja_menu_get_type"
           glib:type-struct="MenuClass">
      <constructor name="new" c:identifier="caja_menu_new">
        <return-value transfer-ownership="full">
          <type name="Menu" c:type="CajaMenu*"/>
        </return-value>
      </constructor>
      <method name="append_item" c:identifier="caja_menu_append_item">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="menu" transfer-ownership="none">
            <type name="Menu" c:type="CajaMenu*"/>
          </instance-parameter>
          <parameter name="item" transfer-ownership="none">
            <type name="MenuItem" c:type="CajaMenuItem*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_items" c:identifier="caja_menu_get_items">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided #CajaMenuItem list</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MenuItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaMenu</doc>
            <type name="Menu" c:type="CajaMenu*"/>
          </instance-parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="MenuPrivate" c:type="CajaMenuPrivate*"/>
      </field>
    </class>
    <record name="MenuClass"
            c:type="CajaMenuClass"
            glib:is-gtype-struct-for="Menu">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <class name="MenuItem"
           c:symbol-prefix="menu_item"
           c:type="CajaMenuItem"
           parent="GObject.Object"
           glib:type-name="CajaMenuItem"
           glib:get-type="caja_menu_item_get_type"
           glib:type-struct="MenuItemClass">
      <constructor name="new" c:identifier="caja_menu_item_new">
        <doc xml:space="preserve">Creates a new menu item that can be added to the toolbar or to a contextual menu.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly create #CajaMenuItem</doc>
          <type name="MenuItem" c:type="CajaMenuItem*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the identifier for the menu item</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">the user-visible label of the menu item</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="tip" transfer-ownership="none">
            <doc xml:space="preserve">the tooltip of the menu item</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="icon" transfer-ownership="none">
            <doc xml:space="preserve">the name of the icon to display in the menu item</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="list_free" c:identifier="caja_menu_item_list_free">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="item_list" transfer-ownership="none">
            <doc xml:space="preserve">a list of #CajaMenuItem</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="MenuItem"/>
            </type>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="activate" invoker="activate">
        <doc xml:space="preserve">emits the activate signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">pointer to a #CajaMenuItem</doc>
            <type name="MenuItem" c:type="CajaMenuItem*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <method name="activate" c:identifier="caja_menu_item_activate">
        <doc xml:space="preserve">emits the activate signal.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">pointer to a #CajaMenuItem</doc>
            <type name="MenuItem" c:type="CajaMenuItem*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_submenu" c:identifier="caja_menu_item_set_submenu">
        <doc xml:space="preserve">Attachs a menu to the given #CajaMenuItem.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="item" transfer-ownership="none">
            <doc xml:space="preserve">pointer to a #CajaMenuItem</doc>
            <type name="MenuItem" c:type="CajaMenuItem*"/>
          </instance-parameter>
          <parameter name="menu" transfer-ownership="none">
            <doc xml:space="preserve">pointer to a #CajaMenu to attach to the button</doc>
            <type name="Menu" c:type="CajaMenu*"/>
          </parameter>
        </parameters>
      </method>
      <property name="icon" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="menu" writable="1" transfer-ownership="none">
        <type name="Menu"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="priority" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="sensitive" writable="1" transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="tip" writable="1" transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="details">
        <type name="MenuItemDetails" c:type="CajaMenuItemDetails*"/>
      </field>
      <glib:signal name="activate" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="MenuItemClass"
            c:type="CajaMenuItemClass"
            glib:is-gtype-struct-for="MenuItem">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="activate">
        <callback name="activate">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="item" transfer-ownership="none">
              <doc xml:space="preserve">pointer to a #CajaMenuItem</doc>
              <type name="MenuItem" c:type="CajaMenuItem*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="MenuItemDetails" c:type="CajaMenuItemDetails" disguised="1">
    </record>
    <record name="MenuPrivate" c:type="CajaMenuPrivate" disguised="1">
    </record>
    <interface name="MenuProvider"
               c:symbol-prefix="menu_provider"
               c:type="CajaMenuProvider"
               glib:type-name="CajaMenuProvider"
               glib:get-type="caja_menu_provider_get_type"
               glib:type-struct="MenuProviderIface">
      <virtual-method name="get_background_items"
                      invoker="get_background_items">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided list of #CajaMenuItem</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MenuItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaMenuProvider</doc>
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the parent #GtkWidget window</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="current_folder" transfer-ownership="none">
            <doc xml:space="preserve">the folder for which background items are requested</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_file_items" invoker="get_file_items">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided list of #CajaMenuItem</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MenuItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaMenuProvider</doc>
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the parent #GtkWidget window</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="files" transfer-ownership="none">
            <doc xml:space="preserve">a list of #CajaFileInfo</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FileInfo"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="get_toolbar_items"
                      invoker="get_toolbar_items"
                      introspectable="0">
        <return-value>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="current_folder" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="emit_items_updated_signal"
              c:identifier="caja_menu_provider_emit_items_updated_signal">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_background_items"
              c:identifier="caja_menu_provider_get_background_items">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided list of #CajaMenuItem</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MenuItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaMenuProvider</doc>
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the parent #GtkWidget window</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="current_folder" transfer-ownership="none">
            <doc xml:space="preserve">the folder for which background items are requested</doc>
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_file_items"
              c:identifier="caja_menu_provider_get_file_items">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">the provided list of #CajaMenuItem</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="MenuItem"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaMenuProvider</doc>
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve">the parent #GtkWidget window</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="files" transfer-ownership="none">
            <doc xml:space="preserve">a list of #CajaFileInfo</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FileInfo"/>
            </type>
          </parameter>
        </parameters>
      </method>
      <method name="get_toolbar_items"
              c:identifier="caja_menu_provider_get_toolbar_items"
              introspectable="0">
        <return-value>
          <type name="GLib.List" c:type="GList*">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <type name="MenuProvider" c:type="CajaMenuProvider*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="current_folder" transfer-ownership="none">
            <type name="FileInfo" c:type="CajaFileInfo*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="items-updated" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </interface>
    <record name="MenuProviderIface"
            c:type="CajaMenuProviderIface"
            glib:is-gtype-struct-for="MenuProvider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_file_items">
        <callback name="get_file_items">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">the provided list of #CajaMenuItem</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="MenuItem"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaMenuProvider</doc>
              <type name="MenuProvider" c:type="CajaMenuProvider*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve">the parent #GtkWidget window</doc>
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="files" transfer-ownership="none">
              <doc xml:space="preserve">a list of #CajaFileInfo</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="FileInfo"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_background_items">
        <callback name="get_background_items">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">the provided list of #CajaMenuItem</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="MenuItem"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaMenuProvider</doc>
              <type name="MenuProvider" c:type="CajaMenuProvider*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <doc xml:space="preserve">the parent #GtkWidget window</doc>
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="current_folder" transfer-ownership="none">
              <doc xml:space="preserve">the folder for which background items are requested</doc>
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="get_toolbar_items" introspectable="0">
        <callback name="get_toolbar_items" introspectable="0">
          <return-value>
            <type name="GLib.List" c:type="GList*">
              <type name="gpointer" c:type="gpointer"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <type name="MenuProvider" c:type="CajaMenuProvider*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gtk.Widget" c:type="GtkWidget*"/>
            </parameter>
            <parameter name="current_folder" transfer-ownership="none">
              <type name="FileInfo" c:type="CajaFileInfo*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="OperationHandle" c:type="CajaOperationHandle" disguised="1">
    </record>
    <enumeration name="OperationResult"
                 glib:type-name="CajaOperationResult"
                 glib:get-type="caja_operation_result_get_type"
                 c:type="CajaOperationResult">
      <member name="complete"
              value="0"
              c:identifier="CAJA_OPERATION_COMPLETE"
              glib:nick="complete">
      </member>
      <member name="failed"
              value="1"
              c:identifier="CAJA_OPERATION_FAILED"
              glib:nick="failed">
      </member>
      <member name="in_progress"
              value="2"
              c:identifier="CAJA_OPERATION_IN_PROGRESS"
              glib:nick="in_progress">
      </member>
    </enumeration>
    <class name="PropertyPage"
           c:symbol-prefix="property_page"
           c:type="CajaPropertyPage"
           parent="GObject.Object"
           glib:type-name="CajaPropertyPage"
           glib:get-type="caja_property_page_get_type"
           glib:type-struct="PropertyPageClass">
      <constructor name="new" c:identifier="caja_property_page_new">
        <doc xml:space="preserve">Creates a new #CajaPropertyPage from page_widget.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly created #CajaPropertyPage</doc>
          <type name="PropertyPage" c:type="CajaPropertyPage*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <doc xml:space="preserve">the identifier for the property page</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="label" transfer-ownership="none">
            <doc xml:space="preserve">the user-visible label of the property page</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
          <parameter name="page" transfer-ownership="none">
            <doc xml:space="preserve">the property page to display</doc>
            <type name="Gtk.Widget" c:type="GtkWidget*"/>
          </parameter>
        </parameters>
      </constructor>
      <property name="label" writable="1" transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <property name="name"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="page" writable="1" transfer-ownership="none">
        <type name="Gtk.Widget"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="details">
        <type name="PropertyPageDetails" c:type="CajaPropertyPageDetails*"/>
      </field>
    </class>
    <record name="PropertyPageClass"
            c:type="CajaPropertyPageClass"
            glib:is-gtype-struct-for="PropertyPage">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="PropertyPageDetails"
            c:type="CajaPropertyPageDetails"
            disguised="1">
    </record>
    <interface name="PropertyPageProvider"
               c:symbol-prefix="property_page_provider"
               c:type="CajaPropertyPageProvider"
               glib:type-name="CajaPropertyPageProvider"
               glib:get-type="caja_property_page_provider_get_type"
               glib:type-struct="PropertyPageProviderIface">
      <virtual-method name="get_pages" invoker="get_pages">
        <doc xml:space="preserve">This function is called by Caja when it wants property page
items from the extension.

This function is called in the main thread before a property page
is shown, so it should return quickly.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GList of allocated #CajaPropertyPage items.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PropertyPage"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaPropertyPageProvider</doc>
            <type name="PropertyPageProvider"
                  c:type="CajaPropertyPageProvider*"/>
          </instance-parameter>
          <parameter name="files" transfer-ownership="none">
            <doc xml:space="preserve">a #GList of #CajaFileInfo</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FileInfo"/>
            </type>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_pages"
              c:identifier="caja_property_page_provider_get_pages">
        <doc xml:space="preserve">This function is called by Caja when it wants property page
items from the extension.

This function is called in the main thread before a property page
is shown, so it should return quickly.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">A #GList of allocated #CajaPropertyPage items.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="PropertyPage"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="provider" transfer-ownership="none">
            <doc xml:space="preserve">a #CajaPropertyPageProvider</doc>
            <type name="PropertyPageProvider"
                  c:type="CajaPropertyPageProvider*"/>
          </instance-parameter>
          <parameter name="files" transfer-ownership="none">
            <doc xml:space="preserve">a #GList of #CajaFileInfo</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="FileInfo"/>
            </type>
          </parameter>
        </parameters>
      </method>
    </interface>
    <record name="PropertyPageProviderIface"
            c:type="CajaPropertyPageProviderIface"
            glib:is-gtype-struct-for="PropertyPageProvider">
      <field name="g_iface">
        <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
      </field>
      <field name="get_pages">
        <callback name="get_pages">
          <return-value transfer-ownership="full">
            <doc xml:space="preserve">A #GList of allocated #CajaPropertyPage items.</doc>
            <type name="GLib.List" c:type="GList*">
              <type name="PropertyPage"/>
            </type>
          </return-value>
          <parameters>
            <parameter name="provider" transfer-ownership="none">
              <doc xml:space="preserve">a #CajaPropertyPageProvider</doc>
              <type name="PropertyPageProvider"
                    c:type="CajaPropertyPageProvider*"/>
            </parameter>
            <parameter name="files" transfer-ownership="none">
              <doc xml:space="preserve">a #GList of #CajaFileInfo</doc>
              <type name="GLib.List" c:type="GList*">
                <type name="FileInfo"/>
              </type>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <function name="file_info_create"
              c:identifier="caja_file_info_create"
              moved-to="FileInfo.create">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a #CajaFileInfo</doc>
        <type name="FileInfo" c:type="CajaFileInfo*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve">the location to create the file info for</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_info_create_for_uri"
              c:identifier="caja_file_info_create_for_uri"
              moved-to="FileInfo.create_for_uri">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a #CajaFileInfo</doc>
        <type name="FileInfo" c:type="CajaFileInfo*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">the URI to lookup the file info for</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_info_list_copy"
              c:identifier="caja_file_info_list_copy"
              moved-to="FileInfo.list_copy">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a copy of @files.
 Use #caja_file_info_list_free to free the list and unref its contents.</doc>
        <type name="GLib.List" c:type="GList*">
          <type name="FileInfo"/>
        </type>
      </return-value>
      <parameters>
        <parameter name="files" transfer-ownership="none">
          <doc xml:space="preserve">the files to copy</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FileInfo"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="file_info_list_free"
              c:identifier="caja_file_info_list_free"
              moved-to="FileInfo.list_free">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="files" transfer-ownership="none">
          <doc xml:space="preserve">a list created with
  #caja_file_info_list_copy</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="FileInfo"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="file_info_lookup"
              c:identifier="caja_file_info_lookup"
              moved-to="FileInfo.lookup">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a #CajaFileInfo</doc>
        <type name="FileInfo" c:type="CajaFileInfo*"/>
      </return-value>
      <parameters>
        <parameter name="location" transfer-ownership="none">
          <doc xml:space="preserve">the location to lookup the file info for</doc>
          <type name="Gio.File" c:type="GFile*"/>
        </parameter>
      </parameters>
    </function>
    <function name="file_info_lookup_for_uri"
              c:identifier="caja_file_info_lookup_for_uri"
              moved-to="FileInfo.lookup_for_uri">
      <return-value transfer-ownership="full">
        <doc xml:space="preserve">a #CajaFileInfo</doc>
        <type name="FileInfo" c:type="CajaFileInfo*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve">the URI to lookup the file info for</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="info_provider_update_complete_invoke"
              c:identifier="caja_info_provider_update_complete_invoke"
              moved-to="InfoProvider.update_complete_invoke">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="update_complete" transfer-ownership="none">
          <type name="GObject.Closure" c:type="GClosure*"/>
        </parameter>
        <parameter name="provider" transfer-ownership="none">
          <type name="InfoProvider" c:type="CajaInfoProvider*"/>
        </parameter>
        <parameter name="handle" transfer-ownership="none">
          <type name="OperationHandle" c:type="CajaOperationHandle*"/>
        </parameter>
        <parameter name="result" transfer-ownership="none">
          <type name="OperationResult" c:type="CajaOperationResult"/>
        </parameter>
      </parameters>
    </function>
    <function name="module_initialize" c:identifier="caja_module_initialize">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="module" transfer-ownership="none">
          <type name="GObject.TypeModule" c:type="GTypeModule*"/>
        </parameter>
      </parameters>
    </function>
    <function name="module_list_pyfiles"
              c:identifier="caja_module_list_pyfiles"
              introspectable="0">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="pyfiles" transfer-ownership="none">
          <type name="GLib.List" c:type="GList**">
            <type name="gpointer" c:type="gpointer"/>
          </type>
        </parameter>
      </parameters>
    </function>
    <function name="module_list_types" c:identifier="caja_module_list_types">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="types" transfer-ownership="none">
          <type name="GType" c:type="const GType**"/>
        </parameter>
        <parameter name="num_types" transfer-ownership="none">
          <type name="gint" c:type="int*"/>
        </parameter>
      </parameters>
    </function>
    <function name="module_shutdown" c:identifier="caja_module_shutdown">
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
    </function>
  </namespace>
</repository>
