diff options
author | Hans de Goede <hdegoede@redhat.com> | 2012-01-26 15:12:01 +0100 |
---|---|---|
committer | Hans de Goede <hdegoede@redhat.com> | 2012-01-31 14:31:38 +0100 |
commit | bf0350423caba9fb9f04103d18032a9a4ce912dd (patch) | |
tree | 164aec6bd02126ddf72e67fb10992a865d573440 /gtk/usb-device-widget.h | |
parent | 9e26b538db86f255e0cb2a20a064da8aa4e3315f (diff) |
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 <hdegoede@redhat.com>
Diffstat (limited to 'gtk/usb-device-widget.h')
-rw-r--r-- | gtk/usb-device-widget.h | 83 |
1 files changed, 83 insertions, 0 deletions
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 <hdegoede@redhat.com> + + 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 <http://www.gnu.org/licenses/>. +*/ +#ifndef __SPICE_USB_DEVICE_WIDGET_H__ +#define __SPICE_USB_DEVICE_WIDGET_H__ + +#include <gtk/gtk.h> +#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__ */ |