<?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="GObject" version="2.0"/>
  <include name="Gtk" version="3.0"/>
  <include name="SpiceClientGLib" version="2.0"/>
  <package name="spice-client-gtk-3.0"/>
  <c:include name="spice-widget.h"/>
  <namespace name="SpiceClientGtk"
             version="3.0"
             shared-library="libspice-client-gtk-3.0.so.1.0,libspice-client-glib-2.0.so.1.0"
             c:identifier-prefixes="Spice"
             c:symbol-prefixes="spice">
    <class name="Display"
           c:symbol-prefix="display"
           c:type="SpiceDisplay"
           parent="Gtk.DrawingArea"
           glib:type-name="SpiceDisplay"
           glib:get-type="spice_display_get_type"
           glib:type-struct="DisplayClass">
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <constructor name="new" c:identifier="spice_display_new">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #SpiceDisplay widget.</doc>
          <type name="Display" c:type="SpiceDisplay*"/>
        </return-value>
        <parameters>
          <parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #SpiceSession</doc>
            <type name="SpiceClientGLib.Session" c:type="SpiceSession*"/>
          </parameter>
          <parameter name="channel_id" transfer-ownership="none">
            <doc xml:space="preserve">the display channel ID to associate with #SpiceDisplay</doc>
            <type name="gint" c:type="int"/>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_with_monitor"
                   c:identifier="spice_display_new_with_monitor"
                   version="0.13">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a new #SpiceDisplay widget.</doc>
          <type name="Display" c:type="SpiceDisplay*"/>
        </return-value>
        <parameters>
          <parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">a #SpiceSession</doc>
            <type name="SpiceClientGLib.Session" c:type="SpiceSession*"/>
          </parameter>
          <parameter name="channel_id" transfer-ownership="none">
            <doc xml:space="preserve">the display channel ID to associate with #SpiceDisplay</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
          <parameter name="monitor_id" transfer-ownership="none">
            <doc xml:space="preserve">the monitor id within the display channel</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="copy_to_guest"
              c:identifier="spice_display_copy_to_guest"
              deprecated="Use spice_gtk_session_copy_to_guest() instead"
              deprecated-version="0.8">
        <doc xml:space="preserve">Copy client-side clipboard to guest clipboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_grab_keys" c:identifier="spice_display_get_grab_keys">
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">the current grab key combination.</doc>
          <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve">the display widget</doc>
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="get_pixbuf" c:identifier="spice_display_get_pixbuf">
        <doc xml:space="preserve">Take a screenshot of the display.</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a #GdkPixbuf with the screenshot image buffer</doc>
          <type name="GdkPixbuf.Pixbuf" c:type="GdkPixbuf*"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="mouse_ungrab" c:identifier="spice_display_mouse_ungrab">
        <doc xml:space="preserve">Ungrab the mouse.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="paste_from_guest"
              c:identifier="spice_display_paste_from_guest"
              deprecated="Use spice_gtk_session_paste_from_guest() instead"
              deprecated-version="0.8">
        <doc xml:space="preserve">Copy guest clipboard to client-side clipboard.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="send_keys" c:identifier="spice_display_send_keys">
        <doc xml:space="preserve">Send keyval press/release events to the display.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve">The #SpiceDisplay</doc>
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
          <parameter name="keyvals" transfer-ownership="none">
            <doc xml:space="preserve">Keyval array</doc>
            <array length="1" zero-terminated="0" c:type="guint*">
              <type name="guint" c:type="guint"/>
            </array>
          </parameter>
          <parameter name="nkeyvals" transfer-ownership="none">
            <doc xml:space="preserve">Length of keyvals</doc>
            <type name="gint" c:type="int"/>
          </parameter>
          <parameter name="kind" transfer-ownership="none">
            <doc xml:space="preserve">#SpiceDisplayKeyEvent action</doc>
            <type name="DisplayKeyEvent" c:type="SpiceDisplayKeyEvent"/>
          </parameter>
        </parameters>
      </method>
      <method name="set_grab_keys" c:identifier="spice_display_set_grab_keys">
        <doc xml:space="preserve">Set the key combination to grab/ungrab the keyboard. The default is
"Control L + Alt L".</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="display" transfer-ownership="none">
            <doc xml:space="preserve">the display widget</doc>
            <type name="Display" c:type="SpiceDisplay*"/>
          </instance-parameter>
          <parameter name="seq" transfer-ownership="none">
            <doc xml:space="preserve">key sequence</doc>
            <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
          </parameter>
        </parameters>
      </method>
      <property name="auto-clipboard"
                deprecated="Use SpiceGtkSession:auto-clipboard property instead"
                deprecated-version="0.8"
                writable="1"
                transfer-ownership="none">
        <doc xml:space="preserve">When this is true the clipboard gets automatically shared between host
and guest.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="channel-id"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">channel-id for this #SpiceDisplay</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="disable-inputs"
                version="0.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Disable all keyboard &amp; mouse inputs.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="grab-keyboard"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="grab-mouse"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="keypress-delay"
                version="0.13"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Delay in ms of non-modifiers key press events. If the key is
released before this delay, a single press &amp; release event is
sent to the server. If the key is pressed longer than the
keypress-delay, the server will receive the delayed press
event, and a following release event when the key is released.</doc>
        <type name="guint" c:type="guint"/>
      </property>
      <property name="monitor-id"
                version="0.13"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Select monitor from #SpiceDisplay to show.
The value -1 means the whole display is shown.
By default, the monitor 0 is selected.</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <property name="only-downscale"
                version="0.14"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">If scaling, only scale down, never up.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="ready" version="0.13" transfer-ownership="none">
        <doc xml:space="preserve">Indicate whether the display is ready to be shown. It takes
into account several conditions, such as the channel display
"mark" state, whether the monitor area is visible..</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="resize-guest"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="scaling"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="session"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">#SpiceSession for this #SpiceDisplay</doc>
        <type name="SpiceClientGLib.Session"/>
      </property>
      <property name="zoom-level"
                version="0.10"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Zoom level in percentage, from 10 to 400. Default to 100.
(this option is only supported with cairo backend when scaling
is enabled)</doc>
        <type name="gint" c:type="gint"/>
      </property>
      <field name="parent">
        <type name="Gtk.DrawingArea" c:type="GtkDrawingArea"/>
      </field>
      <field name="priv">
        <type name="DisplayPrivate" c:type="SpiceDisplayPrivate*"/>
      </field>
      <glib:signal name="grab-keys-pressed" when="first">
        <doc xml:space="preserve">Notify when the grab keys have been pressed</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
      </glib:signal>
      <glib:signal name="keyboard-grab" when="first">
        <doc xml:space="preserve">Notify when the keyboard grab is active or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:space="preserve">1 if grabbed, 0 otherwise.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
      <glib:signal name="mouse-grab" when="first">
        <doc xml:space="preserve">Notify when the mouse grab is active or not.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="status" transfer-ownership="none">
            <doc xml:space="preserve">1 if grabbed, 0 otherwise.</doc>
            <type name="gint" c:type="gint"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="DisplayClass"
            c:type="SpiceDisplayClass"
            glib:is-gtype-struct-for="Display">
      <field name="parent_class">
        <type name="Gtk.DrawingAreaClass" c:type="GtkDrawingAreaClass"/>
      </field>
      <field name="mouse_grab">
        <callback name="mouse_grab">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="channel" transfer-ownership="none">
              <type name="SpiceClientGLib.Channel" c:type="SpiceChannel*"/>
            </parameter>
            <parameter name="grabbed" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="keyboard_grab">
        <callback name="keyboard_grab">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="channel" transfer-ownership="none">
              <type name="SpiceClientGLib.Channel" c:type="SpiceChannel*"/>
            </parameter>
            <parameter name="grabbed" transfer-ownership="none">
              <type name="gint" c:type="gint"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_spice_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gchar" fixed-size="0">
          <type name="gchar" c:type="gchar"/>
        </array>
      </field>
    </record>
    <enumeration name="DisplayKeyEvent"
                 glib:type-name="SpiceDisplayKeyEvent"
                 glib:get-type="spice_display_key_event_get_type"
                 c:type="SpiceDisplayKeyEvent">
      <member name="press"
              value="1"
              c:identifier="SPICE_DISPLAY_KEY_EVENT_PRESS"
              glib:nick="press">
      </member>
      <member name="release"
              value="2"
              c:identifier="SPICE_DISPLAY_KEY_EVENT_RELEASE"
              glib:nick="release">
      </member>
      <member name="click"
              value="3"
              c:identifier="SPICE_DISPLAY_KEY_EVENT_CLICK"
              glib:nick="click">
      </member>
    </enumeration>
    <record name="DisplayPrivate" c:type="SpiceDisplayPrivate" disguised="1">
    </record>
    <record name="GrabSequence"
            c:type="SpiceGrabSequence"
            glib:type-name="SpiceGrabSequence"
            glib:get-type="spice_grab_sequence_get_type"
            c:symbol-prefix="grab_sequence">
      <field name="nkeysyms" readable="0" private="1">
        <type name="guint" c:type="guint"/>
      </field>
      <field name="keysyms" readable="0" private="1">
        <type name="guint" c:type="guint*"/>
      </field>
      <constructor name="new" c:identifier="spice_grab_sequence_new">
        <doc xml:space="preserve">Creates a new grab sequence from a list of keysym values</doc>
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new grab sequence object</doc>
          <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
        </return-value>
        <parameters>
          <parameter name="nkeysyms" transfer-ownership="none">
            <doc xml:space="preserve">length of @keysyms</doc>
            <type name="guint" c:type="guint"/>
          </parameter>
          <parameter name="keysyms" transfer-ownership="none">
            <doc xml:space="preserve">the keysym values</doc>
            <array length="0" zero-terminated="0" c:type="guint*">
              <type name="guint" c:type="guint"/>
            </array>
          </parameter>
        </parameters>
      </constructor>
      <constructor name="new_from_string"
                   c:identifier="spice_grab_sequence_new_from_string">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a new #SpiceGrabSequence.</doc>
          <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
        </return-value>
        <parameters>
          <parameter name="str" transfer-ownership="none">
            <doc xml:space="preserve">a string of '+' seperated key names (ex: "Control_L+Alt_L")</doc>
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <method name="as_string" c:identifier="spice_grab_sequence_as_string">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a newly allocated string representing the key sequence</doc>
          <type name="utf8" c:type="gchar*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sequence" transfer-ownership="none">
            <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="copy" c:identifier="spice_grab_sequence_copy">
        <return-value transfer-ownership="full">
          <doc xml:space="preserve">a copy of @sequence</doc>
          <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
        </return-value>
        <parameters>
          <instance-parameter name="sequence" transfer-ownership="none">
            <doc xml:space="preserve">sequence to copy</doc>
            <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="free" c:identifier="spice_grab_sequence_free">
        <doc xml:space="preserve">Free @sequence.</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="sequence" transfer-ownership="none">
            <type name="GrabSequence" c:type="SpiceGrabSequence*"/>
          </instance-parameter>
        </parameters>
      </method>
    </record>
    <class name="GtkSession"
           c:symbol-prefix="gtk_session"
           c:type="SpiceGtkSession"
           parent="GObject.Object"
           glib:type-name="SpiceGtkSession"
           glib:get-type="spice_gtk_session_get_type"
           glib:type-struct="GtkSessionClass">
      <function name="get" c:identifier="spice_gtk_session_get">
        <doc xml:space="preserve">Gets the #SpiceGtkSession associated with the passed in #SpiceSession.
A new #SpiceGtkSession instance will be created the first time this
function is called for a certain #SpiceSession.

Note that this function returns a weak reference, which should not be used
after the #SpiceSession itself has been unref-ed by the caller.</doc>
        <return-value transfer-ownership="none">
          <doc xml:space="preserve">a weak reference to the #SpiceGtkSession associated with the passed in #SpiceSession  Since 0.8</doc>
          <type name="GtkSession" c:type="SpiceGtkSession*"/>
        </return-value>
        <parameters>
          <parameter name="session" transfer-ownership="none">
            <doc xml:space="preserve">#SpiceSession for which to get the #SpiceGtkSession</doc>
            <type name="SpiceClientGLib.Session" c:type="SpiceSession*"/>
          </parameter>
        </parameters>
      </function>
      <method name="copy_to_guest"
              c:identifier="spice_gtk_session_copy_to_guest">
        <doc xml:space="preserve">Copy client-side clipboard to guest clipboard.

Since 0.8</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GtkSession" c:type="SpiceGtkSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <method name="paste_from_guest"
              c:identifier="spice_gtk_session_paste_from_guest">
        <doc xml:space="preserve">Copy guest clipboard to client-side clipboard.

Since 0.8</doc>
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="self" transfer-ownership="none">
            <type name="GtkSession" c:type="SpiceGtkSession*"/>
          </instance-parameter>
        </parameters>
      </method>
      <property name="auto-clipboard"
                version="0.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">When this is true the clipboard gets automatically shared between host
and guest.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="auto-usbredir"
                version="0.8"
                writable="1"
                construct="1"
                transfer-ownership="none">
        <doc xml:space="preserve">Automatically redirect newly plugged in USB devices. Note the auto
redirection only happens when a #SpiceDisplay associated with the
session had keyboard focus.</doc>
        <type name="gboolean" c:type="gboolean"/>
      </property>
      <property name="session"
                version="0.8"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <doc xml:space="preserve">#SpiceSession this #SpiceGtkSession is associated with</doc>
        <type name="SpiceClientGLib.Session"/>
      </property>
      <field name="parent">
        <type name="GObject.Object" c:type="GObject"/>
      </field>
      <field name="priv">
        <type name="GtkSessionPrivate" c:type="SpiceGtkSessionPrivate*"/>
      </field>
    </class>
    <record name="GtkSessionClass"
            c:type="SpiceGtkSessionClass"
            glib:is-gtype-struct-for="GtkSession">
      <field name="parent_class">
        <type name="GObject.ObjectClass" c:type="GObjectClass"/>
      </field>
      <field name="_spice_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gchar" fixed-size="0">
          <type name="gchar" c:type="gchar"/>
        </array>
      </field>
    </record>
    <record name="GtkSessionPrivate"
            c:type="SpiceGtkSessionPrivate"
            disguised="1">
    </record>
    <class name="UsbDeviceWidget"
           c:symbol-prefix="usb_device_widget"
           c:type="SpiceUsbDeviceWidget"
           parent="Gtk.Box"
           glib:type-name="SpiceUsbDeviceWidget"
           glib:get-type="spice_usb_device_widget_get_type"
           glib:type-struct="UsbDeviceWidgetClass">
      <doc xml:space="preserve">The #SpiceUsbDeviceWidget struct is opaque and should not be accessed directly.</doc>
      <implements name="Atk.ImplementorIface"/>
      <implements name="Gtk.Buildable"/>
      <implements name="Gtk.Orientable"/>
      <constructor name="new" c:identifier="spice_usb_device_widget_new">
        <return-value transfer-ownership="none">
          <type name="Gtk.Widget" c:type="GtkWidget*"/>
        </return-value>
        <parameters>
          <parameter name="session" transfer-ownership="none">
            <type name="SpiceClientGLib.Session" c:type="SpiceSession*"/>
          </parameter>
          <parameter name="device_format_string" transfer-ownership="none">
            <type name="utf8" c:type="const gchar*"/>
          </parameter>
        </parameters>
      </constructor>
      <virtual-method name="connect_failed">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <instance-parameter name="widget" transfer-ownership="none">
            <type name="UsbDeviceWidget" c:type="SpiceUsbDeviceWidget*"/>
          </instance-parameter>
          <parameter name="device" transfer-ownership="none">
            <type name="SpiceClientGLib.UsbDevice" c:type="SpiceUsbDevice*"/>
          </parameter>
          <parameter name="error" transfer-ownership="none">
            <type name="GLib.Error" c:type="GError*"/>
          </parameter>
        </parameters>
      </virtual-method>
      <property name="device-format-string"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="utf8" c:type="gchar*"/>
      </property>
      <property name="session"
                writable="1"
                construct-only="1"
                transfer-ownership="none">
        <type name="SpiceClientGLib.Session"/>
      </property>
      <field name="parent">
        <type name="_GtkBox" c:type="_SpiceGtkBox"/>
      </field>
      <field name="priv" readable="0" private="1">
        <type name="UsbDeviceWidgetPrivate"
              c:type="SpiceUsbDeviceWidgetPrivate*"/>
      </field>
      <glib:signal name="connect-failed" when="first">
        <return-value transfer-ownership="none">
          <type name="none" c:type="void"/>
        </return-value>
        <parameters>
          <parameter name="object" transfer-ownership="none">
            <type name="SpiceClientGLib.UsbDevice"/>
          </parameter>
          <parameter name="p0" transfer-ownership="none">
            <type name="GLib.Error"/>
          </parameter>
        </parameters>
      </glib:signal>
    </class>
    <record name="UsbDeviceWidgetClass"
            c:type="SpiceUsbDeviceWidgetClass"
            glib:is-gtype-struct-for="UsbDeviceWidget">
      <doc xml:space="preserve">Class structure for #SpiceUsbDeviceWidget.</doc>
      <field name="parent_class">
        <type name="_GtkBoxClass" c:type="_SpiceGtkBoxClass"/>
      </field>
      <field name="connect_failed">
        <callback name="connect_failed">
          <return-value transfer-ownership="none">
            <type name="none" c:type="void"/>
          </return-value>
          <parameters>
            <parameter name="widget" transfer-ownership="none">
              <type name="UsbDeviceWidget" c:type="SpiceUsbDeviceWidget*"/>
            </parameter>
            <parameter name="device" transfer-ownership="none">
              <type name="SpiceClientGLib.UsbDevice" c:type="SpiceUsbDevice*"/>
            </parameter>
            <parameter name="error" transfer-ownership="none">
              <type name="GLib.Error" c:type="GError*"/>
            </parameter>
          </parameters>
        </callback>
      </field>
      <field name="_spice_reserved" readable="0" private="1">
        <array zero-terminated="0" c:type="gchar" fixed-size="0">
          <type name="gchar" c:type="gchar"/>
        </array>
      </field>
    </record>
    <record name="UsbDeviceWidgetPrivate"
            c:type="SpiceUsbDeviceWidgetPrivate"
            disguised="1">
    </record>
    <record name="_GtkBox" c:type="_SpiceGtkBox" disguised="1">
    </record>
    <record name="_GtkBoxClass" c:type="_SpiceGtkBoxClass" disguised="1">
    </record>
  </namespace>
</repository>
