[gtk+/wip/events: 1/19] API: gdk: Add gdk_device_get_axis_label()
- From: Benjamin Otte <otte src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/wip/events: 1/19] API: gdk: Add gdk_device_get_axis_label()
- Date: Tue, 13 Mar 2012 01:18:16 +0000 (UTC)
commit 62bb005bc7d4736b560561dcfc74736606c85c7c
Author: Benjamin Otte <otte redhat com>
Date: Mon Mar 5 11:28:20 2012 +0100
API: gdk: Add gdk_device_get_axis_label()
docs/reference/gdk/gdk3-sections.txt | 1 +
gdk/broadway/gdkdevice-broadway.c | 4 +-
gdk/gdk.symbols | 1 +
gdk/gdkdevice.c | 45 ++++++++++++++++++++++++++++++++++
gdk/gdkdevice.h | 2 +
gdk/gdkdeviceprivate.h | 1 +
gdk/quartz/gdkdevice-core-quartz.c | 4 +-
gdk/wayland/gdkdevice-wayland.c | 4 +-
gdk/win32/gdkdevice-win32.c | 4 +-
gdk/win32/gdkdevicemanager-win32.c | 5 ++++
gdk/x11/gdkdevice-core-x11.c | 4 +-
gdk/x11/gdkdevicemanager-xi2.c | 15 ++++++++---
12 files changed, 76 insertions(+), 14 deletions(-)
---
diff --git a/docs/reference/gdk/gdk3-sections.txt b/docs/reference/gdk/gdk3-sections.txt
index b46e17e..ff0150e 100644
--- a/docs/reference/gdk/gdk3-sections.txt
+++ b/docs/reference/gdk/gdk3-sections.txt
@@ -691,6 +691,7 @@ gdk_device_set_key
gdk_device_get_key
gdk_device_set_axis_use
gdk_device_get_axis_use
+gdk_device_get_axis_label
gdk_device_get_associated_device
gdk_device_list_slave_devices
gdk_device_get_device_type
diff --git a/gdk/broadway/gdkdevice-broadway.c b/gdk/broadway/gdkdevice-broadway.c
index e5f88ee..5468fc6 100644
--- a/gdk/broadway/gdkdevice-broadway.c
+++ b/gdk/broadway/gdkdevice-broadway.c
@@ -93,8 +93,8 @@ gdk_broadway_device_init (GdkBroadwayDevice *device_core)
device = GDK_DEVICE (device_core);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_Y, 0, 0, 1);
}
static gboolean
diff --git a/gdk/gdk.symbols b/gdk/gdk.symbols
index 1f1936a..a57e6b2 100644
--- a/gdk/gdk.symbols
+++ b/gdk/gdk.symbols
@@ -47,6 +47,7 @@ gdk_cursor_unref
gdk_device_free_history
gdk_device_get_associated_device
gdk_device_get_axis
+gdk_device_get_axis_label
gdk_device_get_axis_use
gdk_device_get_axis_value
gdk_device_get_device_type
diff --git a/gdk/gdkdevice.c b/gdk/gdkdevice.c
index cd8bda2..88e6f29 100644
--- a/gdk/gdkdevice.c
+++ b/gdk/gdkdevice.c
@@ -43,6 +43,7 @@ typedef struct _GdkAxisInfo GdkAxisInfo;
struct _GdkAxisInfo
{
GdkAtom label;
+ gchar *label_string;
GdkAxisUse use;
gdouble min_axis;
@@ -256,9 +257,18 @@ gdk_device_class_init (GdkDeviceClass *klass)
}
static void
+gdk_axis_info_clear (gpointer data)
+{
+ GdkAxisInfo *info = data;
+
+ g_free (info->label_string);
+}
+
+static void
gdk_device_init (GdkDevice *device)
{
device->axes = g_array_new (FALSE, TRUE, sizeof (GdkAxisInfo));
+ g_array_set_clear_func (device->axes, gdk_axis_info_clear);
}
static void
@@ -771,6 +781,39 @@ gdk_device_set_key (GdkDevice *device,
}
/**
+ * gdk_device_get_axis_label:
+ * @device: a pointer #GdkDevice.
+ * @index_: the index of the axis.
+ *
+ * Returns the label for the axis. If it exists, the label of
+ * an axis is a string identifying the axis. Labels for the same
+ * types of axes may differ between devices and platforms. Try to use
+ * gdk_device_get_axis_use() if possible.
+ *
+ * This function is useful as a debugging help. It should never
+ * be presented to users.
+ *
+ * Returns: a string describing the label of the axis or %NULL
+ * if the axis has no label.
+ *
+ * Since: 3.6
+ **/
+const char *
+gdk_device_get_axis_label (GdkDevice *device,
+ guint index_)
+{
+ GdkAxisInfo *info;
+
+ g_return_val_if_fail (GDK_IS_DEVICE (device), NULL);
+ g_return_val_if_fail (gdk_device_get_source (device) != GDK_SOURCE_KEYBOARD, NULL);
+ g_return_val_if_fail (index_ < device->axes->len, NULL);
+
+ info = &g_array_index (device->axes, GdkAxisInfo, index_);
+
+ return info->label_string;
+}
+
+/**
* gdk_device_get_axis_use:
* @device: a pointer #GdkDevice.
* @index_: the index of the axis.
@@ -1329,6 +1372,7 @@ _gdk_device_reset_axes (GdkDevice *device)
guint
_gdk_device_add_axis (GdkDevice *device,
GdkAtom label_atom,
+ const char *label_string,
GdkAxisUse use,
gdouble min_value,
gdouble max_value,
@@ -1339,6 +1383,7 @@ _gdk_device_add_axis (GdkDevice *device,
axis_info.use = use;
axis_info.label = label_atom;
+ axis_info.label_string = g_strdup (label_string);
axis_info.min_value = min_value;
axis_info.max_value = max_value;
axis_info.resolution = resolution;
diff --git a/gdk/gdkdevice.h b/gdk/gdkdevice.h
index 02c26cc..ea215f3 100644
--- a/gdk/gdkdevice.h
+++ b/gdk/gdkdevice.h
@@ -163,6 +163,8 @@ void gdk_device_set_key (GdkDevice *device,
guint keyval,
GdkModifierType modifiers);
+const char * gdk_device_get_axis_label(GdkDevice *device,
+ guint index_);
GdkAxisUse gdk_device_get_axis_use (GdkDevice *device,
guint index_);
void gdk_device_set_axis_use (GdkDevice *device,
diff --git a/gdk/gdkdeviceprivate.h b/gdk/gdkdeviceprivate.h
index ff92ea4..53e31cd 100644
--- a/gdk/gdkdeviceprivate.h
+++ b/gdk/gdkdeviceprivate.h
@@ -117,6 +117,7 @@ void _gdk_device_set_associated_device (GdkDevice *device,
void _gdk_device_reset_axes (GdkDevice *device);
guint _gdk_device_add_axis (GdkDevice *device,
GdkAtom label_atom,
+ const char *label_string,
GdkAxisUse use,
gdouble min_value,
gdouble max_value,
diff --git a/gdk/quartz/gdkdevice-core-quartz.c b/gdk/quartz/gdkdevice-core-quartz.c
index 8598cf6..f2380de 100644
--- a/gdk/quartz/gdkdevice-core-quartz.c
+++ b/gdk/quartz/gdkdevice-core-quartz.c
@@ -107,8 +107,8 @@ gdk_quartz_device_core_init (GdkQuartzDeviceCore *quartz_device_core)
device = GDK_DEVICE (quartz_device_core);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_Y, 0, 0, 1);
}
static gboolean
diff --git a/gdk/wayland/gdkdevice-wayland.c b/gdk/wayland/gdkdevice-wayland.c
index dcd92a2..1f4affc 100644
--- a/gdk/wayland/gdkdevice-wayland.c
+++ b/gdk/wayland/gdkdevice-wayland.c
@@ -334,8 +334,8 @@ gdk_device_core_init (GdkDeviceCore *device_core)
device = GDK_DEVICE (device_core);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_Y, 0, 0, 1);
}
struct wl_input_device *
diff --git a/gdk/win32/gdkdevice-win32.c b/gdk/win32/gdkdevice-win32.c
index 1cc1797..b3c5677 100644
--- a/gdk/win32/gdkdevice-win32.c
+++ b/gdk/win32/gdkdevice-win32.c
@@ -96,8 +96,8 @@ gdk_device_win32_init (GdkDeviceWin32 *device_win32)
device = GDK_DEVICE (device_win32);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_Y, 0, 0, 1);
}
static gboolean
diff --git a/gdk/win32/gdkdevicemanager-win32.c b/gdk/win32/gdkdevicemanager-win32.c
index d51acbc..5c713a2 100644
--- a/gdk/win32/gdkdevicemanager-win32.c
+++ b/gdk/win32/gdkdevicemanager-win32.c
@@ -593,6 +593,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
{
_gdk_device_add_axis (GDK_DEVICE (device),
GDK_NONE,
+ NULL,
GDK_AXIS_X,
axis_x.axMin,
axis_x.axMax,
@@ -604,6 +605,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
{
_gdk_device_add_axis (GDK_DEVICE (device),
GDK_NONE,
+ NULL,
GDK_AXIS_Y,
axis_y.axMin,
axis_y.axMax,
@@ -616,6 +618,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
{
_gdk_device_add_axis (GDK_DEVICE (device),
GDK_NONE,
+ NULL,
GDK_AXIS_PRESSURE,
axis_npressure.axMin,
axis_npressure.axMax,
@@ -638,6 +641,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
*/
_gdk_device_add_axis (GDK_DEVICE (device),
GDK_NONE,
+ NULL,
GDK_AXIS_XTILT,
-1000,
1000,
@@ -645,6 +649,7 @@ _gdk_input_wintab_init_check (GdkDeviceManager *_device_manager)
_gdk_device_add_axis (GDK_DEVICE (device),
GDK_NONE,
+ NULL,
GDK_AXIS_YTILT,
-1000,
1000,
diff --git a/gdk/x11/gdkdevice-core-x11.c b/gdk/x11/gdkdevice-core-x11.c
index 57a1975..6a74ca5 100644
--- a/gdk/x11/gdkdevice-core-x11.c
+++ b/gdk/x11/gdkdevice-core-x11.c
@@ -104,8 +104,8 @@ gdk_x11_device_core_init (GdkX11DeviceCore *device_core)
device = GDK_DEVICE (device_core);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_X, 0, 0, 1);
- _gdk_device_add_axis (device, GDK_NONE, GDK_AXIS_Y, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_X, 0, 0, 1);
+ _gdk_device_add_axis (device, GDK_NONE, NULL, GDK_AXIS_Y, 0, 0, 1);
}
static gboolean
diff --git a/gdk/x11/gdkdevicemanager-xi2.c b/gdk/x11/gdkdevicemanager-xi2.c
index 0ae7117..eba600e 100644
--- a/gdk/x11/gdkdevicemanager-xi2.c
+++ b/gdk/x11/gdkdevicemanager-xi2.c
@@ -167,7 +167,8 @@ translate_valuator_class (GdkDisplay *display,
static gboolean initialized = FALSE;
static Atom label_atoms [GDK_AXIS_LAST] = { 0 };
GdkAxisUse use = GDK_AXIS_IGNORE;
- GdkAtom label;
+ GdkAtom atom;
+ const char *label;
gint i;
if (!initialized)
@@ -191,11 +192,17 @@ translate_valuator_class (GdkDisplay *display,
}
if (valuator_label != None)
- label = gdk_x11_xatom_to_atom_for_display (display, valuator_label);
+ {
+ atom = gdk_x11_xatom_to_atom_for_display (display, valuator_label);
+ label = gdk_x11_get_xatom_name_for_display (display, valuator_label);
+ }
else
- label = GDK_NONE;
+ {
+ atom = GDK_NONE;
+ label = NULL;
+ }
- _gdk_device_add_axis (device, label, use, min, max, resolution);
+ _gdk_device_add_axis (device, atom, label, use, min, max, resolution);
}
static void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]