gpointing-device-settings r176 - trunk/src
- From: hiikezoe svn gnome org
- To: svn-commits-list gnome org
- Subject: gpointing-device-settings r176 - trunk/src
- Date: Sun, 8 Mar 2009 05:29:40 +0000 (UTC)
Author: hiikezoe
Date: Sun Mar 8 05:29:39 2009
New Revision: 176
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=176&view=rev
Log:
added +gpds_xinput_utils_get_device_num_buttons.
Modified:
trunk/src/gpds-xinput-utils.c
trunk/src/gpds-xinput-utils.h
Modified: trunk/src/gpds-xinput-utils.c
==============================================================================
--- trunk/src/gpds-xinput-utils.c (original)
+++ trunk/src/gpds-xinput-utils.c Sun Mar 8 05:29:39 2009
@@ -46,8 +46,10 @@
for (i = 0; i < n_device_infos; i++) {
if (device_infos[i].use != IsXExtensionPointer)
continue;
- if (!strcmp(device_infos[i].name, device_name))
+ if (!strcmp(device_infos[i].name, device_name)) {
+ XFreeDeviceList(device_infos);
return &device_infos[i];
+ }
}
XFreeDeviceList(device_infos);
@@ -55,6 +57,36 @@
return NULL;
}
+gshort
+gpds_xinput_utils_get_device_num_buttons (const gchar *device_name, GError **error)
+{
+ XDeviceInfo *device_info;
+ XAnyClassInfo *class_info;
+ gint i;
+
+ device_info = gpds_xinput_utils_get_device_info(device_name);
+ if (!device_info) {
+ g_set_error(error,
+ GPDS_XINPUT_UTILS_ERROR,
+ GPDS_XINPUT_UTILS_ERROR_NO_DEVICE,
+ _("No %s found."), device_name);
+ return -1;
+ }
+
+ for (i = 0, class_info = device_info->inputclassinfo;
+ i < device_info->num_classes;
+ i++) {
+ if (class_info->class == ButtonClass) {
+ XButtonInfo *button_info;
+
+ button_info = (XButtonInfo *)class_info;
+ return button_info->num_buttons;
+ }
+ class_info = (XAnyClassInfo *)(class_info + class_info->length);
+ }
+ return -1;
+}
+
XDevice *
gpds_xinput_utils_open_device (const gchar *device_name, GError **error)
{
Modified: trunk/src/gpds-xinput-utils.h
==============================================================================
--- trunk/src/gpds-xinput-utils.h (original)
+++ trunk/src/gpds-xinput-utils.h Sun Mar 8 05:29:39 2009
@@ -39,6 +39,7 @@
XDeviceInfo *gpds_xinput_utils_get_device_info (const gchar *device_name);
XDevice *gpds_xinput_utils_open_device (const gchar *device_name, GError **error);
Atom gpds_xinput_utils_get_float_atom (GError **error);
+gshort gpds_xinput_utils_get_device_num_buttons (const gchar *device_name, GError **error);
gboolean gpds_xinput_utils_exist_device (const gchar *device_name);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]