[gnome-control-center] wacom: Update files from g-s-d
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center] wacom: Update files from g-s-d
- Date: Mon, 16 Jan 2012 17:30:45 +0000 (UTC)
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]