<?xml version="1.0"?>
<!-- This file was automatically generated from C sources - DO NOT EDIT!
To affect the contents of this file, edit the original C definitions,
and/or use gtk-doc annotations.  -->
<repository version="1.2"
            xmlns="http://www.gtk.org/introspection/core/1.0"
            xmlns:c="http://www.gtk.org/introspection/c/1.0"
            xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  <include name="Atk" version="1.0"/>
  <include name="GLib" version="2.0"/>
  <include name="GModule" version="2.0"/>
  <include name="GObject" version="2.0"/>
  <include name="Gdk" version="3.0"/>
  <include name="GdkPixbuf" version="2.0"/>
  <include name="Gio" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="Pango" version="1.0"/>
  <include name="cairo" version="1.0"/>
  <include name="xlib" version="2.0"/>
  <package name="gnome-desktop-3.0"/>
  <c:include name="libgnome-desktop/gnome-bg-crossfade.h"/>
  <c:include name="libgnome-desktop/gnome-bg.h"/>
  <c:include name="libgnome-desktop/gnome-desktop-thumbnail.h"/>
  <c:include name="libgnome-desktop/gnome-desktop-utils.h"/>
  <c:include name="libgnome-desktop/gnome-pnp-ids.h"/>
  <c:include name="libgnome-desktop/gnome-rr-config.h"/>
  <c:include name="libgnome-desktop/gnome-rr-labeler.h"/>
  <c:include name="libgnome-desktop/gnome-rr.h"/>
  <c:include name="libgnome-desktop/gnome-wall-clock.h"/>
  <namespace name="GnomeDesktop"
             version="3.0"
             shared-library="libgnome-desktop-3.so.1.0"
             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">
      <constructor name="new" c:identifier="gnome_bg_new">
        <return-value transfer-ownership="full">
          <type name="BG" c:type="GnomeBG*"/>
        </return-value>
      </constructor>
      <function name="get_surface_from_root"
                c:identifier="gnome_bg_get_surface_from_root">
        <doc xml:whitespace="preserve">This function queries the _XROOTPMAP_ID property from
the root window associated with @screen to determine
the current root window background pixmap and returns
a copy of it. If the _XROOTPMAP_ID is not set, then
a black surface is returned.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #cairo_surface_t if successful or %NULL</doc>
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:whitespace="preserve">a #GdkScreen</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_surface_as_root"
                c:identifier="gnome_bg_set_surface_as_root">
        <doc xml:whitespace="preserve">Set the root pixmap, and properties pointing to it. We
do this atomically with a server grab to make sure that
we won't leak the pixmap if somebody else it setting
it at the same time. (This assumes that they follow the
same conventions we do).  @surface should come from a call
to gnome_bg_create_surface().</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GdkScreen to change root background on</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #cairo_surface_t to set root background from. Must be an xlib surface backing a pixmap.</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </function>
      <function name="set_surface_as_root_with_crossfade"
                c:identifier="gnome_bg_set_surface_as_root_with_crossfade">
        <doc xml:whitespace="preserve">Set the root pixmap, and properties pointing to it.
This function differs from gnome_bg_set_surface_as_root()
in that it adds a subtle crossfade animation from the
current root pixmap to the new one.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GnomeBGCrossfade object</doc>
          <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GdkScreen to change root background on</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:whitespace="preserve">the cairo xlib surface to set root background from</doc>
            <type name="cairo.Surface" c:type="cairo_surface_t*"/>
          </parameter>
        </parameters>
      </function>
      <method name="changes_with_time"
              c:identifier="gnome_bg_changes_with_time">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="create_frame_thumbnail"
              c:identifier="gnome_bg_create_frame_thumbnail">
        <doc xml:whitespace="preserve">Creates a thumbnail for a certain frame, where 'frame' is somewhat
vaguely defined as 'suitable point to show while single-stepping
through the slideshow'.

or NULL if frame_num is out of bounds.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the newly created thumbnail or</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <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:whitespace="preserve">Create a surface that can be set as background for @window. If @is_root is
TRUE, the surface created will be created by a temporary X server connection
so that if someone calls XKillClient on it, it won't affect the application
who created it.</doc>
        <return-value transfer-ownership="full">
          <type name="cairo.Surface" c:type="cairo_surface_t*"/>
        </return-value>
        <parameters>
          <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>
          <parameter name="root" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="create_thumbnail" c:identifier="gnome_bg_create_thumbnail">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a #GdkPixbuf showing the background as a thumbnail</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="dest" transfer-ownership="none">
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="screen" transfer-ownership="none">
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
          <parameter name="is_root" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_color"
              c:identifier="gnome_bg_get_color"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="GDesktopBackgroundShading*"/>
          </parameter>
          <parameter name="primary" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
          <parameter name="secondary" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_draw_background"
              c:identifier="gnome_bg_get_draw_background">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_filename" c:identifier="gnome_bg_get_filename">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="gchar*"/>
        </return-value>
      </method>
      <method name="get_image_size" c:identifier="gnome_bg_get_image_size">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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"
              introspectable="0">
        <return-value>
          <type c:type="GDesktopBackgroundStyle"/>
        </return-value>
      </method>
      <method name="has_multiple_sizes"
              c:identifier="gnome_bg_has_multiple_sizes">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_dark" c:identifier="gnome_bg_is_dark">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="settings" transfer-ownership="none">
            <type name="Gio.Settings" c:type="GSettings*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_color"
              c:identifier="gnome_bg_set_color"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="type" transfer-ownership="none">
            <type c:type="GDesktopBackgroundShading"/>
          </parameter>
          <parameter name="primary" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
          <parameter name="secondary" transfer-ownership="none">
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_draw_background"
              c:identifier="gnome_bg_set_draw_background">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="draw_background" transfer-ownership="none">
            <type name="gboolean" c:type="gboolean"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_filename" c:identifier="gnome_bg_set_filename">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_placement"
              c:identifier="gnome_bg_set_placement"
              introspectable="0">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="placement" transfer-ownership="none">
            <type c:type="GDesktopBackgroundStyle"/>
          </parameter>
        </parameters>
      </method>
      <glib:signal name="changed" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
      <glib:signal name="transitioned" when="last">
        <return-value transfer-ownership="none">
          <type name="none"/>
        </return-value>
      </glib:signal>
    </class>
    <record name="BGClass"
            c:type="GnomeBGClass"
            disguised="1"
            glib:is-gtype-struct-for="BG">
    </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">
      <constructor name="new" c:identifier="gnome_bg_crossfade_new">
        <doc xml:whitespace="preserve">Creates a new object to manage crossfading a
window background between two #cairo_surface_ts.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">the new #GnomeBGCrossfade</doc>
          <type name="BGCrossfade" c:type="GnomeBGCrossfade*"/>
        </return-value>
        <parameters>
          <parameter name="width" transfer-ownership="none">
            <doc xml:whitespace="preserve">The width of the crossfading window</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="height" transfer-ownership="none">
            <doc xml:whitespace="preserve">The height of the crossfading window</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="finished">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if fading, or %FALSE if not fading</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_end_surface"
              c:identifier="gnome_bg_crossfade_set_end_surface">
        <doc xml:whitespace="preserve">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.

could not be copied.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, or %FALSE if the surface</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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.

could not be copied.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE if successful, or %FALSE if the surface</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="surface" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">This function stops any in progress crossfades that may be
happening.  It's harmless to call this function if @fade is
already stopped.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="height"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">When a crossfade is running, this is height of the fading
surface.</doc>
        <type name="gint"/>
      </property>
      <property name="width"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:whitespace="preserve">When a crossfade is running, this is width of the fading
surface.</doc>
        <type name="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:whitespace="preserve">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"/>
        </return-value>
        <parameters>
          <parameter name="window" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="finished">
        <callback name="finished">
          <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">
    </record>
    <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">
      <constructor name="new"
                   c:identifier="gnome_desktop_thumbnail_factory_new"
                   version="2.2">
        <doc xml:whitespace="preserve">Creates a new #GnomeDesktopThumbnailFactory.

This function must be called on the main thread.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new #GnomeDesktopThumbnailFactory</doc>
          <type name="DesktopThumbnailFactory"
                c:type="GnomeDesktopThumbnailFactory*"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Returns TRUE if this GnomeIconFactory can (at least try) to thumbnail
this file. Thumbnails or files with failed thumbnails won't be thumbnailed.

Usage of this function is threadsafe.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the file can be thumbnailed.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the uri of a file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">the mime type of the file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the uri of a file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">thumbnail pixbuf if thumbnailing succeeded, %NULL otherwise.</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the uri of a file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="mime_type" transfer-ownership="none">
            <doc xml:whitespace="preserve">the mime type of the file</doc>
            <type name="utf8" c:type="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:whitespace="preserve">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.</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if there is a failed thumbnail for the file.</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the uri of a file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Tries to locate an existing thumbnail for the file specified.

Usage of this function is threadsafe.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">The absolute path of the thumbnail, or %NULL if none exist.</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
        <parameters>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the uri of a file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="mtime" transfer-ownership="none">
            <doc xml:whitespace="preserve">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:whitespace="preserve">Saves @thumbnail at the right place. If the save fails a
failed thumbnail is written.

Usage of this function is threadsafe.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="thumbnail" transfer-ownership="none">
            <doc xml:whitespace="preserve">the thumbnail as a pixbuf</doc>
            <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
          </parameter>
          <parameter name="uri" transfer-ownership="none">
            <doc xml:whitespace="preserve">the uri of a file</doc>
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="original_mtime" transfer-ownership="none">
            <doc xml:whitespace="preserve">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">
      <field name="parent">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="DesktopThumbnailFactoryPrivate"
            c:type="GnomeDesktopThumbnailFactoryPrivate"
            disguised="1">
    </record>
    <enumeration name="DesktopThumbnailSize"
                 c:type="GnomeDesktopThumbnailSize">
      <member name="normal"
              value="0"
              c:identifier="GNOME_DESKTOP_THUMBNAIL_SIZE_NORMAL"/>
      <member name="large"
              value="1"
              c:identifier="GNOME_DESKTOP_THUMBNAIL_SIZE_LARGE"/>
    </enumeration>
    <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">
      <constructor name="new" c:identifier="gnome_pnp_ids_new">
        <doc xml:whitespace="preserve">Returns a reference to a #GnomePnpIds object, or creates
a new one if none have been created.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">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:whitespace="preserve">Find the full manufacturer name for the given PNP ID.

or %NULL when not found.</doc>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a new string representing the manufacturer name,</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <parameter name="pnp_id" transfer-ownership="none">
            <doc xml:whitespace="preserve">the PNP ID to look for</doc>
            <type name="utf8" c:type="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">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="PnpIdsPrivate" c:type="GnomePnpIdsPrivate" disguised="1">
    </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">
      <constructor name="new_current"
                   c:identifier="gnome_rr_config_new_current"
                   throws="1">
        <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>
      <constructor name="new_stored"
                   c:identifier="gnome_rr_config_new_stored"
                   throws="1">
        <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>
      <function name="apply_from_filename_with_time"
                c:identifier="gnome_rr_config_apply_from_filename_with_time"
                throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </function>
      <function name="get_backup_filename"
                c:identifier="gnome_rr_config_get_backup_filename">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
      </function>
      <function name="get_intended_filename"
                c:identifier="gnome_rr_config_get_intended_filename">
        <return-value transfer-ownership="full">
          <type name="utf8" c:type="char*"/>
        </return-value>
      </function>
      <method name="applicable"
              c:identifier="gnome_rr_config_applicable"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
        </parameters>
      </method>
      <method name="apply_with_time"
              c:identifier="gnome_rr_config_apply_with_time"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <type name="RRScreen" c:type="GnomeRRScreen*"/>
          </parameter>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
        </parameters>
      </method>
      <method name="ensure_primary"
              c:identifier="gnome_rr_config_ensure_primary">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="equal" c:identifier="gnome_rr_config_equal">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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">
        <doc xml:whitespace="preserve">have the same width/height.  Those outputs are of course connected and on
(i.e. they have a CRTC assigned).</doc>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether at least two outputs are at (0, 0) offset and they</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_outputs" c:identifier="gnome_rr_config_get_outputs">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the output configuration for this #GnomeRRConfig</doc>
          <array c:type="GnomeRROutputInfo**">
            <type name="RROutputInfo"/>
          </array>
        </return-value>
      </method>
      <method name="load_current"
              c:identifier="gnome_rr_config_load_current"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="load_filename"
              c:identifier="gnome_rr_config_load_filename"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="filename" transfer-ownership="none">
            <type name="utf8" c:type="gchar*"/>
          </parameter>
        </parameters>
      </method>
      <method name="match" c:identifier="gnome_rr_config_match">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="config2" transfer-ownership="none">
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </parameter>
        </parameters>
      </method>
      <method name="sanitize" c:identifier="gnome_rr_config_sanitize">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="save" c:identifier="gnome_rr_config_save" throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_clone" c:identifier="gnome_rr_config_set_clone">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="RRConfigPrivate" c:type="GnomeRRConfigPrivate" disguised="1">
    </record>
    <record name="RRCrtc"
            c:type="GnomeRRCrtc"
            glib:type-name="GnomeRRCrtc"
            glib:get-type="gnome_rr_crtc_get_type"
            c:symbol-prefix="rr_crtc">
      <method name="can_drive_output"
              c:identifier="gnome_rr_crtc_can_drive_output">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="full">
          <type name="RRMode" c:type="GnomeRRMode*"/>
        </return-value>
      </method>
      <method name="get_current_rotation"
              c:identifier="gnome_rr_crtc_get_current_rotation">
        <return-value transfer-ownership="none">
          <type name="RRRotation" c:type="GnomeRRRotation"/>
        </return-value>
      </method>
      <method name="get_gamma" c:identifier="gnome_rr_crtc_get_gamma">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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="get_id" c:identifier="gnome_rr_crtc_get_id">
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
      </method>
      <method name="get_position" c:identifier="gnome_rr_crtc_get_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_rotations" c:identifier="gnome_rr_crtc_get_rotations">
        <return-value transfer-ownership="none">
          <type name="RRRotation" c:type="GnomeRRRotation"/>
        </return-value>
      </method>
      <method name="set_config_with_time"
              c:identifier="gnome_rr_crtc_set_config_with_time"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="timestamp" transfer-ownership="none">
            <type name="guint32" c:type="guint32"/>
          </parameter>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </parameter>
          <parameter name="rotation" transfer-ownership="none">
            <type name="RRRotation" c:type="GnomeRRRotation"/>
          </parameter>
          <parameter name="outputs" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput**"/>
          </parameter>
          <parameter name="n_outputs" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_gamma" c:identifier="gnome_rr_crtc_set_gamma">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="rotation" transfer-ownership="none">
            <type name="RRRotation" c:type="GnomeRRRotation"/>
          </parameter>
        </parameters>
      </method>
    </record>
    <enumeration name="RRDpmsMode" c:type="GnomeRRDpmsMode">
      <member name="on" value="0" c:identifier="GNOME_RR_DPMS_ON"/>
      <member name="standby" value="1" c:identifier="GNOME_RR_DPMS_STANDBY"/>
      <member name="suspend" value="2" c:identifier="GNOME_RR_DPMS_SUSPEND"/>
      <member name="off" value="3" c:identifier="GNOME_RR_DPMS_OFF"/>
      <member name="disabled" value="4" c:identifier="GNOME_RR_DPMS_DISABLED"/>
      <member name="unknown" value="5" c:identifier="GNOME_RR_DPMS_UNKNOWN"/>
    </enumeration>
    <enumeration name="RRError"
                 c:type="GnomeRRError"
                 glib:error-domain="gnome-rr-error-quark">
      <member name="unknown" value="0" c:identifier="GNOME_RR_ERROR_UNKNOWN"/>
      <member name="no_randr_extension"
              value="1"
              c:identifier="GNOME_RR_ERROR_NO_RANDR_EXTENSION"/>
      <member name="randr_error"
              value="2"
              c:identifier="GNOME_RR_ERROR_RANDR_ERROR"/>
      <member name="bounds_error"
              value="3"
              c:identifier="GNOME_RR_ERROR_BOUNDS_ERROR"/>
      <member name="crtc_assignment"
              value="4"
              c:identifier="GNOME_RR_ERROR_CRTC_ASSIGNMENT"/>
      <member name="no_matching_config"
              value="5"
              c:identifier="GNOME_RR_ERROR_NO_MATCHING_CONFIG"/>
      <member name="no_dpms_extension"
              value="6"
              c:identifier="GNOME_RR_ERROR_NO_DPMS_EXTENSION"/>
    </enumeration>
    <class name="RRLabeler"
           c:symbol-prefix="rr_labeler"
           c:type="GnomeRRLabeler"
           parent="GObject.Object"
           glib:type-name="GnomeRRLabeler"
           glib:get-type="gnome_rr_labeler_get_type"
           glib:type-struct="RRLabelerClass">
      <constructor name="new" c:identifier="gnome_rr_labeler_new">
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">A new #GnomeRRLabeler</doc>
          <type name="RRLabeler" c:type="GnomeRRLabeler*"/>
        </return-value>
        <parameters>
          <parameter name="config" transfer-ownership="none">
            <doc xml:whitespace="preserve">Configuration of the screens to label</doc>
            <type name="RRConfig" c:type="GnomeRRConfig*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="get_color_for_output"
              c:identifier="gnome_rr_labeler_get_color_for_output">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">Output device (i.e. monitor) to query</doc>
            <type name="RROutputInfo" c:type="GnomeRROutputInfo*"/>
          </parameter>
          <parameter name="color_out"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <doc xml:whitespace="preserve">Color of selected monitor.</doc>
            <type name="Gdk.Color" c:type="GdkColor*"/>
          </parameter>
        </parameters>
      </method>
      <method name="hide" c:identifier="gnome_rr_labeler_hide">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <method name="show" c:identifier="gnome_rr_labeler_show">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </method>
      <property name="config"
                readable="0"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="RRConfig"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="RRLabelerPrivate" c:type="GnomeRRLabelerPrivate*"/>
      </field>
    </class>
    <record name="RRLabelerClass"
            c:type="GnomeRRLabelerClass"
            glib:is-gtype-struct-for="RRLabeler">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="RRLabelerPrivate"
            c:type="GnomeRRLabelerPrivate"
            disguised="1">
    </record>
    <record name="RRMode"
            c:type="GnomeRRMode"
            glib:type-name="GnomeRRMode"
            glib:get-type="gnome_rr_mode_get_type"
            c:symbol-prefix="rr_mode">
      <method name="get_freq" c:identifier="gnome_rr_mode_get_freq">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_height" c:identifier="gnome_rr_mode_get_height">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="gnome_rr_mode_get_id">
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
      </method>
      <method name="get_width" c:identifier="gnome_rr_mode_get_width">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
      </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">
      <method name="can_clone" c:identifier="gnome_rr_output_can_clone">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <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"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The currently set backlight brightness</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_backlight_max"
              c:identifier="gnome_rr_output_get_backlight_max">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The maximum backlight value, or -1 if not supported</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_backlight_min"
              c:identifier="gnome_rr_output_get_backlight_min">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">The mimimum backlight value, or -1 if not supported</doc>
          <type name="gint" c:type="gint"/>
        </return-value>
      </method>
      <method name="get_connector_type"
              c:identifier="gnome_rr_output_get_connector_type">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_crtc" c:identifier="gnome_rr_output_get_crtc">
        <return-value transfer-ownership="full">
          <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
        </return-value>
      </method>
      <method name="get_current_mode"
              c:identifier="gnome_rr_output_get_current_mode">
        <return-value transfer-ownership="full">
          <type name="RRMode" c:type="GnomeRRMode*"/>
        </return-value>
      </method>
      <method name="get_edid_data"
              c:identifier="gnome_rr_output_get_edid_data">
        <return-value transfer-ownership="none">
          <type name="guint8" c:type="guint8*"/>
        </return-value>
        <parameters>
          <parameter name="size" transfer-ownership="none">
            <type name="gsize" c:type="gsize*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_height_mm"
              c:identifier="gnome_rr_output_get_height_mm">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_id" c:identifier="gnome_rr_output_get_id">
        <return-value transfer-ownership="none">
          <type name="guint32" c:type="guint32"/>
        </return-value>
      </method>
      <method name="get_is_primary"
              c:identifier="gnome_rr_output_get_is_primary">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_name" c:identifier="gnome_rr_output_get_name">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_position" c:identifier="gnome_rr_output_get_position">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y" transfer-ownership="none">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_possible_crtcs"
              c:identifier="gnome_rr_output_get_possible_crtcs">
        <return-value transfer-ownership="full">
          <type name="RRCrtc" c:type="GnomeRRCrtc**"/>
        </return-value>
      </method>
      <method name="get_preferred_mode"
              c:identifier="gnome_rr_output_get_preferred_mode">
        <return-value transfer-ownership="full">
          <type name="RRMode" c:type="GnomeRRMode*"/>
        </return-value>
      </method>
      <method name="get_size_inches"
              c:identifier="gnome_rr_output_get_size_inches">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_width_mm" c:identifier="gnome_rr_output_get_width_mm">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="is_connected" c:identifier="gnome_rr_output_is_connected">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="is_laptop" c:identifier="gnome_rr_output_is_laptop">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="list_modes" c:identifier="gnome_rr_output_list_modes">
        <return-value transfer-ownership="full">
          <type name="RRMode" c:type="GnomeRRMode**"/>
        </return-value>
      </method>
      <method name="set_backlight"
              c:identifier="gnome_rr_output_set_backlight"
              throws="1">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">%TRUE for success</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="value" transfer-ownership="none">
            <doc xml:whitespace="preserve">the absolute value which is min &gt;= this &lt;= max</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </method>
      <method name="supports_mode"
              c:identifier="gnome_rr_output_supports_mode">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </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">
      <method name="get_aspect_ratio"
              c:identifier="gnome_rr_output_info_get_aspect_ratio">
        <return-value transfer-ownership="none">
          <type name="gdouble" c:type="double"/>
        </return-value>
      </method>
      <method name="get_display_name"
              c:identifier="gnome_rr_output_info_get_display_name">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the display name of this output</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_geometry"
              c:identifier="gnome_rr_output_info_get_geometry">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="y"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
          <parameter name="height"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full"
                     allow-none="1">
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_name" c:identifier="gnome_rr_output_info_get_name">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the output name</doc>
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <method name="get_preferred_height"
              c:identifier="gnome_rr_output_info_get_preferred_height">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_preferred_width"
              c:identifier="gnome_rr_output_info_get_preferred_width">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_primary"
              c:identifier="gnome_rr_output_info_get_primary">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="get_product"
              c:identifier="gnome_rr_output_info_get_product">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_refresh_rate"
              c:identifier="gnome_rr_output_info_get_refresh_rate">
        <return-value transfer-ownership="none">
          <type name="gint" c:type="int"/>
        </return-value>
      </method>
      <method name="get_rotation"
              c:identifier="gnome_rr_output_info_get_rotation">
        <return-value transfer-ownership="none">
          <type name="RRRotation" c:type="GnomeRRRotation"/>
        </return-value>
      </method>
      <method name="get_serial" c:identifier="gnome_rr_output_info_get_serial">
        <return-value transfer-ownership="none">
          <type name="guint" c:type="guint"/>
        </return-value>
      </method>
      <method name="get_vendor" c:identifier="gnome_rr_output_info_get_vendor">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="vendor"
                     direction="out"
                     caller-allocates="1"
                     transfer-ownership="none">
            <array zero-terminated="0" c:type="gchar*" fixed-size="4">
              <type name="utf8" c:type="gchar"/>
            </array>
          </parameter>
        </parameters>
      </method>
      <method name="is_active" c:identifier="gnome_rr_output_info_is_active">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">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>
      </method>
      <method name="is_connected"
              c:identifier="gnome_rr_output_info_is_connected">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">whether the output is physically connected to a monitor</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_active" c:identifier="gnome_rr_output_info_set_active">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="x" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="y" 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="set_primary"
              c:identifier="gnome_rr_output_info_set_primary">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="RROutputInfoPrivate"
            c:type="GnomeRROutputInfoPrivate"
            disguised="1">
    </record>
    <bitfield name="RRRotation" c:type="GnomeRRRotation">
      <member name="rotation_next"
              value="0"
              c:identifier="GNOME_RR_ROTATION_NEXT"/>
      <member name="rotation_0" value="1" c:identifier="GNOME_RR_ROTATION_0"/>
      <member name="rotation_90"
              value="2"
              c:identifier="GNOME_RR_ROTATION_90"/>
      <member name="rotation_180"
              value="4"
              c:identifier="GNOME_RR_ROTATION_180"/>
      <member name="rotation_270"
              value="8"
              c:identifier="GNOME_RR_ROTATION_270"/>
      <member name="reflect_x" value="16" c:identifier="GNOME_RR_REFLECT_X"/>
      <member name="reflect_y" value="32" c:identifier="GNOME_RR_REFLECT_Y"/>
    </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">
      <implements name="Gio.Initable"/>
      <constructor name="new" c:identifier="gnome_rr_screen_new" throws="1">
        <doc xml:whitespace="preserve">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>
        <return-value transfer-ownership="full">
          <doc xml:whitespace="preserve">a unique #GnomeRRScreen instance, specific to the @screen, or NULL</doc>
          <type name="RRScreen" c:type="GnomeRRScreen*"/>
        </return-value>
        <parameters>
          <parameter name="screen" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GdkScreen on which to operate</doc>
            <type name="Gdk.Screen" c:type="GdkScreen*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="create_clone_modes"
              c:identifier="gnome_rr_screen_create_clone_modes">
        <return-value transfer-ownership="full">
          <type name="RRMode" c:type="GnomeRRMode**"/>
        </return-value>
      </method>
      <method name="get_crtc_by_id"
              c:identifier="gnome_rr_screen_get_crtc_by_id">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the CRTC identified by @id</doc>
          <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
        </return-value>
        <parameters>
          <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"
              throws="1">
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <type name="RRDpmsMode" c:type="GnomeRRDpmsMode*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_output_by_id"
              c:identifier="gnome_rr_screen_get_output_by_id">
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">the output identified by @name</doc>
          <type name="RROutput" c:type="GnomeRROutput*"/>
        </return-value>
        <parameters>
          <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">
        <return-value transfer-ownership="full">
          <type name="RROutput" c:type="GnomeRROutput*"/>
        </return-value>
        <parameters>
          <parameter name="name" transfer-ownership="none">
            <type name="utf8" c:type="char*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_ranges" c:identifier="gnome_rr_screen_get_ranges">
        <doc xml:whitespace="preserve">Get the ranges of the screen</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="min_width"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">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:whitespace="preserve">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:whitespace="preserve">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:whitespace="preserve">the maximum height</doc>
            <type name="gint" c:type="int*"/>
          </parameter>
        </parameters>
      </method>
      <method name="get_timestamps"
              c:identifier="gnome_rr_screen_get_timestamps">
        <doc xml:whitespace="preserve">Queries the two timestamps that the X RANDR extension maintains.  The X
server will prevent change requests for stale configurations, those whose
timestamp is not equal to that of the latest request for configuration.  The
X server will also prevent change requests that have an older timestamp to
the latest change request.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="change_timestamp_ret"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Location in which to store the timestamp at which the RANDR configuration was last changed</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
          <parameter name="config_timestamp_ret"
                     direction="out"
                     caller-allocates="0"
                     transfer-ownership="full">
            <doc xml:whitespace="preserve">Location in which to store the timestamp at which the RANDR configuration was last obtained</doc>
            <type name="guint32" c:type="guint32*"/>
          </parameter>
        </parameters>
      </method>
      <method name="list_clone_modes"
              c:identifier="gnome_rr_screen_list_clone_modes">
        <doc xml:whitespace="preserve">List available XRandR clone modes</doc>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRMode**">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </array>
        </return-value>
      </method>
      <method name="list_crtcs" c:identifier="gnome_rr_screen_list_crtcs">
        <doc xml:whitespace="preserve">List all CRTCs</doc>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRCrtc**">
            <type name="RRCrtc" c:type="GnomeRRCrtc*"/>
          </array>
        </return-value>
      </method>
      <method name="list_modes" c:identifier="gnome_rr_screen_list_modes">
        <doc xml:whitespace="preserve">List available XRandR modes</doc>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRRMode**">
            <type name="RRMode" c:type="GnomeRRMode*"/>
          </array>
        </return-value>
      </method>
      <method name="list_outputs" c:identifier="gnome_rr_screen_list_outputs">
        <doc xml:whitespace="preserve">List all outputs</doc>
        <return-value transfer-ownership="none">
          <array c:type="GnomeRROutput**">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </array>
        </return-value>
      </method>
      <method name="refresh" c:identifier="gnome_rr_screen_refresh" throws="1">
        <doc xml:whitespace="preserve">Refreshes the screen configuration, and calls the screen's callback if it
exists and if the screen's configuration changed.

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>
        <return-value transfer-ownership="none">
          <doc xml:whitespace="preserve">TRUE if the screen's configuration changed; otherwise, the</doc>
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
      </method>
      <method name="set_dpms_mode"
              c:identifier="gnome_rr_screen_set_dpms_mode"
              throws="1">
        <doc xml:whitespace="preserve">This method also disables the DPMS timeouts.</doc>
        <return-value transfer-ownership="none">
          <type name="gboolean" c:type="gboolean"/>
        </return-value>
        <parameters>
          <parameter name="mode" transfer-ownership="none">
            <type name="RRDpmsMode" c:type="GnomeRRDpmsMode"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_primary_output"
              c:identifier="gnome_rr_screen_set_primary_output">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <type name="RROutput" c:type="GnomeRROutput*"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_size" c:identifier="gnome_rr_screen_set_size">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <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>
          <parameter name="mm_width" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="mm_height" transfer-ownership="none">
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </method>
      <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"/>
        </return-value>
      </glib:signal>
      <glib:signal name="output-connected"
                   when="first"
                   no-recurse="1"
                   no-hooks="1">
        <doc xml:whitespace="preserve">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"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GnomeRROutput that was connected</doc>
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="output-disconnected"
                   when="first"
                   no-recurse="1"
                   no-hooks="1">
        <doc xml:whitespace="preserve">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"/>
        </return-value>
        <parameters>
          <parameter name="output" transfer-ownership="none">
            <doc xml:whitespace="preserve">the #GnomeRROutput that was disconnected</doc>
            <type name="gpointer"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="RRScreenClass"
            c:type="GnomeRRScreenClass"
            glib:is-gtype-struct-for="RRScreen">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="changed">
        <callback name="changed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
        </callback>
      </field>
      <field name="output_connected">
        <callback name="output_connected">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="output" transfer-ownership="none">
              <type name="RROutput" c:type="GnomeRROutput*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="output_disconnected">
        <callback name="output_disconnected">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <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">
    </record>
    <constant name="RR_CONNECTOR_TYPE_PANEL"
              value="Panel"
              c:type="GNOME_RR_CONNECTOR_TYPE_PANEL">
      <type name="utf8" c:type="gchar*"/>
    </constant>
    <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">
      <method name="get_clock" c:identifier="gnome_wall_clock_get_clock">
        <return-value transfer-ownership="none">
          <type name="utf8" c:type="char*"/>
        </return-value>
      </method>
      <property name="clock" transfer-ownership="none">
        <doc xml:whitespace="preserve">A formatted string representing the current clock display.</doc>
        <type name="utf8"/>
      </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">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
    </record>
    <record name="WallClockPrivate"
            c:type="GnomeWallClockPrivate"
            disguised="1">
    </record>
    <function name="desktop_prepend_terminal_to_vector"
              c:identifier="gnome_desktop_prepend_terminal_to_vector">
      <doc xml:whitespace="preserve">Description:  Prepends a terminal (either the one configured as default in
the user's GNOME setup, or one of the common xterm emulators) to the passed
in vector, modifying it in the process.  The vector should be allocated with
#g_malloc, as this will #g_free the original vector.  Also all elements must
have been allocated separately.  That is the standard glib/GNOME way of
doing vectors however.  If the integer that @argc points to is negative, the
size will first be computed.  Also note that passing in pointers to a vector
that is empty, will just create a new vector for you.</doc>
      <return-value transfer-ownership="none">
        <type name="none" c:type="void"/>
      </return-value>
      <parameters>
        <parameter name="argc" transfer-ownership="none">
          <doc xml:whitespace="preserve">a pointer to the vector size</doc>
          <type name="gint" c:type="int*"/>
        </parameter>
        <parameter name="argv" transfer-ownership="none">
          <doc xml:whitespace="preserve">a pointer to the vector</doc>
          <type name="utf8" c:type="char***"/>
        </parameter>
      </parameters>
    </function>
    <function name="desktop_thumbnail_has_uri"
              c:identifier="gnome_desktop_thumbnail_has_uri"
              version="2.2">
      <doc xml:whitespace="preserve">Returns whether the thumbnail has the correct uri embedded in the
Thumb::URI option in the png.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">TRUE if the thumbnail is for @uri</doc>
        <type name="gboolean" c:type="gboolean"/>
      </return-value>
      <parameters>
        <parameter name="pixbuf" transfer-ownership="none">
          <doc xml:whitespace="preserve">an loaded thumbnail pixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">a uri</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="desktop_thumbnail_is_valid"
              c:identifier="gnome_desktop_thumbnail_is_valid"
              version="2.2">
      <doc xml:whitespace="preserve">Returns whether the thumbnail has the correct uri and mtime embedded in the
png options.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">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:whitespace="preserve">an loaded thumbnail #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">a uri</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="mtime" transfer-ownership="none">
          <doc xml:whitespace="preserve">the mtime</doc>
          <type name="glong" c:type="time_t"/>
        </parameter>
      </parameters>
    </function>
    <function name="desktop_thumbnail_md5"
              c:identifier="gnome_desktop_thumbnail_md5"
              version="2.2"
              deprecated="Use #GChecksum instead"
              deprecated-version="2.22">
      <doc xml:whitespace="preserve">Calculates the MD5 checksum of the uri. This can be useful
if you want to manually handle thumbnail files.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">A string with the MD5 digest of the uri string.</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">an uri</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
      </parameters>
    </function>
    <function name="desktop_thumbnail_path_for_uri"
              c:identifier="gnome_desktop_thumbnail_path_for_uri"
              version="2.2">
      <doc xml:whitespace="preserve">Returns the filename that a thumbnail of size @size for @uri would have.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">an absolute filename</doc>
        <type name="utf8" c:type="char*"/>
      </return-value>
      <parameters>
        <parameter name="uri" transfer-ownership="none">
          <doc xml:whitespace="preserve">an uri</doc>
          <type name="utf8" c:type="char*"/>
        </parameter>
        <parameter name="size" transfer-ownership="none">
          <doc xml:whitespace="preserve">a thumbnail size</doc>
          <type name="DesktopThumbnailSize"
                c:type="GnomeDesktopThumbnailSize"/>
        </parameter>
      </parameters>
    </function>
    <function name="desktop_thumbnail_scale_down_pixbuf"
              c:identifier="gnome_desktop_thumbnail_scale_down_pixbuf"
              version="2.2">
      <doc xml:whitespace="preserve">Scales the pixbuf to the desired size. This function
is a lot faster than gdk-pixbuf when scaling down by
large amounts.</doc>
      <return-value transfer-ownership="full">
        <doc xml:whitespace="preserve">a scaled pixbuf</doc>
        <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
      </return-value>
      <parameters>
        <parameter name="pixbuf" transfer-ownership="none">
          <doc xml:whitespace="preserve">a #GdkPixbuf</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </parameter>
        <parameter name="dest_width" transfer-ownership="none">
          <doc xml:whitespace="preserve">the desired new width</doc>
          <type name="gint" c:type="int"/>
        </parameter>
        <parameter name="dest_height" transfer-ownership="none">
          <doc xml:whitespace="preserve">the desired new height</doc>
          <type name="gint" c:type="int"/>
        </parameter>
      </parameters>
    </function>
    <function name="rr_error_quark" c:identifier="gnome_rr_error_quark">
      <doc xml:whitespace="preserve">Returns the #GQuark that will be used for #GError values returned by the
GnomeRR API.</doc>
      <return-value transfer-ownership="none">
        <doc xml:whitespace="preserve">a #GQuark used to identify errors coming from the GnomeRR API.</doc>
        <type name="GLib.Quark" c:type="GQuark"/>
      </return-value>
    </function>
  </namespace>
</repository>
