## Spice USB device selection widget Spice USB device selection widget — USB device selection widget |

## Stability Level

Stable, unless otherwise indicated

## Synopsis

    #include <usb-device-widget.h>

    struct              SpiceUsbDeviceWidget;
    struct              SpiceUsbDeviceWidgetClass;

    GtkWidget *         spice_usb_device_widget_new         (SpiceSession *session,
                                                             const gchar *device_format_string);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----GtkWidget
                   +----GtkContainer
                         +----GtkBox
                               +----SpiceUsbDeviceWidget

## Implemented Interfaces

SpiceUsbDeviceWidget implements AtkImplementorIface, GtkBuildable and GtkOrientable.

## Properties

      "device-format-string"     gchar*                : Read / Write / Construct Only
      "session"                  SpiceSession*         : Read / Write / Construct Only

## Signals

      "connect-failed"                                 : Run First

## Description

SpiceUsbDeviceWidget is a gtk widget which apps can use to easily add an UI to select USB devices to redirect (or unredirect).

## Details

### struct SpiceUsbDeviceWidget

    struct SpiceUsbDeviceWidget;

The SpiceUsbDeviceWidget struct is opaque and should not be accessed directly.

### struct SpiceUsbDeviceWidgetClass

    struct SpiceUsbDeviceWidgetClass {
        _SpiceGtkBoxClass parent_class;

        /* signals */
        void (*connect_failed) (SpiceUsbDeviceWidget *widget,
                                SpiceUsbDevice *device, GError *error);
    };

Class structure for SpiceUsbDeviceWidget.

_SpiceGtkBoxClass `parent_class`; |
`connect_failed` () | Signal class handler for the "connect-failed" signal.

### spice_usb_device_widget_new ()

    GtkWidget *         spice_usb_device_widget_new         (SpiceSession *session,
                                                             const gchar *device_format_string);

`session` : | SpiceSession for which to widget will control USB redirection
`device_format_string` : | String passed to `spice_usb_device_get_description()`
Returns : | a new SpiceUsbDeviceWidget instance

## Property Details

### The `"device-format-string"` property

      "device-format-string"     gchar*                : Read / Write / Construct Only

Format string to pass to `spice_usb_device_get_description()` for getting the device USB descriptions.

Default value: NULL

### The `"session"` property

      "session"                  SpiceSession*         : Read / Write / Construct Only

SpiceSession this SpiceUsbDeviceWidget is associated with

## Signal Details

### The `"connect-failed"` signal

    void                user_function                      (SpiceUsbDeviceWidget *widget,
                                                            SpiceUsbDevice       *device,
                                                            GError               *error,
                                                            gpointer              user_data)      : Run First

The "connect-failed" signal is emitted whenever the user has requested for a device to be redirected and this has failed.

`widget` : | The SpiceUsbDeviceWidget that emitted the signal
`device` : | SpiceUsbDevice boxed object corresponding to the added device
`error` : | GError describing the reason why the connect failed
`user_data` : | user data set when the signal handler was connected.