<?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="GDesktopEnums" version="3.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <package name="gnome-desktop-3.0"/>
  <namespace name="GnomeDesktop"
             version="3.0"
             shared-library="libgnome-desktop-3.so.19"
             c:identifier-prefixes="Gnome"
             c:symbol-prefixes="gnome">
    <class name="BG"
           c:symbol-prefix="bg"
           c:type="GnomeBG"
           parent="GObject.Object"
           glib:type-name="GnomeBG"
           glib:get-type="gnome_bg_get_type"
           glib:type-struct="BGClass">
      <source-position filename="../libgnome-desktop/gnome-bg.h" line="49"/>
      <constructor name="new" c:identifier="gnome_bg_new">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="54"/>
        <return-value transfer-ownership="full">
          <type name="BG" c:type="GnomeBG*"/>
        </return-value>
      </constructor>
      <method name="changes_with_time"
              c:identifier="gnome_bg_changes_with_time">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="99"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="create_frame_thumbnail"
              c:identifier="gnome_bg_create_frame_thumbnail">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg.c"
             line="2258">Creates a thumbnail for a certain frame, where 'frame' is somewhat
vaguely defined as 'suitable point to show while single-stepping
through the slideshow'.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="100"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg.c"
               line="2265">the newly created thumbnail or
or NULL if frame_num is out of bounds.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="factory" transfer-ownership="none">
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="dest_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dest_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="frame_num" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_surface" c:identifier="gnome_bg_create_surface">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg.c"
             line="972">Create a surface that can be set as background for @window.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="80"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg.c"
               line="981">%NULL on error (e.g. out of X connections)</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg.c"
                 line="974">GnomeBG</doc>
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_thumbnail" c:identifier="gnome_bg_create_thumbnail">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="90"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg.c"
               line="1162">a #GdkPixbuf showing the background as a thumbnail</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="factory" transfer-ownership="none">
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="dest_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dest_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="draw" c:identifier="gnome_bg_draw">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="dest" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_filename" c:identifier="gnome_bg_get_filename">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="75"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_image_size" c:identifier="gnome_bg_get_image_size">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="84"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="factory" transfer-ownership="none">
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </parameter>
          <parameter name="best_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="best_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_placement" c:identifier="gnome_bg_get_placement">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="70"/>
        <return-value transfer-ownership="none">
          <type name="GDesktopEnums.BackgroundStyle"
                c:type="GDesktopBackgroundStyle"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rgba" c:identifier="gnome_bg_get_rgba">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="71"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="GDesktopEnums.BackgroundShading"
                  c:type="GDesktopBackgroundShading*"/>
          </parameter>
          <parameter name="primary" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
          <parameter name="secondary" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_multiple_sizes"
              c:identifier="gnome_bg_has_multiple_sizes">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="98"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_dark" c:identifier="gnome_bg_is_dark">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="95"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="dest_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="dest_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="load_from_preferences"
              c:identifier="gnome_bg_load_from_preferences">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="55"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_to_preferences"
              c:identifier="gnome_bg_save_to_preferences">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="57"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="settings" transfer-ownership="none">
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename" c:identifier="gnome_bg_set_filename">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="60"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_placement" c:identifier="gnome_bg_set_placement">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="62"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="placement" transfer-ownership="none">
            <type name="GDesktopEnums.BackgroundStyle"
                  c:type="GDesktopBackgroundStyle"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rgba" c:identifier="gnome_bg_set_rgba">
        <source-position filename="../libgnome-desktop/gnome-bg.h" line="64"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="bg" transfer-ownership="none">
            <type name="BG" c:type="GnomeBG*"/>
          </instance-parameter>
          <parameter name="type" transfer-ownership="none">
            <type name="GDesktopEnums.BackgroundShading"
                  c:type="GDesktopBackgroundShading"/>
          </parameter>
          <parameter name="primary" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
          <parameter name="secondary" transfer-ownership="none">
            <type name="Gdk.RGBA" c:type="GdkRGBA*"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="transitioned" when="last">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="BGClass"
            c:type="GnomeBGClass"
            disguised="1"
            glib:is-gtype-struct-for="BG">
      <source-position filename="../libgnome-desktop/gnome-bg.h" line="49"/>
    </record>
    <class name="BGCrossfade"
           c:symbol-prefix="bg_crossfade"
           c:type="GnomeBGCrossfade"
           parent="GObject.Object"
           glib:type-name="GnomeBGCrossfade"
           glib:get-type="gnome_bg_crossfade_get_type"
           glib:type-struct="BGCrossfadeClass">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="59"/>
      <constructor name="new" c:identifier="gnome_bg_crossfade_new">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="203">Creates a new object to manage crossfading a
window background between two #cairo_surface_ts.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="64"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-crossfade.c"
               line="211">the new #GnomeBGCrossfade</doc>
          <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="205">The width of the crossfading window</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="206">The height of the crossfading window</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="finished">
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="58"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fade" transfer-ownership="none">
            <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="is_started" c:identifier="gnome_bg_crossfade_is_started">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="506">This function reveals whether or not @fade is currently
running on a window.  See gnome_bg_crossfade_start() for
information on how to initiate a crossfade.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="71"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-crossfade.c"
               line="514">%TRUE if fading, or %FALSE if not fading</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="fade" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="508">a #GnomeBGCrossfade</doc>
            <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_end_surface"
              c:identifier="gnome_bg_crossfade_set_end_surface">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="313">Before initiating a crossfade with gnome_bg_crossfade_start()
a start and end surface have to be set.  This function sets
the surface shown at the end of the crossfade effect.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-crossfade.c"
               line="322">%TRUE if successful, or %FALSE if the surface
could not be copied.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="fade" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="315">a #GnomeBGCrossfade</doc>
            <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
          </instance-parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="316">The cairo surface to fade to</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_start_surface"
              c:identifier="gnome_bg_crossfade_set_start_surface">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="268">Before initiating a crossfade with gnome_bg_crossfade_start()
a start and end surface have to be set.  This function sets
the surface shown at the beginning of the crossfade effect.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-crossfade.c"
               line="277">%TRUE if successful, or %FALSE if the surface
could not be copied.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="fade" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="270">a #GnomeBGCrossfade</doc>
            <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
          </instance-parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="271">The cairo surface to fade from</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </method>
      <method name="start" c:identifier="gnome_bg_crossfade_start">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="458">This function initiates a quick crossfade between two surfaces on
the background of @window.  Before initiating the crossfade both
gnome_bg_crossfade_start() and gnome_bg_crossfade_end() need to
be called. If animations are disabled, the crossfade is skipped,
and the window background is set immediately to the end surface.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fade" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="460">a #GnomeBGCrossfade</doc>
            <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
          </instance-parameter>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="461">The #GdkWindow to draw crossfade on</doc>
            <type name="Gdk.Window" c:type="GdkWindow*"/>
          </parameter>
        </parameters>
      </method>
      <method name="stop" c:identifier="gnome_bg_crossfade_stop">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="524">This function stops any in progress crossfades that may be
happening.  It's harmless to call this function if @fade is
already stopped.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                         line="72"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="fade" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="526">a #GnomeBGCrossfade</doc>
            <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="height"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="164">When a crossfade is running, this is height of the fading
surface.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="width"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="150">When a crossfade is running, this is width of the fading
surface.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="BGCrossfadePrivate" c:type="GnomeBGCrossfadePrivate*"/>
      </field>
      <glib:signal name="finished" when="last">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-crossfade.c"
             line="177">When a crossfade finishes, @window will have a copy
of the end surface as its background, and this signal will
get emitted.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-crossfade.c"
                 line="180">the #GdkWindow the crossfade happend on.</doc>
            <type name="GObject.Object"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="BGCrossfadeClass"
            c:type="GnomeBGCrossfadeClass"
            glib:is-gtype-struct-for="BGCrossfade">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="59"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="finished">
        <callback name="finished">
          <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                           line="58"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="fade" transfer-ownership="none">
              <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
            </parameter>
            <parameter name="window" transfer-ownership="none">
              <type name="Gdk.Window" c:type="GdkWindow*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="BGCrossfadePrivate"
            c:type="GnomeBGCrossfadePrivate"
            disguised="1">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="43"/>
    </record>
    <class name="BGSlideShow"
           c:symbol-prefix="bg_slide_show"
           c:type="GnomeBGSlideShow"
           parent="GObject.Object"
           glib:type-name="GnomeBGSlideShow"
           glib:get-type="gnome_bg_slide_show_get_type"
           glib:type-struct="BGSlideShowClass">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="57"/>
      <constructor name="new" c:identifier="gnome_bg_slide_show_new">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="225">Creates a new object to manage a slide show.
window background between two #cairo_surface_ts.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="62"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-slide-show.c"
               line="232">the new #GnomeBGSlideShow</doc>
          <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="227">The filename of the slide show</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_current_slide"
              c:identifier="gnome_bg_slide_show_get_current_slide">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="501">Returns the current slides progress.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="80"/>
        <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"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="503">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="504">monitor width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="505">monitor height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="progress"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="506">slide progress</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="duration"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="507">slide duration</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="is_fixed"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="508">if slide is fixed</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="file1"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="509">first file in slide</doc>
            <type name="utf8" c:type="const char**"/>
          </parameter>
          <parameter name="file2"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="510">second file in slide</doc>
            <type name="utf8" c:type="const char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_has_multiple_sizes"
              c:identifier="gnome_bg_slide_show_get_has_multiple_sizes"
              glib:get-property="has-multiple-sizes">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="818">gets whether or not the slide show has multiple sizes for different monitors</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="92"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-slide-show.c"
               line="824">%TRUE if multiple sizes</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="820">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_num_slides"
              c:identifier="gnome_bg_slide_show_get_num_slides">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="832">Returns number of slides in slide show</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="93"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="834">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_slide" c:identifier="gnome_bg_slide_show_get_slide">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="565">Retrieves slide by frame number</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-slide-show.c"
               line="579">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="567">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
          <parameter name="frame_number" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="568">frame number</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="569">monitor width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="570">monitor height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="progress"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="571">slide progress</doc>
            <type name="gdouble" c:type="gdouble*"/>
          </parameter>
          <parameter name="duration"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="572">slide duration</doc>
            <type name="gdouble" c:type="double*"/>
          </parameter>
          <parameter name="is_fixed"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="573">if slide is fixed</doc>
            <type name="gboolean" c:type="gboolean*"/>
          </parameter>
          <parameter name="file1"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="574">first file in slide</doc>
            <type name="utf8" c:type="const char**"/>
          </parameter>
          <parameter name="file2"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="575">second file in slide</doc>
            <type name="utf8" c:type="const char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_start_time"
              c:identifier="gnome_bg_slide_show_get_start_time"
              glib:get-property="start-time">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="790">gets the start time of the slide show</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="90"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-slide-show.c"
               line="796">a timestamp</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="792">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_total_duration"
              c:identifier="gnome_bg_slide_show_get_total_duration"
              glib:get-property="total-duration">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="804">gets the total duration of the slide show</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="91"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-slide-show.c"
               line="810">a timestamp</doc>
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="806">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load" c:identifier="gnome_bg_slide_show_load" throws="1">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="709">Tries to load the slide show.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-bg-slide-show.c"
               line="716">%TRUE if successful</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="711">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_async" c:identifier="gnome_bg_slide_show_load_async">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-bg-slide-show.c"
             line="767">Tries to load the slide show asynchronously.</doc>
        <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                         line="66"/>
        <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"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="769">a #GnomeBGSlideShow</doc>
            <type name="BGSlideShow" c:type="GnomeBGSlideShow*"/>
          </instance-parameter>
          <parameter name="cancellable"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="770">a #GCancellable</doc>
            <type name="Gio.Cancellable" c:type="GCancellable*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="771">the callback</doc>
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-bg-slide-show.c"
                 line="772">user data</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </method>
      <property name="file"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gio.File"/>
      </property>
      <property name="has-multiple-sizes"
                transfer-ownership="none"
                getter="get_has_multiple_sizes">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="start-time"
                transfer-ownership="none"
                getter="get_start_time">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <property name="total-duration"
                transfer-ownership="none"
                getter="get_total_duration">
        <type name="gdouble" c:type="gdouble"/>
      </property>
      <field name="parent_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="BGSlideShowPrivate" c:type="GnomeBGSlideShowPrivate*"/>
      </field>
    </class>
    <record name="BGSlideShowClass"
            c:type="GnomeBGSlideShowClass"
            glib:is-gtype-struct-for="BGSlideShow">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="57"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="BGSlideShowPrivate"
            c:type="GnomeBGSlideShowPrivate"
            disguised="1">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="43"/>
    </record>
    <function-macro name="BG_CLASS"
                    c:identifier="GNOME_BG_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg.h" line="43"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_CROSSFADE"
                    c:identifier="GNOME_BG_CROSSFADE"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_CROSSFADE_CLASS"
                    c:identifier="GNOME_BG_CROSSFADE_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_CROSSFADE_GET_CLASS"
                    c:identifier="GNOME_BG_CROSSFADE_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_GET_CLASS"
                    c:identifier="GNOME_BG_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg.h" line="46"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_IS_SLIDE_SHOW"
                    c:identifier="GNOME_BG_IS_SLIDE_SHOW"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_IS_SLIDE_SHOW_CLASS"
                    c:identifier="GNOME_BG_IS_SLIDE_SHOW_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_SLIDE_SHOW"
                    c:identifier="GNOME_BG_SLIDE_SHOW"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="37"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_SLIDE_SHOW_CLASS"
                    c:identifier="GNOME_BG_SLIDE_SHOW_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="38"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="BG_SLIDE_SHOW_GET_CLASS"
                    c:identifier="GNOME_BG_SLIDE_SHOW_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-slide-show.h"
                       line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_IS_THUMBNAIL_FACTORY"
                    c:identifier="GNOME_DESKTOP_IS_THUMBNAIL_FACTORY"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="50"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_IS_THUMBNAIL_FACTORY_CLASS"
                    c:identifier="GNOME_DESKTOP_IS_THUMBNAIL_FACTORY_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="51"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_THUMBNAIL_FACTORY"
                    c:identifier="GNOME_DESKTOP_THUMBNAIL_FACTORY"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="48"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="DESKTOP_THUMBNAIL_FACTORY_CLASS"
                    c:identifier="GNOME_DESKTOP_THUMBNAIL_FACTORY_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="49"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="DesktopThumbnailFactory"
           c:symbol-prefix="desktop_thumbnail_factory"
           c:type="GnomeDesktopThumbnailFactory"
           parent="GObject.Object"
           glib:type-name="GnomeDesktopThumbnailFactory"
           glib:get-type="gnome_desktop_thumbnail_factory_get_type"
           glib:type-struct="DesktopThumbnailFactoryClass">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="65"/>
      <constructor name="new"
                   c:identifier="gnome_desktop_thumbnail_factory_new"
                   version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="744">Creates a new #GnomeDesktopThumbnailFactory.

This function must be called on the main thread and is non-blocking.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="70"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="752">a new #GnomeDesktopThumbnailFactory</doc>
          <type name="DesktopThumbnailFactory"
                c:type="GnomeDesktopThumbnailFactory*"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="746">The thumbnail size to use</doc>
            <type name="DesktopThumbnailSize"
                  c:type="GnomeDesktopThumbnailSize"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="can_thumbnail"
              c:identifier="gnome_desktop_thumbnail_factory_can_thumbnail"
              version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="920">Returns TRUE if this GnomeDesktopThumbnailFactory can (at least try) to thumbnail
this file. Thumbnails or files with failed thumbnails won't be thumbnailed.

Usage of this function is threadsafe and does blocking I/O.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="79"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="932">TRUE if the file can be thumbnailed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="922">a #GnomeDesktopThumbnailFactory</doc>
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="923">the uri of a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="924">the mime type of the file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="925">the mtime of the file</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_failed_thumbnail"
              c:identifier="gnome_desktop_thumbnail_factory_create_failed_thumbnail"
              version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="1250">Creates a failed thumbnail for the file so that we don't try
to re-thumbnail the file later.

Usage of this function is threadsafe and does blocking I/O.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="90"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1252">a #GnomeDesktopThumbnailFactory</doc>
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1253">the uri of a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1254">the modification time of the file</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="generate_thumbnail"
              c:identifier="gnome_desktop_thumbnail_factory_generate_thumbnail"
              version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="1055">Tries to generate a thumbnail for the specified file. If it succeeds
it returns a pixbuf that can be used as a thumbnail.

Usage of this function is threadsafe and does blocking I/O.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="83"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="1066">thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1057">a #GnomeDesktopThumbnailFactory</doc>
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1058">the uri of a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1059">the mime type of the file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="has_valid_failed_thumbnail"
              c:identifier="gnome_desktop_thumbnail_factory_has_valid_failed_thumbnail"
              version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="886">Tries to locate an failed thumbnail for the file specified. Writing
and looking for failed thumbnails is important to avoid to try to
thumbnail e.g. broken images several times.

Usage of this function is threadsafe and does blocking I/O.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="76"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="898">TRUE if there is a failed thumbnail for the file.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="888">a #GnomeDesktopThumbnailFactory</doc>
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="889">the uri of a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="890">the mtime of the file</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="lookup"
              c:identifier="gnome_desktop_thumbnail_factory_lookup"
              version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="860">Tries to locate an existing thumbnail for the file specified.

Usage of this function is threadsafe and does blocking I/O.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="72"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="870">The absolute path of the thumbnail, or %NULL if none exist.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="862">a #GnomeDesktopThumbnailFactory</doc>
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </instance-parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="863">the uri of a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="864">the mtime of the file</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <method name="save_thumbnail"
              c:identifier="gnome_desktop_thumbnail_factory_save_thumbnail"
              version="2.2">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="1216">Saves @thumbnail at the right place. If the save fails a
failed thumbnail is written.

Usage of this function is threadsafe and does blocking I/O.</doc>
        <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                         line="86"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="factory" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1218">a #GnomeDesktopThumbnailFactory</doc>
            <type name="DesktopThumbnailFactory"
                  c:type="GnomeDesktopThumbnailFactory*"/>
          </instance-parameter>
          <parameter name="thumbnail" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1219">the thumbnail as a pixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1220">the uri of a file</doc>
            <type name="utf8" c:type="const char*"/>
          </parameter>
          <parameter name="original_mtime" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
                 line="1221">the modification time of the original file</doc>
            <type name="glong" c:type="time_t"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="DesktopThumbnailFactoryPrivate"
              c:type="GnomeDesktopThumbnailFactoryPrivate*"/>
      </field>
    </class>
    <record name="DesktopThumbnailFactoryClass"
            c:type="GnomeDesktopThumbnailFactoryClass"
            glib:is-gtype-struct-for="DesktopThumbnailFactory">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="65"/>
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DesktopThumbnailFactoryPrivate"
            c:type="GnomeDesktopThumbnailFactoryPrivate"
            disguised="1">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="55"/>
    </record>
    <enumeration name="DesktopThumbnailSize"
                 c:type="GnomeDesktopThumbnailSize">
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="45"/>
      <member name="normal"
              value="0"
              c:identifier="GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL">
      </member>
      <member name="large"
              value="1"
              c:identifier="GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE">
      </member>
      <member name="xlarge"
              value="2"
              c:identifier="GNOME_DESKTOP_THUMBNAIL_SIZE_XLARGE">
      </member>
      <member name="xxlarge"
              value="3"
              c:identifier="GNOME_DESKTOP_THUMBNAIL_SIZE_XXLARGE">
      </member>
    </enumeration>
    <function-macro name="IDLE_MONITOR"
                    c:identifier="GNOME_IDLE_MONITOR"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="36"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IDLE_MONITOR_CLASS"
                    c:identifier="GNOME_IDLE_MONITOR_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="37"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IDLE_MONITOR_GET_CLASS"
                    c:identifier="GNOME_IDLE_MONITOR_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="40"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BG" c:identifier="GNOME_IS_BG" introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg.h" line="44"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BG_CLASS"
                    c:identifier="GNOME_IS_BG_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg.h" line="45"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BG_CROSSFADE"
                    c:identifier="GNOME_IS_BG_CROSSFADE"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_BG_CROSSFADE_CLASS"
                    c:identifier="GNOME_IS_BG_CROSSFADE_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-bg-crossfade.h"
                       line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IDLE_MONITOR"
                    c:identifier="GNOME_IS_IDLE_MONITOR"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="38"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_IDLE_MONITOR_CLASS"
                    c:identifier="GNOME_IS_IDLE_MONITOR_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="39"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PNP_IDS"
                    c:identifier="GNOME_IS_PNP_IDS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="30"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_PNP_IDS_CLASS"
                    c:identifier="GNOME_IS_PNP_IDS_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="31"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RR_CONFIG"
                    c:identifier="GNOME_IS_RR_CONFIG"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="117"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RR_CONFIG_CLASS"
                    c:identifier="GNOME_IS_RR_CONFIG_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="119"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RR_OUTPUT_INFO"
                    c:identifier="GNOME_IS_RR_OUTPUT_INFO"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="56"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RR_OUTPUT_INFO_CLASS"
                    c:identifier="GNOME_IS_RR_OUTPUT_INFO_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="58"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RR_SCREEN"
                    c:identifier="GNOME_IS_RR_SCREEN"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="102"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_RR_SCREEN_CLASS"
                    c:identifier="GNOME_IS_RR_SCREEN_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="104"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WALL_CLOCK"
                    c:identifier="GNOME_IS_WALL_CLOCK"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="41"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_WALL_CLOCK_CLASS"
                    c:identifier="GNOME_IS_WALL_CLOCK_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="42"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_XKB_INFO"
                    c:identifier="GNOME_IS_XKB_INFO"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="38"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="IS_XKB_INFO_CLASS"
                    c:identifier="GNOME_IS_XKB_INFO_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="39"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <class name="IdleMonitor"
           c:symbol-prefix="idle_monitor"
           c:type="GnomeIdleMonitor"
           parent="GObject.Object"
           glib:type-name="GnomeIdleMonitor"
           glib:get-type="gnome_idle_monitor_get_type"
           glib:type-struct="IdleMonitorClass">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="55"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="gnome_idle_monitor_new">
        <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                         line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-idle-monitor.c"
               line="343">a new #GnomeIdleMonitor that tracks the server-global
idletime for all devices.</doc>
          <type name="IdleMonitor" c:type="GnomeIdleMonitor*"/>
        </return-value>
      </constructor>
      <method name="add_idle_watch"
              c:identifier="gnome_idle_monitor_add_idle_watch">
        <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-idle-monitor.c"
               line="441">a watch id

Adds a watch for a specific idle time. The callback will be called
when the user has accumulated @interval_msec milliseconds of idle time.
This function will return an ID that can either be passed to
gnome_idle_monitor_remove_watch(), or can be used to tell idle time
watches apart if you have more than one.

Also note that this function will only care about positive transitions
(user's idle time exceeding a certain time). If you want to know about
when the user has become active, use
gnome_idle_monitor_add_user_active_watch().</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="433">A #GnomeIdleMonitor</doc>
            <type name="IdleMonitor" c:type="GnomeIdleMonitor*"/>
          </instance-parameter>
          <parameter name="interval_msec" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="434">The idletime interval, in milliseconds. It must be
    a strictly positive value (&gt; 0).</doc>
            <type name="guint64" c:type="guint64"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="2"
                     destroy="3">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="436">The callback to call when the user has
    accumulated @interval_msec milliseconds of idle time.</doc>
            <type name="IdleMonitorWatchFunc"
                  c:type="GnomeIdleMonitorWatchFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="438">The user data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="439">A #GDestroyNotify</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="add_user_active_watch"
              c:identifier="gnome_idle_monitor_add_user_active_watch">
        <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-idle-monitor.c"
               line="490">a watch id

Add a one-time watch to know when the user is active again.
Note that this watch is one-time and will de-activate after the
function is called, for efficiency purposes. It's most convenient
to call this when an idle watch, as added by
gnome_idle_monitor_add_idle_watch(), has triggered.</doc>
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="484">A #GnomeIdleMonitor</doc>
            <type name="IdleMonitor" c:type="GnomeIdleMonitor*"/>
          </instance-parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="notified"
                     closure="1"
                     destroy="2">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="485">The callback to call when the user is
    active again.</doc>
            <type name="IdleMonitorWatchFunc"
                  c:type="GnomeIdleMonitorWatchFunc"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="487">The user data to pass to the callback</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
          <parameter name="notify" transfer-ownership="none" scope="async">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="488">A #GDestroyNotify</doc>
            <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_idletime"
              c:identifier="gnome_idle_monitor_get_idletime">
        <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                         line="81"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-idle-monitor.c"
               line="565">The current idle time, in milliseconds</doc>
          <type name="guint64" c:type="guint64"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="563">A #GnomeIdleMonitor</doc>
            <type name="IdleMonitor" c:type="GnomeIdleMonitor*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="remove_watch"
              c:identifier="gnome_idle_monitor_remove_watch">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-idle-monitor.c"
             line="524">Removes an idle time watcher, previously added by
gnome_idle_monitor_add_idle_watch() or
gnome_idle_monitor_add_user_active_watch().</doc>
        <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="monitor" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="526">A #GnomeIdleMonitor</doc>
            <type name="IdleMonitor" c:type="GnomeIdleMonitor*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-idle-monitor.c"
                 line="527">A watch ID</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="IdleMonitorPrivate" c:type="GnomeIdleMonitorPrivate*"/>
      </field>
    </class>
    <record name="IdleMonitorClass"
            c:type="GnomeIdleMonitorClass"
            glib:is-gtype-struct-for="IdleMonitor">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="55"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="IdleMonitorPrivate"
            c:type="GnomeIdleMonitorPrivate"
            disguised="1">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="44"/>
    </record>
    <callback name="IdleMonitorWatchFunc" c:type="GnomeIdleMonitorWatchFunc">
      <source-position filename="../libgnome-desktop/gnome-idle-monitor.h"
                       line="59"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="monitor" transfer-ownership="none">
          <type name="IdleMonitor" c:type="GnomeIdleMonitor*"/>
        </parameter>
        <parameter name="id" transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   closure="2">
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </callback>
    <function-macro name="PNP_IDS"
                    c:identifier="GNOME_PNP_IDS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="28"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PNP_IDS_CLASS"
                    c:identifier="GNOME_PNP_IDS_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="29"/>
      <parameters>
        <parameter name="k">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="PNP_IDS_GET_CLASS"
                    c:identifier="GNOME_PNP_IDS_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="32"/>
      <parameters>
        <parameter name="o">
        </parameter>
      </parameters>
    </function-macro>
    <class name="PnpIds"
           c:symbol-prefix="pnp_ids"
           c:type="GnomePnpIds"
           parent="GObject.Object"
           glib:type-name="GnomePnpIds"
           glib:get-type="gnome_pnp_ids_get_type"
           glib:type-struct="PnpIdsClass">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="48"/>
      <constructor name="new" c:identifier="gnome_pnp_ids_new">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-pnp-ids.c"
             line="114">Returns a reference to a #GnomePnpIds object, or creates
a new one if none have been created.</doc>
        <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                         line="53"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-pnp-ids.c"
               line="120">a #GnomePnpIds object.</doc>
          <type name="PnpIds" c:type="GnomePnpIds*"/>
        </return-value>
      </constructor>
      <method name="get_pnp_id" c:identifier="gnome_pnp_ids_get_pnp_id">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-pnp-ids.c"
             line="42">Find the full manufacturer name for the given PNP ID.</doc>
        <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                         line="54"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-pnp-ids.c"
               line="49">a new string representing the manufacturer name,
or %NULL when not found.</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="pnp_ids" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-pnp-ids.c"
                 line="44">a #GnomePnpIds object</doc>
            <type name="PnpIds" c:type="GnomePnpIds*"/>
          </instance-parameter>
          <parameter name="pnp_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-pnp-ids.c"
                 line="45">the PNP ID to look for</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="PnpIdsPrivate" c:type="GnomePnpIdsPrivate*"/>
      </field>
    </class>
    <record name="PnpIdsClass"
            c:type="GnomePnpIdsClass"
            glib:is-gtype-struct-for="PnpIds">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="48"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="PnpIdsPrivate" c:type="GnomePnpIdsPrivate" disguised="1">
      <source-position filename="../libgnome-desktop/gnome-pnp-ids.h"
                       line="35"/>
    </record>
    <record name="RRCTM" c:type="GnomeRRCTM">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="80"/>
      <field name="matrix" writable="1">
        <array zero-terminated="0" fixed-size="9">
          <type name="guint64" c:type="guint64"/>
        </array>
      </field>
    </record>
    <class name="RRConfig"
           c:symbol-prefix="rr_config"
           c:type="GnomeRRConfig"
           parent="GObject.Object"
           glib:type-name="GnomeRRConfig"
           glib:get-type="gnome_rr_config_get_type"
           glib:type-struct="RRConfigClass">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="113"/>
      <constructor name="new_current"
                   c:identifier="gnome_rr_config_new_current"
                   throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="126"/>
        <return-value transfer-ownership="full">
          <type name="RRConfig" c:type="GnomeRRConfig*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="applicable"
              c:identifier="gnome_rr_config_applicable"
              throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="144"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="apply" c:identifier="gnome_rr_config_apply" throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="137"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="apply_persistent"
              c:identifier="gnome_rr_config_apply_persistent"
              throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="140"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_primary"
              c:identifier="gnome_rr_config_ensure_primary">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="135"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="equal" c:identifier="gnome_rr_config_equal">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="132"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config1" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
          <parameter name="config2" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_clone" c:identifier="gnome_rr_config_get_clone">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="148"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-config.c"
               line="674">whether at least two outputs are at (0, 0) offset and they
have the same width/height.  Those outputs are of course connected and on
(i.e. they have a CRTC assigned).</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_outputs" c:identifier="gnome_rr_config_get_outputs">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="150"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-config.c"
               line="661">the output configuration for this #GnomeRRConfig</doc>
          <array c:type="GnomeRROutputInfo**">
            <type name="RROutputInfo"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="load_current"
              c:identifier="gnome_rr_config_load_current"
              throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="128"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="gnome_rr_config_match">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="130"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="config1" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
          <parameter name="config2" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sanitize" c:identifier="gnome_rr_config_sanitize">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="134"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_clone" c:identifier="gnome_rr_config_set_clone">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="149"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="configuration" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </instance-parameter>
          <parameter name="clone" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="screen"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="RRScreen"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RRConfigPrivate" c:type="GnomeRRConfigPrivate*"/>
      </field>
    </class>
    <record name="RRConfigClass"
            c:type="GnomeRRConfigClass"
            glib:is-gtype-struct-for="RRConfig">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="113"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="RRConfigPrivate" c:type="GnomeRRConfigPrivate" disguised="1">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="100"/>
    </record>
    <record name="RRCrtc"
            c:type="GnomeRRCrtc"
            glib:type-name="GnomeRRCrtc"
            glib:get-type="gnome_rr_crtc_get_type"
            c:symbol-prefix="rr_crtc">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="37"/>
      <method name="can_drive_output"
              c:identifier="gnome_rr_crtc_can_drive_output">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="206"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_current_mode"
              c:identifier="gnome_rr_crtc_get_current_mode">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="208"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1874">the current mode of this crtc</doc>
          <type name="RRMode" c:type="GnomeRRMode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1873">a #GnomeRRCrtc</doc>
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_rotation"
              c:identifier="gnome_rr_crtc_get_current_rotation">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="212"/>
        <return-value transfer-ownership="none">
          <type name="RRRotation" c:type="GnomeRRRotation"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_gamma" c:identifier="gnome_rr_crtc_get_gamma">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="217"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="2204">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="2198">a #GnomeRRCrtc</doc>
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="red"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="2200">the minimum width</doc>
            <type name="gushort" c:type="unsigned short**"/>
          </parameter>
          <parameter name="green"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="2201">the maximum width</doc>
            <type name="gushort" c:type="unsigned short**"/>
          </parameter>
          <parameter name="blue"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="2202">the minimum height</doc>
            <type name="gushort" c:type="unsigned short**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gnome_rr_crtc_get_id">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="204"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_position" c:identifier="gnome_rr_crtc_get_position">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="209"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1912">a #GnomeRRCrtc</doc>
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rotations" c:identifier="gnome_rr_crtc_get_rotations">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="213"/>
        <return-value transfer-ownership="none">
          <type name="RRRotation" c:type="GnomeRRRotation"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_gamma" c:identifier="gnome_rr_crtc_set_gamma">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="222"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="red" transfer-ownership="none">
            <type name="gushort" c:type="unsigned short*"/>
          </parameter>
          <parameter name="green" transfer-ownership="none">
            <type name="gushort" c:type="unsigned short*"/>
          </parameter>
          <parameter name="blue" transfer-ownership="none">
            <type name="gushort" c:type="unsigned short*"/>
          </parameter>
        </parameters>
      </method>
      <method name="supports_rotation"
              c:identifier="gnome_rr_crtc_supports_rotation">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="214"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="crtc" transfer-ownership="none">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </instance-parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="RRRotation" c:type="GnomeRRRotation"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RRDpmsMode" c:type="GnomeRRDpmsMode">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="71"/>
      <member name="on" value="0" c:identifier="GNOME_RR_DPMS_ON">
      </member>
      <member name="standby" value="1" c:identifier="GNOME_RR_DPMS_STANDBY">
      </member>
      <member name="suspend" value="2" c:identifier="GNOME_RR_DPMS_SUSPEND">
      </member>
      <member name="off" value="3" c:identifier="GNOME_RR_DPMS_OFF">
      </member>
      <member name="unknown" value="4" c:identifier="GNOME_RR_DPMS_UNKNOWN">
      </member>
    </enumeration>
    <enumeration name="RRDpmsModeType"
                 glib:type-name="GnomeRRDpmsModeType"
                 glib:get-type="gnome_rr_dpms_mode_get_type"
                 c:type="GnomeRRDpmsModeType">
      <member name="on"
              value="0"
              c:identifier="GNOME_RR_DPMS_ON"
              glib:nick="on"
              glib:name="GNOME_RR_DPMS_ON">
      </member>
      <member name="standby"
              value="1"
              c:identifier="GNOME_RR_DPMS_STANDBY"
              glib:nick="standby"
              glib:name="GNOME_RR_DPMS_STANDBY">
      </member>
      <member name="suspend"
              value="2"
              c:identifier="GNOME_RR_DPMS_SUSPEND"
              glib:nick="suspend"
              glib:name="GNOME_RR_DPMS_SUSPEND">
      </member>
      <member name="off"
              value="3"
              c:identifier="GNOME_RR_DPMS_OFF"
              glib:nick="off"
              glib:name="GNOME_RR_DPMS_OFF">
      </member>
      <member name="unknown"
              value="4"
              c:identifier="GNOME_RR_DPMS_UNKNOWN"
              glib:nick="unknown"
              glib:name="GNOME_RR_DPMS_UNKNOWN">
      </member>
    </enumeration>
    <enumeration name="RRError"
                 c:type="GnomeRRError"
                 glib:error-domain="gnome-rr-error-quark">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="96"/>
      <member name="unknown" value="0" c:identifier="GNOME_RR_ERROR_UNKNOWN">
      </member>
      <member name="no_randr_extension"
              value="1"
              c:identifier="GNOME_RR_ERROR_NO_RANDR_EXTENSION">
      </member>
      <member name="randr_error"
              value="2"
              c:identifier="GNOME_RR_ERROR_RANDR_ERROR">
      </member>
      <member name="bounds_error"
              value="3"
              c:identifier="GNOME_RR_ERROR_BOUNDS_ERROR">
      </member>
      <member name="crtc_assignment"
              value="4"
              c:identifier="GNOME_RR_ERROR_CRTC_ASSIGNMENT">
      </member>
      <member name="no_matching_config"
              value="5"
              c:identifier="GNOME_RR_ERROR_NO_MATCHING_CONFIG">
      </member>
      <member name="no_dpms_extension"
              value="6"
              c:identifier="GNOME_RR_ERROR_NO_DPMS_EXTENSION">
      </member>
    </enumeration>
    <record name="RRMode"
            c:type="GnomeRRMode"
            glib:type-name="GnomeRRMode"
            glib:get-type="gnome_rr_mode_get_type"
            c:symbol-prefix="rr_mode">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="38"/>
      <method name="get_freq" c:identifier="gnome_rr_mode_get_freq">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="198"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_freq_f" c:identifier="gnome_rr_mode_get_freq_f">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="199"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_height" c:identifier="gnome_rr_mode_get_height">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="197"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gnome_rr_mode_get_id">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="195"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_interlaced"
              c:identifier="gnome_rr_mode_get_is_interlaced">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="201"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_tiled" c:identifier="gnome_rr_mode_get_is_tiled">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="2090">Returns TRUE if this mode is a tiled
mode created for span a tiled monitor.</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="200"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="2092">a #GnomeRRMode</doc>
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_width" c:identifier="gnome_rr_mode_get_width">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="196"/>
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
        <parameters>
          <instance-parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <record name="RROutput"
            c:type="GnomeRROutput"
            glib:type-name="GnomeRROutput"
            glib:get-type="gnome_rr_output_get_type"
            c:symbol-prefix="rr_output">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="36"/>
      <method name="can_clone" c:identifier="gnome_rr_output_can_clone">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="183"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="clone" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_backlight"
              c:identifier="gnome_rr_output_get_backlight">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="167"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1594">The currently set backlight brightness</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_crtc" c:identifier="gnome_rr_output_get_crtc">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="178"/>
        <return-value transfer-ownership="none">
          <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1684">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_current_mode"
              c:identifier="gnome_rr_output_get_current_mode">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="177"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1733">the current mode of this output</doc>
          <type name="RRMode" c:type="GnomeRRMode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1732">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="gnome_rr_output_get_display_name">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="156"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_edid_data"
              c:identifier="gnome_rr_output_get_edid_data">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="157"/>
        <return-value transfer-ownership="none">
          <type name="guint8" c:type="const guint8*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="size" transfer-ownership="none">
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_id" c:identifier="gnome_rr_output_get_id">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="154"/>
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_ids_from_edid"
              c:identifier="gnome_rr_output_get_ids_from_edid">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="159"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1546">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="vendor"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="char**"/>
          </parameter>
          <parameter name="product"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="char**"/>
          </parameter>
          <parameter name="serial"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="utf8" c:type="char**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_is_primary"
              c:identifier="gnome_rr_output_get_is_primary">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="189"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_is_underscanning"
              c:identifier="gnome_rr_output_get_is_underscanning">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="190"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_min_backlight_step"
              c:identifier="gnome_rr_output_get_min_backlight_step">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="168"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1607">The minimum backlight step available in percent</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gnome_rr_output_get_name">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="155"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_physical_size"
              c:identifier="gnome_rr_output_get_physical_size">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="163"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1566">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="width_mm"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height_mm"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_position" c:identifier="gnome_rr_output_get_position">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="180"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1762">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_possible_crtcs"
              c:identifier="gnome_rr_output_get_possible_crtcs">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="176"/>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRCrtc**">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1697">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preferred_mode"
              c:identifier="gnome_rr_output_get_preferred_mode">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="186"/>
        <return-value transfer-ownership="none">
          <type name="RRMode" c:type="GnomeRRMode*"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1788">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_builtin_display"
              c:identifier="gnome_rr_output_is_builtin_display">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="179"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_modes" c:identifier="gnome_rr_output_list_modes">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="185"/>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRMode**">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1800">a #GnomeRROutput</doc>
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_backlight"
              c:identifier="gnome_rr_output_set_backlight"
              throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="169"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1621">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1619">the absolute value which is 0 &gt;= this &lt;= 100</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color_transform"
              c:identifier="gnome_rr_output_set_color_transform"
              throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="172"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="value" transfer-ownership="none">
            <type name="RRCTM" c:type="GnomeRRCTM"/>
          </parameter>
        </parameters>
      </method>
      <method name="supports_color_transform"
              c:identifier="gnome_rr_output_supports_color_transform">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="192"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="const GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="supports_mode"
              c:identifier="gnome_rr_output_supports_mode">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="187"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="supports_underscanning"
              c:identifier="gnome_rr_output_supports_underscanning">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="191"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="RROutputInfo"
           c:symbol-prefix="rr_output_info"
           c:type="GnomeRROutputInfo"
           parent="GObject.Object"
           glib:type-name="GnomeRROutputInfo"
           glib:get-type="gnome_rr_output_info_get_type"
           glib:type-struct="RROutputInfoClass">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="52"/>
      <method name="get_aspect_ratio"
              c:identifier="gnome_rr_output_info_get_aspect_ratio">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="84"/>
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_display_name"
              c:identifier="gnome_rr_output_info_get_display_name">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="85"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-output-info.c"
               line="473">the display name of this output</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_geometry"
              c:identifier="gnome_rr_output_info_get_geometry">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr-output-info.c"
             line="166">Get the geometry for the monitor connected to the specified output.
If the monitor is a tiled monitor, it returns the geometry for the complete monitor.</doc>
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="70"/>
        <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"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="168">a #GnomeRROutputInfo</doc>
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     optional="1"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gnome_rr_output_info_get_name">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="65"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-output-info.c"
               line="72">the output name</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preferred_height"
              c:identifier="gnome_rr_output_info_get_preferred_height">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="91"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_preferred_width"
              c:identifier="gnome_rr_output_info_get_preferred_width">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="90"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_primary"
              c:identifier="gnome_rr_output_info_get_primary">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="87"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_product"
              c:identifier="gnome_rr_output_info_get_product">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="82"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_refresh_rate"
              c:identifier="gnome_rr_output_info_get_refresh_rate">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="73"/>
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_rotation"
              c:identifier="gnome_rr_output_info_get_rotation">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="76"/>
        <return-value transfer-ownership="none">
          <type name="RRRotation" c:type="GnomeRRRotation"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_serial" c:identifier="gnome_rr_output_info_get_serial">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="83"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_underscanning"
              c:identifier="gnome_rr_output_info_get_underscanning">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="93"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_vendor" c:identifier="gnome_rr_output_info_get_vendor">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="81"/>
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="437">a #GnomeRROutputInfo</doc>
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_active" c:identifier="gnome_rr_output_info_is_active">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-output-info.c"
               line="84">whether there is a CRTC assigned to this output (i.e. a signal is being sent to it)</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_connected"
              c:identifier="gnome_rr_output_info_is_connected">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="80"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-output-info.c"
               line="426">whether the output is physically connected to a monitor</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="is_primary_tile"
              c:identifier="gnome_rr_output_info_is_primary_tile">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="96"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr-output-info.c"
               line="529">%TRUE if the specified output is connected to
the primary tile of a monitor or to an untiled monitor,
%FALSE if the output is connected to a secondary tile.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="527">a #GnomeRROutputInfo</doc>
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_active" c:identifier="gnome_rr_output_info_set_active">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="68"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="active" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_geometry"
              c:identifier="gnome_rr_output_info_set_geometry">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr-output-info.c"
             line="281">Set the geometry for the monitor connected to the specified output.
If the monitor is a tiled monitor, it sets the geometry for the complete monitor.</doc>
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="71"/>
        <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"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="283">a #GnomeRROutputInfo</doc>
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="x" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="284">x offset for monitor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="285">y offset for monitor</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="width" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="286">monitor width</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr-output-info.c"
                 line="287">monitor height</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_primary"
              c:identifier="gnome_rr_output_info_set_primary">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="88"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="primary" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_refresh_rate"
              c:identifier="gnome_rr_output_info_set_refresh_rate">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="rate" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_rotation"
              c:identifier="gnome_rr_output_info_set_rotation">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="77"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="RRRotation" c:type="GnomeRRRotation"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_underscanning"
              c:identifier="gnome_rr_output_info_set_underscanning">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="94"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="underscanning" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="supports_rotation"
              c:identifier="gnome_rr_output_info_supports_rotation">
        <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                         line="78"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </instance-parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="RRRotation" c:type="GnomeRRRotation"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RROutputInfoPrivate" c:type="GnomeRROutputInfoPrivate*"/>
      </field>
    </class>
    <record name="RROutputInfoClass"
            c:type="GnomeRROutputInfoClass"
            glib:is-gtype-struct-for="RROutputInfo">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="52"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="RROutputInfoPrivate"
            c:type="GnomeRROutputInfoPrivate"
            disguised="1">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="39"/>
    </record>
    <bitfield name="RRRotation" c:type="GnomeRRRotation">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="63"/>
      <member name="rotation_next"
              value="0"
              c:identifier="GNOME_RR_ROTATION_NEXT">
      </member>
      <member name="rotation_0" value="1" c:identifier="GNOME_RR_ROTATION_0">
      </member>
      <member name="rotation_90" value="2" c:identifier="GNOME_RR_ROTATION_90">
      </member>
      <member name="rotation_180"
              value="4"
              c:identifier="GNOME_RR_ROTATION_180">
      </member>
      <member name="rotation_270"
              value="8"
              c:identifier="GNOME_RR_ROTATION_270">
      </member>
      <member name="reflect_x" value="16" c:identifier="GNOME_RR_REFLECT_X">
      </member>
      <member name="reflect_y" value="32" c:identifier="GNOME_RR_REFLECT_Y">
      </member>
    </bitfield>
    <class name="RRScreen"
           c:symbol-prefix="rr_screen"
           c:type="GnomeRRScreen"
           parent="GObject.Object"
           glib:type-name="GnomeRRScreen"
           glib:get-type="gnome_rr_screen_get_type"
           glib:type-struct="RRScreenClass">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="52"/>
      <implements name="Gio.AsyncInitable"/>
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="gnome_rr_screen_new" throws="1">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="996">Creates a unique #GnomeRRScreen instance for the specified @screen.</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="121"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1003">a unique #GnomeRRScreen instance, specific to the @screen, or NULL
if this could not be created, for instance if the driver does not support
Xrandr 1.2.  Each #GdkScreen thus has a single instance of #GnomeRRScreen.</doc>
          <type name="RRScreen" c:type="GnomeRRScreen*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="998">the #GdkScreen on which to operate</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_finish"
                   c:identifier="gnome_rr_screen_new_finish"
                   throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="126"/>
        <return-value transfer-ownership="full">
          <type name="RRScreen" c:type="GnomeRRScreen*"/>
        </return-value>
        <parameters>
          <parameter name="result" transfer-ownership="none">
            <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
          </parameter>
        </parameters>
      </constructor>
      <function name="new_async" c:identifier="gnome_rr_screen_new_async">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="123"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="callback"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1"
                     scope="async"
                     closure="2">
            <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
          </parameter>
          <parameter name="user_data"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </function>
      <virtual-method name="changed">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="49"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="output_connected">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="50"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <virtual-method name="output_disconnected">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="51"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <method name="get_crtc_by_id"
              c:identifier="gnome_rr_screen_get_crtc_by_id">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="132"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1263">the CRTC identified by @id</doc>
          <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_dpms_mode"
              c:identifier="gnome_rr_screen_get_dpms_mode"
              glib:get-property="dpms-mode"
              throws="1">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="146"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="mode"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1116">The current #GnomeRRDpmsMode of this screen</doc>
            <type name="RRDpmsMode" c:type="GnomeRRDpmsMode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_output_by_id"
              c:identifier="gnome_rr_screen_get_output_by_id">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="136"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1289">the output identified by @id</doc>
          <type name="RROutput" c:type="GnomeRROutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_output_by_name"
              c:identifier="gnome_rr_screen_get_output_by_name">
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="138"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1660">the output identified by @name</doc>
          <type name="RROutput" c:type="GnomeRROutput*"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="const char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ranges" c:identifier="gnome_rr_screen_get_ranges">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1056">Get the ranges of the screen</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="140"/>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1058">a #GnomeRRScreen</doc>
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="min_width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1059">the minimum width</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="max_width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1060">the maximum width</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="min_height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1061">the minimum height</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="max_height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1062">the maximum height</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_clone_modes"
              c:identifier="gnome_rr_screen_list_clone_modes">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1212">List available XRandR clone modes</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="131"/>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRMode**">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_crtcs" c:identifier="gnome_rr_screen_list_crtcs">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1228">List all CRTCs</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="129"/>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRCrtc**">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_modes" c:identifier="gnome_rr_screen_list_modes">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1196">List available XRandR modes</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="130"/>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRMode**">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="list_outputs" c:identifier="gnome_rr_screen_list_outputs">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1244">List all outputs</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="128"/>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRROutput**">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </array>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="refresh" c:identifier="gnome_rr_screen_refresh" throws="1">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1092">Refreshes the screen configuration, and calls the screen's callback if it
exists and if the screen's configuration changed.</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="134"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-rr.c"
               line="1100">TRUE if the screen's configuration changed; otherwise, the
function returns FALSE and a NULL error if the configuration didn't change,
or FALSE and a non-NULL error if there was an error while refreshing the
configuration.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="1094">a #GnomeRRScreen</doc>
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="set_dpms_mode"
              c:identifier="gnome_rr_screen_set_dpms_mode"
              glib:set-property="dpms-mode"
              throws="1">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="1156">This method also disables the DPMS timeouts.</doc>
        <source-position filename="../libgnome-desktop/gnome-rr.h" line="149"/>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </instance-parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="RRDpmsMode" c:type="GnomeRRDpmsMode"/>
          </parameter>
        </parameters>
      </method>
      <property name="dpms-mode"
                writable="1"
                transfer-ownership="none"
                setter="set_dpms_mode"
                getter="get_dpms_mode">
        <type name="RRDpmsModeType"/>
      </property>
      <property name="gdk-screen"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="Gdk.Screen"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="RRScreenPrivate" c:type="GnomeRRScreenPrivate*"/>
      </field>
      <glib:signal name="changed" when="first" no-recurse="1" no-hooks="1">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="output-connected"
                   when="first"
                   no-recurse="1"
                   no-hooks="1">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="923">This signal is emitted when a display device is connected to a
port, or a port is hotplugged with an active output. The latter
can happen if a laptop is docked, and the dock provides a new
active output.

The @output value is not a #GObject. The returned @output value can
only assume to be valid during the emission of the signal (i.e. within
your signal handler only), as it may change later when the @screen
is modified due to an event from the X server, or due to another
place in the application modifying the @screen and the @output.
Therefore, deal with changes to the @output right in your signal
handler, instead of keeping the @output reference for an async or
idle function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="926">the #GnomeRROutput that was connected</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="output-disconnected"
                   when="first"
                   no-recurse="1"
                   no-hooks="1">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="952">This signal is emitted when a display device is disconnected from
a port, or a port output is hot-unplugged. The latter can happen
if a laptop is undocked, and the dock provided the output.

The @output value is not a #GObject. The returned @output value can
only assume to be valid during the emission of the signal (i.e. within
your signal handler only), as it may change later when the @screen
is modified due to an event from the X server, or due to another
place in the application modifying the @screen and the @output.
Therefore, deal with changes to the @output right in your signal
handler, instead of keeping the @output reference for an async or
idle function.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output"
                     transfer-ownership="none"
                     nullable="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-rr.c"
                 line="955">the #GnomeRROutput that was disconnected</doc>
            <type name="gpointer" c:type="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RRScreenClass"
            c:type="GnomeRRScreenClass"
            glib:is-gtype-struct-for="RRScreen">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="52"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <source-position filename="../libgnome-desktop/gnome-rr.h"
                           line="49"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="RRScreen" c:type="GnomeRRScreen*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="output_connected">
        <callback name="output_connected">
          <source-position filename="../libgnome-desktop/gnome-rr.h"
                           line="50"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="RRScreen" c:type="GnomeRRScreen*"/>
            </parameter>
            <parameter name="output" transfer-ownership="none">
              <type name="RROutput" c:type="GnomeRROutput*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="output_disconnected">
        <callback name="output_disconnected">
          <source-position filename="../libgnome-desktop/gnome-rr.h"
                           line="51"/>
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="screen" transfer-ownership="none">
              <type name="RRScreen" c:type="GnomeRRScreen*"/>
            </parameter>
            <parameter name="output" transfer-ownership="none">
              <type name="RROutput" c:type="GnomeRROutput*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
    </record>
    <record name="RRScreenPrivate" c:type="GnomeRRScreenPrivate" disguised="1">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="35"/>
    </record>
    <function-macro name="RR_CONFIG"
                    c:identifier="GNOME_RR_CONFIG"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="116"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_CONFIG_CLASS"
                    c:identifier="GNOME_RR_CONFIG_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="118"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_CONFIG_GET_CLASS"
                    c:identifier="GNOME_RR_CONFIG_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="120"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <constant name="RR_CONNECTOR_TYPE_PANEL"
              value="Panel"
              c:type="GNOME_RR_CONNECTOR_TYPE_PANEL">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="98"/>
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <function-macro name="RR_OUTPUT_INFO"
                    c:identifier="GNOME_RR_OUTPUT_INFO"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="55"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_OUTPUT_INFO_CLASS"
                    c:identifier="GNOME_RR_OUTPUT_INFO_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="57"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_OUTPUT_INFO_GET_CLASS"
                    c:identifier="GNOME_RR_OUTPUT_INFO_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr-config.h"
                       line="59"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_SCREEN"
                    c:identifier="GNOME_RR_SCREEN"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="101"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_SCREEN_CLASS"
                    c:identifier="GNOME_RR_SCREEN_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="103"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="RR_SCREEN_GET_CLASS"
                    c:identifier="GNOME_RR_SCREEN_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-rr.h" line="105"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WALL_CLOCK"
                    c:identifier="GNOME_WALL_CLOCK"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="39"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WALL_CLOCK_CLASS"
                    c:identifier="GNOME_WALL_CLOCK_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="40"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="WALL_CLOCK_GET_CLASS"
                    c:identifier="GNOME_WALL_CLOCK_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="43"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="WallClock"
           c:symbol-prefix="wall_clock"
           c:type="GnomeWallClock"
           parent="GObject.Object"
           glib:type-name="GnomeWallClock"
           glib:get-type="gnome_wall_clock_get_type"
           glib:type-struct="WallClockClass">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="59"/>
      <constructor name="new" c:identifier="gnome_wall_clock_new">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-wall-clock.c"
             line="476">Creates a new #GnomeWallClock</doc>
        <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                         line="65"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-wall-clock.c"
               line="481">the new clock</doc>
          <type name="WallClock" c:type="GnomeWallClock*"/>
        </return-value>
      </constructor>
      <method name="get_clock"
              c:identifier="gnome_wall_clock_get_clock"
              glib:get-property="clock">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-wall-clock.c"
             line="489">Returns the string representing the current time of this clock
according to the user settings.</doc>
        <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                         line="67"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-wall-clock.c"
               line="496">the time of the clock as a string.
     This string points to internally allocated storage and
     must not be freed, modified or stored.</doc>
          <type name="utf8" c:type="const char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="clock" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-wall-clock.c"
                 line="491">a #GnomeWallClock</doc>
            <type name="WallClock" c:type="GnomeWallClock*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_timezone"
              c:identifier="gnome_wall_clock_get_timezone"
              glib:get-property="timezone">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-wall-clock.c"
             line="506">Returns the current local time zone used by this clock.</doc>
        <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                         line="69"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-wall-clock.c"
               line="512">the #GTimeZone of the clock.</doc>
          <type name="GLib.TimeZone" c:type="GTimeZone*"/>
        </return-value>
        <parameters>
          <instance-parameter name="clock" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-wall-clock.c"
                 line="508">a #GnomeWallClock</doc>
            <type name="WallClock" c:type="GnomeWallClock*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="string_for_datetime"
              c:identifier="gnome_wall_clock_string_for_datetime">
        <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                         line="71"/>
        <return-value transfer-ownership="full" skip="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-wall-clock.c"
               line="311">a newly allocated string representing the date &amp; time
passed, with the options applied.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="WallClock" c:type="GnomeWallClock*"/>
          </instance-parameter>
          <parameter name="now" transfer-ownership="none">
            <type name="GLib.DateTime" c:type="GDateTime*"/>
          </parameter>
          <parameter name="clock_format" transfer-ownership="none">
            <type name="GDesktopEnums.ClockFormat"
                  c:type="GDesktopClockFormat"/>
          </parameter>
          <parameter name="show_weekday" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="show_full_date" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
          <parameter name="show_seconds" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <property name="clock" transfer-ownership="none" getter="get_clock">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-wall-clock.c"
             line="166">A formatted string representing the current clock display.</doc>
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="time-only" writable="1" transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-wall-clock.c"
             line="192">If %TRUE, the formatted clock will never include a date or the
day of the week, irrespective of configuration.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="timezone"
                transfer-ownership="none"
                getter="get_timezone">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-wall-clock.c"
             line="179">The timezone used for this clock</doc>
        <type name="GLib.TimeZone"/>
      </property>
      <field name="parent_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="WallClockPrivate" c:type="GnomeWallClockPrivate*"/>
      </field>
    </class>
    <record name="WallClockClass"
            c:type="GnomeWallClockClass"
            glib:is-gtype-struct-for="WallClock">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="59"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="WallClockPrivate"
            c:type="GnomeWallClockPrivate"
            disguised="1">
      <source-position filename="../libgnome-desktop/gnome-wall-clock.h"
                       line="45"/>
    </record>
    <function-macro name="XKB_INFO"
                    c:identifier="GNOME_XKB_INFO"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="36"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="XKB_INFO_CLASS"
                    c:identifier="GNOME_XKB_INFO_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="37"/>
      <parameters>
        <parameter name="klass">
        </parameter>
      </parameters>
    </function-macro>
    <function-macro name="XKB_INFO_GET_CLASS"
                    c:identifier="GNOME_XKB_INFO_GET_CLASS"
                    introspectable="0">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="40"/>
      <parameters>
        <parameter name="obj">
        </parameter>
      </parameters>
    </function-macro>
    <class name="XkbInfo"
           c:symbol-prefix="xkb_info"
           c:type="GnomeXkbInfo"
           parent="GObject.Object"
           glib:type-name="GnomeXkbInfo"
           glib:get-type="gnome_xkb_info_get_type"
           glib:type-struct="XkbInfoClass">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="56"/>
      <constructor name="new" c:identifier="gnome_xkb_info_new">
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="61"/>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="846">a new #GnomeXkbInfo instance.</doc>
          <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
        </return-value>
      </constructor>
      <method name="description_for_group"
              c:identifier="gnome_xkb_info_description_for_group"
              version="3.8">
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="70"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="915">the translated description for the group @group_id.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="912">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="group_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="913">identifier for group</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="description_for_option"
              c:identifier="gnome_xkb_info_description_for_option"
              version="3.6">
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="74"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="982">the translated description for the option @id.</doc>
          <type name="utf8" c:type="const gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="978">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="group_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="979">identifier for group containing the option</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="980">option identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_all_layouts"
              c:identifier="gnome_xkb_info_get_all_layouts"
              version="3.6">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="854">Returns a list of all layout identifiers we know about.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="62"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="860">the list
of layout names. The caller takes ownership of the #GList but not
of the strings themselves, those are internally allocated and must
not be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="856">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_all_option_groups"
              c:identifier="gnome_xkb_info_get_all_option_groups"
              version="3.6">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="882">Returns a list of all option group identifiers we know about.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="69"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="888">the list
of option group ids. The caller takes ownership of the #GList but
not of the strings themselves, those are internally allocated and
must not be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="884">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_languages_for_layout"
              c:identifier="gnome_xkb_info_get_languages_for_layout"
              version="3.18">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="1212">Returns a list of all languages supported by a layout, given by
@layout_id.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="81"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="1220">the list of
ISO 639 code strings. The caller takes ownership of the #GList but
not of the strings themselves, those are internally allocated and
must not be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1214">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="layout_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1215">a layout identifier</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_layout_info"
              c:identifier="gnome_xkb_info_get_layout_info"
              version="3.6">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="1013">Retrieves information about a layout. Both @display_name and
@short_name are suitable to show in UIs and might be localized if
translations are available.

Some layouts don't provide a short name (2 or 3 letters) or don't
specify a XKB variant, in those cases @short_name or @xkb_variant
are empty strings, i.e. "".

If the given layout doesn't exist the return value is %FALSE and
all the (out) parameters are set to %NULL.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="63"/>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="1037">%TRUE if the layout exists or %FALSE otherwise.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1015">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1016">layout's identifier about which to retrieve the info</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
          <parameter name="display_name"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1017">location to store
the layout's display name, or %NULL</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="short_name"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1019">location to store
the layout's short name, or %NULL</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="xkb_layout"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1021">location to store
the layout's XKB name, or %NULL</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
          <parameter name="xkb_variant"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="none"
                     nullable="1"
                     optional="1"
                     allow-none="1">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1023">location to store
the layout's XKB variant, or %NULL</doc>
            <type name="utf8" c:type="const gchar**"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_layouts_for_country"
              c:identifier="gnome_xkb_info_get_layouts_for_country"
              version="3.8">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="1155">Returns a list of all layout identifiers we know about for
@country_code.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="79"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="1163">the list
of layout ids. The caller takes ownership of the #GList but not of
the strings themselves, those are internally allocated and must not
be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1157">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="country_code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1158">an ISO 3166 code string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_layouts_for_language"
              c:identifier="gnome_xkb_info_get_layouts_for_language"
              version="3.8">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="1108">Returns a list of all layout identifiers we know about for
@language_code.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="77"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="1116">the list
of layout ids. The caller takes ownership of the #GList but not of
the strings themselves, those are internally allocated and must not
be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1110">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="language_code" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="1111">an ISO 639 code string</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_options_for_group"
              c:identifier="gnome_xkb_info_get_options_for_group"
              version="3.6">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-xkb-info.c"
             line="940">Returns a list of all option identifiers we know about for group
@group_id.</doc>
        <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                         line="72"/>
        <return-value transfer-ownership="container">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-xkb-info.c"
               line="948">the list
of option ids. The caller takes ownership of the #GList but not of
the strings themselves, those are internally allocated and must not
be modified.</doc>
          <type name="GLib.List" c:type="GList*">
            <type name="utf8"/>
          </type>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="942">a #GnomeXkbInfo</doc>
            <type name="XkbInfo" c:type="GnomeXkbInfo*"/>
          </instance-parameter>
          <parameter name="group_id" transfer-ownership="none">
            <doc xml:space="preserve"
                 filename="../libgnome-desktop/gnome-xkb-info.c"
                 line="943">group's identifier about which to retrieve the options</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </method>
      <field name="parent_object">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="XkbInfoPrivate" c:type="GnomeXkbInfoPrivate*"/>
      </field>
      <glib:signal name="layouts-changed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="XkbInfoClass"
            c:type="GnomeXkbInfoClass"
            glib:is-gtype-struct-for="XkbInfo">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="56"/>
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="XkbInfoPrivate" c:type="GnomeXkbInfoPrivate" disguised="1">
      <source-position filename="../libgnome-desktop/gnome-xkb-info.h"
                       line="42"/>
    </record>
    <function name="desktop_thumbnail_is_valid"
              c:identifier="gnome_desktop_thumbnail_is_valid"
              version="2.2">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
           line="1297">Returns whether the thumbnail has the correct uri and mtime embedded in the
png options. This function is threadsafe and does no blocking I/O.</doc>
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="96"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="1306">TRUE if the thumbnail has the right @uri and @mtime</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pixbuf" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="1299">an loaded thumbnail #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="1300">a uri</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="mtime" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="1301">the mtime</doc>
          <type name="glong" c:type="time_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="desktop_thumbnail_path_for_uri"
              c:identifier="gnome_desktop_thumbnail_path_for_uri"
              version="2.2">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
           line="1278">Returns the filename that a thumbnail of size @size for @uri would have.
This function is threadsafe and does no blocking I/O.</doc>
      <source-position filename="../libgnome-desktop/gnome-desktop-thumbnail.h"
                       line="99"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
             line="1286">an absolute filename</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="1280">an uri</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
               line="1281">a thumbnail size</doc>
          <type name="DesktopThumbnailSize"
                c:type="GnomeDesktopThumbnailSize"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_all_locales"
              c:identifier="gnome_get_all_locales"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1254">Gets all locales.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="38"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1259">
  a newly allocated %NULL-terminated string array containing the
  all locales. Free with g_strfreev().</doc>
        <array c:type="char**">
          <type name="utf8"/>
        </array>
      </return-value>
    </function>
    <function name="get_country_from_code"
              c:identifier="gnome_get_country_from_code"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1314">Gets the country name for @code. If @translation is provided the
returned string is translated accordingly.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="48"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1322">the country name. Caller takes
ownership.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="code" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1316">an ISO 3166 code string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="translation"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1317">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_country_from_locale"
              c:identifier="gnome_get_country_from_locale"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1163">Gets the country description for @locale. If @translation is
provided the returned string is translated accordingly.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="36"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1171">the country description. Caller
takes ownership.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="locale" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1165">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="translation"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1166">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_input_source_from_locale"
              c:identifier="gnome_get_input_source_from_locale"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1410">Gets the default input source's type and identifier for a given
locale.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="52"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1421">%TRUE if a input source exists or %FALSE otherwise.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="locale" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1412">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="type"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1413">location to store the input source
type</doc>
          <type name="utf8" c:type="const char**"/>
        </parameter>
        <parameter name="id"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1415">location to store the input source
identifier</doc>
          <type name="utf8" c:type="const char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_language_from_code"
              c:identifier="gnome_get_language_from_code"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1290">Gets the language name for @code. If @translation is provided the
returned string is translated accordingly.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="46"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1298">the language name. Caller takes
ownership.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="code" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1292">an ISO 639 code string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="translation"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1293">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_language_from_locale"
              c:identifier="gnome_get_language_from_locale"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1071">Gets the language description for @locale. If @translation is
provided the returned string is translated accordingly.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="34"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1079">the language description. Caller
takes ownership.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="locale" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1073">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="translation"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1074">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="get_translated_modifier"
              c:identifier="gnome_get_translated_modifier"
              version="3.34">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="1338">Gets a translation of the raw @modifier string. If @translation
is provided the returned string is translated accordingly.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="50"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="1346">the translated modifier string.
Caller takes ownership.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="modifier" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1340">the modifier part of a locale name</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="translation"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="1341">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <docsection name="gnome-desktop-thumbnail">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-desktop-thumbnail.c"
           line="27">#GnomeDesktopThumbnailFactory allows generation and loading of thumbnails for
local and remote files and directories. It uses a collection of programs
called &lt;firstterm&gt;thumbnailers&lt;/firstterm&gt;, each one generating thumbnails
for a specific set of content-types of files. For example,
&lt;application&gt;totem-video-thumbnailer&lt;/application&gt; generates thumbnails for
video files using GStreamer; &lt;application&gt;evince-thumbnailer&lt;/application&gt;
generates thumbnails for PDFs and other document files. If no specific
thumbnailer exists for a file, or if the thumbnailer fails, gdk-pixbuf is
used as a fallback.

To generate a thumbnail, an appropriate thumbnailer program is selected then
executed, passing it the URI of the file to thumbnail, plus a path to write
the thumbnail image to. If thumbnailing succeeds, the thumbnailer should have
written the image to disk before terminating; but if thumbnailing fails, no
image should be written, and the thumbnailer should return a non-zero exit
status. #GnomeDesktopThumbnailFactory will then fall back to using gdk-pixbuf
to generate a thumbnail, if possible.

Thumbnailers are chosen by examining a series of
&lt;filename&gt;.thumbnailer&lt;/filename&gt; files in
&lt;filename&gt;&lt;replaceable&gt;$PREFIX&lt;/replaceable&gt;/share/thumbnailers&lt;/filename&gt;.
Each is in a simple key-file format:
&lt;informalexample&gt;&lt;programlisting&gt;
[Thumbnailer Entry]
Exec=evince-thumbnailer -s %s %u %o
MimeType=application/pdf;application/x-bzpdf;application/x-gzpdf;
&lt;/programlisting&gt;&lt;/informalexample&gt;

The &lt;filename&gt;.thumbnailer&lt;/filename&gt; format supports three keys:
&lt;variablelist&gt;
&lt;varlistentry&gt;&lt;term&gt;&lt;code&gt;Exec&lt;/code&gt;&lt;/term&gt;&lt;listitem&gt;&lt;para&gt;
Required. The command to execute the thumbnailer. It supports a few different
parameters which are replaced before calling the thumbnailer:
&lt;replaceable&gt;%u&lt;/replaceable&gt; is the URI of the file being thumbnailed;
&lt;replaceable&gt;%i&lt;/replaceable&gt; is its path; &lt;replaceable&gt;%o&lt;/replaceable&gt;
is the path of the image file to be written to;
&lt;replaceable&gt;%s&lt;/replaceable&gt; is the maximum desired size of the thumbnail
image (the maximum width or height, in pixels); and
&lt;replaceable&gt;%%&lt;/replaceable&gt; is a literal percent character.
&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
&lt;varlistentry&gt;&lt;term&gt;&lt;code&gt;MimeType&lt;/code&gt;&lt;/term&gt;&lt;listitem&gt;&lt;para&gt;
Required. A semicolon-separated list of MIME types which the thumbnailer
supports generating thumbnails for.
&lt;/para&gt;&lt;/listitem&gt;&lt;/varlistentry&gt;
&lt;/variablelist&gt;

So in the example &lt;filename&gt;.thumbnailer&lt;/filename&gt; file above, the command
passes the requested thumbnail size, then the input file’s URI, then the
path for the output image file to
&lt;application&gt;evince-thumbnailer&lt;/application&gt;.

The code to examine and call a thumbnailer is contained in
#GnomeDesktopThumbnailFactory, which handles looking up the right thumbnailer
script, building and executing the command for it, and loading the resulting
thumbnail image into a #GdkPixbuf.

Thumbnail caching is also supported by #GnomeDesktopThumbnailFactory. When
calling a thumbnailer, the path passed for the output image file is in
&lt;filename&gt;&lt;envar&gt;$XDG_CACHE_HOME&lt;/envar&gt;/thumbnails/
&lt;replaceable&gt;$SIZE&lt;/replaceable&gt;/&lt;/filename&gt;. The cached image file is given
a (probably) unique filename, generated by hashing the original file’s URI,
so the thumbnail can be looked up in future. #GnomeDesktopThumbnailFactory
supports two sizes of thumbnails: %GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL and
%GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE. Normal thumbnails are up to 128×128
pixels, whereas large thumbnails are up to 256×256 pixels. Thumbnails which
are larger than this are scaled down before being cached, and non-square
thumbnails are scaled so their largest dimension is at most 128 or 256
pixels.

#GnomeDesktopThumbnailFactory also handles failed thumbnails. If a
thumbnailer can’t generate a thumbnail for a file (e.g. because the file is
corrupt or because the right video codecs aren’t available), it returns a
non-zero exit status. The thumbnail factory then writes an entry to
&lt;filename&gt;&lt;envar&gt;$XDG_CACHE_HOME&lt;/envar&gt;/thumbnails/fail/
gnome-thumbnail-factory/&lt;/filename&gt; which is named after the hash of the
input file URI (just like a successful cached thumbnail). For future queries
for thumbnails for that file, #GnomeDesktopThumbnailFactory can immediately
return an error after looking up the fail entry.

If a file changes content, #GnomeDesktopThumbnailFactory will generate a new
thumbnail because each cached image has associated metadata (stored as PNG
tEXt keys) storing the full URI of the thumbnailed file (to check for hash
collisions) and its last modification time at the point of thumbnailing. If
the stored modification time doesn’t match the file’s current one, a new
thumbnail is generated.</doc>
    </docsection>
    <function name="language_has_translations"
              c:identifier="gnome_language_has_translations"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="335">Returns %TRUE if there are translations for language @code.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="45"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="341">%TRUE if there are translations for language @code.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="code" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="337">an ISO 639 code string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="normalize_locale"
              c:identifier="gnome_normalize_locale"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="248">Gets the normalized locale string in the form
[language[_country][.codeset][@modifier]] for @name.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="44"/>
      <return-value transfer-ownership="full">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="255">normalized locale string. Caller
takes ownership.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="locale" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="250">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="parse_locale"
              c:identifier="gnome_parse_locale"
              version="3.8">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-languages.c"
           line="104">Extracts the various components of a locale string of the form
[language[_country][.codeset][@modifier]]. See
http://en.wikipedia.org/wiki/Locale.</doc>
      <source-position filename="../libgnome-desktop/gnome-languages.h"
                       line="39"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-languages.c"
             line="120">%TRUE if parsing was successful.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="locale" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="106">a locale string</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="language_codep"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="107">location to
store the language code, or %NULL</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="country_codep"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="109">location to
store the country code, or %NULL</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="codesetp"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="111">location to
store the codeset, or %NULL</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
        <parameter name="modifierp"
                   direction="out"
                   caller-allocates="0"
                   transfer-ownership="full"
                   nullable="1"
                   optional="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-languages.c"
               line="113">location to
store the modifier, or %NULL</doc>
          <type name="utf8" c:type="char**"/>
        </parameter>
      </parameters>
    </function>
    <function name="rr_error_quark" c:identifier="gnome_rr_error_quark">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-rr.c"
           line="170">Returns the #GQuark that will be used for #GError values returned by the
GnomeRR API.</doc>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-rr.c"
             line="176">a #GQuark used to identify errors coming from the GnomeRR API.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
    <function name="start_systemd_scope"
              c:identifier="gnome_start_systemd_scope"
              stability="Unstable">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-systemd.c"
           line="162">If the current process is running inside a user systemd instance, then move
the launched PID into a transient scope. The given @name will be used to
create a unit name. It should be the application ID or the executable in all
other cases. If a desktop-id is passed then the .desktop suffix will be
stripped.

It is advisable to use this function every time where the started application
can be considered reasonably independent of the launching application. Placing
it in a scope creates proper separation between the programs rather than being
considered a single entity by systemd.

It is always safe to call this function. Note that a successful return code
does not imply that a unit has been created. It solely means that no error
condition was hit sending the request.

If @connection is %NULL then g_dbus_get() will be called internally.

Note that most callers will not need to handle errors. As such, it is normal
to pass a %NULL @callback.</doc>
      <source-position filename="../libgnome-desktop/gnome-systemd.h"
                       line="30"/>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="name" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="164">Name for the application</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="pid" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="165">The PID of the application</doc>
          <type name="gint32" c:type="gint32"/>
        </parameter>
        <parameter name="description"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="166">A description to use for the unit, or %NULL</doc>
          <type name="utf8" c:type="const char*"/>
        </parameter>
        <parameter name="connection"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="167">An #GDBusConnection to the session bus, or %NULL</doc>
          <type name="Gio.DBusConnection" c:type="GDBusConnection*"/>
        </parameter>
        <parameter name="cancellable"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="168">#GCancellable to use</doc>
          <type name="Gio.Cancellable" c:type="GCancellable*"/>
        </parameter>
        <parameter name="callback"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1"
                   scope="async"
                   closure="6">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="169">Callback to call when the operation is done</doc>
          <type name="Gio.AsyncReadyCallback" c:type="GAsyncReadyCallback"/>
        </parameter>
        <parameter name="user_data"
                   transfer-ownership="none"
                   nullable="1"
                   allow-none="1">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="170">Data to be passed to @callback</doc>
          <type name="gpointer" c:type="gpointer"/>
        </parameter>
      </parameters>
    </function>
    <function name="start_systemd_scope_finish"
              c:identifier="gnome_start_systemd_scope_finish"
              throws="1">
      <doc xml:space="preserve"
           filename="../libgnome-desktop/gnome-systemd.c"
           line="280">Finish an asynchronous operation to create a transient scope that was
started with gnome_start_systemd_scope().

Note that a successful return code does not imply that a unit has been
created. It solely means that no error condition was hit sending the request.</doc>
      <source-position filename="../libgnome-desktop/gnome-systemd.h"
                       line="38"/>
      <return-value transfer-ownership="none">
        <doc xml:space="preserve"
             filename="../libgnome-desktop/gnome-systemd.c"
             line="291">%FALSE on error, %TRUE otherwise</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="res" transfer-ownership="none">
          <doc xml:space="preserve"
               filename="../libgnome-desktop/gnome-systemd.c"
               line="282">A #GAsyncResult</doc>
          <type name="Gio.AsyncResult" c:type="GAsyncResult*"/>
        </parameter>
      </parameters>
    </function>
  </namespace>
</repository>
