gpointing-device-settings r128 - in trunk: . modules/gnome-settings-daemon-plugins src test
- From: hiikezoe svn gnome org
- To: svn-commits-list gnome org
- Subject: gpointing-device-settings r128 - in trunk: . modules/gnome-settings-daemon-plugins src test
- Date: Fri, 6 Mar 2009 07:23:36 +0000 (UTC)
Author: hiikezoe
Date: Fri Mar 6 07:23:36 2009
New Revision: 128
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=128&view=rev
Log:
added GpdsXInputPointerInfo. The test fails yet.
Modified:
trunk/TODO
trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c
trunk/src/gpds-xinput-utils.c
trunk/src/gpds-xinput-utils.h
trunk/test/test-xinput-utils.c
Modified: trunk/TODO
==============================================================================
--- trunk/TODO (original)
+++ trunk/TODO Fri Mar 6 07:23:36 2009
@@ -1 +1,2 @@
+* trackpoint should be "mouse".
* more touchpad settings.
Modified: trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c
==============================================================================
--- trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c (original)
+++ trunk/modules/gnome-settings-daemon-plugins/gsd-touchpad-manager.c Fri Mar 6 07:23:36 2009
@@ -181,7 +181,7 @@
gboolean
gsd_touchpad_manager_start (GsdTouchpadManager *manager,
- GError **error)
+ GError **error)
{
GsdTouchpadManagerPrivate *priv;
Modified: trunk/src/gpds-xinput-utils.c
==============================================================================
--- trunk/src/gpds-xinput-utils.c (original)
+++ trunk/src/gpds-xinput-utils.c Fri Mar 6 07:23:36 2009
@@ -105,8 +105,28 @@
return gpds_xinput_utils_get_device_info(device_name) ? TRUE : FALSE;
}
+GpdsXInputPointerInfo *
+gpds_xinput_pointer_info_new (const gchar *name, const gchar *type_name)
+{
+ GpdsXInputPointerInfo *info;
+
+ info = g_new0(GpdsXInputPointerInfo, 1);
+ info->name = g_strdup(name);
+ info->type_name = g_strdup(type_name);
+
+ return info;
+}
+
+void
+gpds_xinput_pointer_info_free (GpdsXInputPointerInfo *info)
+{
+ g_free(info->name);
+ g_free(info->type_name);
+ g_free(info);
+}
+
GList *
-gpds_xinput_utils_get_pointer_device_names (void)
+gpds_xinput_utils_collect_pointer_infos (void)
{
GList *device_names = NULL;
XDeviceInfo *device_infos;
@@ -115,9 +135,14 @@
device_infos = XListInputDevices(GDK_DISPLAY(), &n_device_infos);
for (i = 0; i < n_device_infos; i++) {
+ GpdsXInputPointerInfo *info;
+
if (device_infos[i].use != IsXExtensionPointer)
continue;
- device_names = g_list_prepend(device_names, device_infos[i].name);
+ info = gpds_xinput_pointer_info_new(device_infos[i].name,
+ XGetAtomName(GDK_DISPLAY(), device_infos[i].type));
+
+ device_names = g_list_prepend(device_names, info);
}
XFreeDeviceList(device_infos);
Modified: trunk/src/gpds-xinput-utils.h
==============================================================================
--- trunk/src/gpds-xinput-utils.h (original)
+++ trunk/src/gpds-xinput-utils.h Fri Mar 6 07:23:36 2009
@@ -35,12 +35,23 @@
GPDS_XINPUT_UTILS_ERROR_NO_FLOAT_ATOM
} GpdsXInputUtilsError;
+typedef struct _GpdsXInputPointerInfo GpdsXInputPointerInfo;
+struct _GpdsXInputPointerInfo
+{
+ gchar *name;
+ gchar *type_name; /* MOUSE, TOUCHPAD, ... */
+};
+
+GpdsXInputPointerInfo *gpds_xinput_pointer_info_new (const gchar *name,
+ const gchar *type_name);
+void gpds_xinput_pointer_info_free (GpdsXInputPointerInfo *info);
+
GQuark gpds_xinput_utils_error_quark (void);
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);
gboolean gpds_xinput_utils_exist_device (const gchar *device_name);
-GList *gpds_xinput_utils_get_pointer_device_names (void);
+GList *gpds_xinput_utils_collect_pointer_infos (void);
G_END_DECLS
Modified: trunk/test/test-xinput-utils.c
==============================================================================
--- trunk/test/test-xinput-utils.c (original)
+++ trunk/test/test-xinput-utils.c Fri Mar 6 07:23:36 2009
@@ -10,12 +10,16 @@
static GError *error;
static XDevice *device;
+static GList *pointer_infos;
+static GList *expected_pointer_infos;
void
setup (void)
{
error = NULL;
device = NULL;
+ pointer_infos = NULL;
+ expected_pointer_infos = NULL;
}
void
@@ -24,6 +28,11 @@
if (device)
XCloseDevice(GDK_DISPLAY(), device);
g_clear_error(&error);
+
+ if (pointer_infos) {
+ g_list_foreach(pointer_infos, (GFunc)gpds_xinput_pointer_info_free, NULL);
+ g_list_free(pointer_infos);
+ }
}
void
@@ -54,6 +63,41 @@
cut_assert(device);
}
+static void
+gpds_xinput_pointer_info_inspect (GString *string,
+ gconstpointer data,
+ gpointer user_data)
+{
+ GpdsXInputPointerInfo *info = (GpdsXInputPointerInfo*)data;
+
+ g_string_append_printf(string, "%s (%s)", info->name, info->type_name);
+}
+
+static gboolean
+gpds_xinput_pointer_info_equal (gconstpointer a, gconstpointer b)
+{
+ GpdsXInputPointerInfo *a_info = (GpdsXInputPointerInfo*)a;
+ GpdsXInputPointerInfo *b_info = (GpdsXInputPointerInfo*)b;
+
+ if (!a || !b)
+ return FALSE;
+
+ if (g_strcmp0(a_info->name, b_info->name))
+ return FALSE;
+ return (!g_strcmp0(a_info->type_name, b_info->type_name));
+}
+
+void
+test_collect_pointer_infos (void)
+{
+ pointer_infos = gpds_xinput_utils_collect_pointer_infos();
+
+ gcut_assert_equal_list(expected_pointer_infos, pointer_infos,
+ gpds_xinput_pointer_info_equal,
+ gpds_xinput_pointer_info_inspect,
+ NULL);
+}
+
/*
vi:ts=4:nowrap:ai:expandtab:sw=4
*/
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]