[gnome-control-center] wacom: Update files from g-s-d



commit 5d680981de00664133f7cadb6ef1bf2d64649107
Author: Bastien Nocera <hadess hadess net>
Date:   Mon Jan 16 16:07:08 2012 +0000

    wacom: Update files from g-s-d
    
    More stylus metadata exported.

 panels/wacom/gsd-wacom-device.c |   67 +++++++++++++++++++++++++++++++++++++++
 panels/wacom/gsd-wacom-device.h |   25 +++++++++++---
 2 files changed, 87 insertions(+), 5 deletions(-)
---
diff --git a/panels/wacom/gsd-wacom-device.c b/panels/wacom/gsd-wacom-device.c
index e0e5c20..08dbbd0 100644
--- a/panels/wacom/gsd-wacom-device.c
+++ b/panels/wacom/gsd-wacom-device.c
@@ -54,6 +54,8 @@ struct GsdWacomStylusPrivate
 	char *name;
 	const char *icon_name;
 	GSettings *settings;
+	gboolean has_eraser;
+	int num_buttons;
 };
 
 static void     gsd_wacom_stylus_class_init  (GsdWacomStylusClass *klass);
@@ -109,6 +111,9 @@ get_icon_name_from_type (WacomStylusType type)
 {
 	switch (type) {
 	case WSTYLUS_INKING:
+	case WSTYLUS_STROKE:
+		/* The stroke pen is the same as the inking pen with
+		 * a different nib */
 		return "wacom-stylus-inking";
 	case WSTYLUS_AIRBRUSH:
 		return "wacom-stylus-airbrush";
@@ -135,6 +140,8 @@ gsd_wacom_stylus_new (GsdWacomDevice    *device,
 	stylus->priv->settings = settings;
 	stylus->priv->type = libwacom_stylus_get_type (wstylus);
 	stylus->priv->icon_name = get_icon_name_from_type (stylus->priv->type);
+	stylus->priv->has_eraser = libwacom_stylus_has_eraser (wstylus);
+	stylus->priv->num_buttons = libwacom_stylus_get_num_buttons (wstylus);
 
 	return stylus;
 }
@@ -171,6 +178,49 @@ gsd_wacom_stylus_get_device (GsdWacomStylus *stylus)
 	return stylus->priv->device;
 }
 
+gboolean
+gsd_wacom_stylus_get_has_eraser (GsdWacomStylus *stylus)
+{
+	g_return_val_if_fail (GSD_IS_WACOM_STYLUS (stylus), FALSE);
+
+	return stylus->priv->has_eraser;
+}
+
+int
+gsd_wacom_stylus_get_num_buttons (GsdWacomStylus *stylus)
+{
+	g_return_val_if_fail (GSD_IS_WACOM_STYLUS (stylus), -1);
+
+	return stylus->priv->num_buttons;
+}
+
+GsdWacomStylusType
+gsd_wacom_stylus_get_stylus_type (GsdWacomStylus *stylus)
+{
+	g_return_val_if_fail (GSD_IS_WACOM_STYLUS (stylus), WACOM_STYLUS_TYPE_UNKNOWN);
+
+	switch (stylus->priv->type) {
+	case WSTYLUS_UNKNOWN:
+		return WACOM_STYLUS_TYPE_UNKNOWN;
+	case WSTYLUS_GENERAL:
+		return WACOM_STYLUS_TYPE_GENERAL;
+	case WSTYLUS_INKING:
+		return WACOM_STYLUS_TYPE_INKING;
+	case WSTYLUS_AIRBRUSH:
+		return WACOM_STYLUS_TYPE_AIRBRUSH;
+	case WSTYLUS_CLASSIC:
+		return WACOM_STYLUS_TYPE_CLASSIC;
+	case WSTYLUS_MARKER:
+		return WACOM_STYLUS_TYPE_MARKER;
+	case WSTYLUS_STROKE:
+		return WACOM_STYLUS_TYPE_STROKE;
+	default:
+		g_assert_not_reached ();
+	}
+
+	return WACOM_STYLUS_TYPE_UNKNOWN;
+}
+
 #define GSD_WACOM_DEVICE_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GSD_TYPE_WACOM_DEVICE, GsdWacomDevicePrivate))
 
 /* we support two types of settings:
@@ -644,6 +694,23 @@ gsd_wacom_device_list_styli (GsdWacomDevice *device)
 	return g_list_copy (device->priv->styli);
 }
 
+GsdWacomStylus *
+gsd_wacom_device_get_stylus_for_type (GsdWacomDevice     *device,
+				      GsdWacomStylusType  type)
+{
+	GList *l;
+
+	g_return_val_if_fail (GSD_IS_WACOM_DEVICE (device), NULL);
+
+	for (l = device->priv->styli; l != NULL; l = l->next) {
+		GsdWacomStylus *stylus = l->data;
+
+		if (gsd_wacom_stylus_get_stylus_type (stylus) == type)
+			return stylus;
+	}
+	return NULL;
+}
+
 const char *
 gsd_wacom_device_get_name (GsdWacomDevice *device)
 {
diff --git a/panels/wacom/gsd-wacom-device.h b/panels/wacom/gsd-wacom-device.h
index 3435866..06acf08 100644
--- a/panels/wacom/gsd-wacom-device.h
+++ b/panels/wacom/gsd-wacom-device.h
@@ -66,11 +66,24 @@ typedef struct
         GObjectClass   parent_class;
 } GsdWacomStylusClass;
 
-GType            gsd_wacom_stylus_get_type     (void);
-GSettings      * gsd_wacom_stylus_get_settings (GsdWacomStylus *stylus);
-const char     * gsd_wacom_stylus_get_name     (GsdWacomStylus *stylus);
-const char     * gsd_wacom_stylus_get_icon_name(GsdWacomStylus *stylus);
-GsdWacomDevice * gsd_wacom_stylus_get_device   (GsdWacomStylus *stylus);
+typedef enum {
+	WACOM_STYLUS_TYPE_UNKNOWN,
+	WACOM_STYLUS_TYPE_GENERAL,
+	WACOM_STYLUS_TYPE_INKING,
+	WACOM_STYLUS_TYPE_AIRBRUSH,
+	WACOM_STYLUS_TYPE_CLASSIC,
+	WACOM_STYLUS_TYPE_MARKER,
+	WACOM_STYLUS_TYPE_STROKE
+} GsdWacomStylusType;
+
+GType            gsd_wacom_stylus_get_type       (void);
+GSettings      * gsd_wacom_stylus_get_settings   (GsdWacomStylus *stylus);
+const char     * gsd_wacom_stylus_get_name       (GsdWacomStylus *stylus);
+const char     * gsd_wacom_stylus_get_icon_name  (GsdWacomStylus *stylus);
+GsdWacomDevice * gsd_wacom_stylus_get_device     (GsdWacomStylus *stylus);
+gboolean         gsd_wacom_stylus_get_has_eraser (GsdWacomStylus *stylus);
+int              gsd_wacom_stylus_get_num_buttons(GsdWacomStylus *stylus);
+GsdWacomStylusType gsd_wacom_stylus_get_stylus_type (GsdWacomStylus *stylus);
 
 /* Device types to apply a setting to */
 typedef enum {
@@ -94,6 +107,8 @@ gboolean         gsd_wacom_device_is_screen_tablet (GsdWacomDevice *device);
 GSettings      * gsd_wacom_device_get_settings     (GsdWacomDevice *device);
 void             gsd_wacom_device_set_current_stylus (GsdWacomDevice *device,
 						      int             stylus_id);
+GsdWacomStylus * gsd_wacom_device_get_stylus_for_type (GsdWacomDevice     *device,
+						       GsdWacomStylusType  type);
 
 GsdWacomDeviceType gsd_wacom_device_get_device_type (GsdWacomDevice *device);
 gint           * gsd_wacom_device_get_area          (GsdWacomDevice *device);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]