From bf0350423caba9fb9f04103d18032a9a4ce912dd Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 26 Jan 2012 15:12:01 +0100 Subject: Add a USB device selection widget This patch adds a SpiceUsbDeviceWidget which apps can use to easily add an UI to select USB devices to redirect (or unredirect). See spicy for an example usage. Signed-off-by: Hans de Goede --- gtk/usb-device-widget.h | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 gtk/usb-device-widget.h (limited to 'gtk/usb-device-widget.h') diff --git a/gtk/usb-device-widget.h b/gtk/usb-device-widget.h new file mode 100644 index 0000000..27ec795 --- /dev/null +++ b/gtk/usb-device-widget.h @@ -0,0 +1,83 @@ +/* -*- Mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */ +/* + Copyright (C) 2012 Red Hat, Inc. + + Red Hat Authors: + Hans de Goede + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, see . +*/ +#ifndef __SPICE_USB_DEVICE_WIDGET_H__ +#define __SPICE_USB_DEVICE_WIDGET_H__ + +#include +#include "spice-client.h" + +G_BEGIN_DECLS + +#define SPICE_TYPE_USB_DEVICE_WIDGET (spice_usb_device_widget_get_type ()) +#define SPICE_USB_DEVICE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), SPICE_TYPE_USB_DEVICE_WIDGET, SpiceUsbDeviceWidget)) +#define SPICE_USB_DEVICE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), SPICE_TYPE_USB_DEVICE_WIDGET, SpiceUsbDeviceWidgetClass)) +#define SPICE_IS_USB_DEVICE_WIDGET(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), SPICE_TYPE_USB_DEVICE_WIDGET)) +#define SPICE_IS_USB_DEVICE_WIDGET_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), SPICE_TYPE_USB_DEVICE_WIDGET)) +#define SPICE_USB_DEVICE_WIDGET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), SPICE_TYPE_USB_DEVICE_WIDGET, SpiceUsbDeviceWidgetClass)) + +typedef struct _SpiceUsbDeviceWidget SpiceUsbDeviceWidget; +typedef struct _SpiceUsbDeviceWidgetClass SpiceUsbDeviceWidgetClass; +typedef struct _SpiceUsbDeviceWidgetPrivate SpiceUsbDeviceWidgetPrivate; + +/** + * SpiceUsbDeviceWidget: + * @parent: Parent instance. + * + * The #SpiceUsbDeviceWidget struct is opaque and should not be accessed directly. + */ +struct _SpiceUsbDeviceWidget +{ + GtkVBox parent; + + /*< private >*/ + SpiceUsbDeviceWidgetPrivate *priv; + /* Do not add fields to this struct */ +}; + +/** + * SpiceUsbDeviceWidgetClass: + * @parent_class: Parent class. + * @connect_failed: Signal class handler for the #SpiceUsbDeviceWidget::connect-failed signal. + * + * Class structure for #SpiceUsbDeviceWidget. + */ +struct _SpiceUsbDeviceWidgetClass +{ + GtkVBoxClass parent_class; + + /* signals */ + void (*connect_failed) (SpiceUsbDeviceWidget *widget, + SpiceUsbDevice *device, GError *error); + /*< private >*/ + /* + * If adding fields to this struct, remove corresponding + * amount of padding to avoid changing overall struct size + */ + gchar _spice_reserved[SPICE_RESERVED_PADDING]; +}; + +GType spice_usb_device_widget_get_type(void); +GtkWidget *spice_usb_device_widget_new(SpiceSession *session, + const gchar *device_format_string); + +G_END_DECLS + +#endif /* __SPICE_USB_DEVICE_WIDGET_H__ */ -- cgit v1.2.3