gpointing-device-settings r106 - in trunk: data modules modules/common
- From: hiikezoe svn gnome org
- To: svn-commits-list gnome org
- Subject: gpointing-device-settings r106 - in trunk: data modules modules/common
- Date: Tue, 3 Mar 2009 03:37:18 +0000 (UTC)
Author: hiikezoe
Date: Tue Mar 3 03:37:18 2009
New Revision: 106
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=106&view=rev
Log:
Implement touchpad on/off feature.
Modified:
trunk/data/touchpad.ui.in
trunk/modules/common/gpds-touchpad-xinput.h
trunk/modules/gpds-touchpad-ui.c
Modified: trunk/data/touchpad.ui.in
==============================================================================
--- trunk/data/touchpad.ui.in (original)
+++ trunk/data/touchpad.ui.in Tue Mar 3 03:37:18 2009
@@ -95,6 +95,85 @@
<property name="scrollable">False</property>
<property name="enable_popup">False</property>
<child>
+ <object class="GtkVBox" id="general_vbox">
+ <property name="border_width">12</property>
+ <property name="visible">True</property>
+ <property name="homogeneous">False</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkFrame" id="general_frame">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="label_yalign">0.5</property>
+ <property name="shadow_type">GTK_SHADOW_NONE</property>
+ <child>
+ <object class="GtkListStore" id="general_use_list_store">
+ <columns>
+ <column type="gint"/>
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">1</col>
+ <col id="1">Touchpad on</col>
+ </row>
+ <row>
+ <col id="0">2</col>
+ <col id="1">Touchpad off</col>
+ </row>
+ <row>
+ <col id="0">3</col>
+ <col id="1">Touchpad uses only for moving cursor</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkComboBox" id="general_use">
+ <property name="visible">True</property>
+ <property name="model">general_use_list_store</property>
+ <property name="can_focus">True</property>
+ <property name="focus_on_click">True</property>
+ <property name="active">0</property>
+ <child>
+ <object class="GtkCellRendererText" id="touchpad_use_type"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="padding">0</property>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="tab_expand">False</property>
+ <property name="tab_fill">True</property>
+ </packing>
+ </child>
+ <child type="tab">
+ <object class="GtkLabel" id="label1">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">General</property>
+ <property name="use_underline">False</property>
+ <property name="use_markup">False</property>
+ <property name="justify">GTK_JUSTIFY_CENTER</property>
+ <property name="wrap">False</property>
+ <property name="selectable">False</property>
+ <property name="xalign">0.5</property>
+ <property name="yalign">0.5</property>
+ <property name="xpad">0</property>
+ <property name="ypad">0</property>
+ <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
+ <property name="width_chars">-1</property>
+ <property name="single_line_mode">False</property>
+ <property name="angle">0</property>
+ </object>
+ </child>
+ <child>
<object class="GtkVBox" id="tapping_vbox">
<property name="border_width">12</property>
<property name="visible">True</property>
Modified: trunk/modules/common/gpds-touchpad-xinput.h
==============================================================================
--- trunk/modules/common/gpds-touchpad-xinput.h (original)
+++ trunk/modules/common/gpds-touchpad-xinput.h Tue Mar 3 03:37:18 2009
@@ -68,6 +68,12 @@
GPDS_TOUCHPAD_CIRCULAR_SCROLLING_TRIGGER_LEFT_TOP
} GpdsTouchpadCircularScrollingTrigger;
+typedef enum {
+ GPDS_TOUCHPAD_USE_TYPE_NORMAL,
+ GPDS_TOUCHPAD_USE_TYPE_OFF,
+ GPDS_TOUCHPAD_USE_TYPE_CURSOR_MOVE_ONLY,
+} GpdsTouchpadUseType;
+
typedef struct _GpdsTouchpadXInputProperty GpdsTouchpadXInputProperty;
struct _GpdsTouchpadXInputProperty
{
Modified: trunk/modules/gpds-touchpad-ui.c
==============================================================================
--- trunk/modules/gpds-touchpad-ui.c (original)
+++ trunk/modules/gpds-touchpad-ui.c Tue Mar 3 03:37:18 2009
@@ -287,11 +287,8 @@
cb_tapping_time_scale_value_changed (GtkRange *range, gpointer user_data)
{
GpdsTouchpadUI *ui = GPDS_TOUCHPAD_UI(user_data);
- GtkBuilder *builder;
gdouble time;
- builder = gpds_ui_get_builder(GPDS_UI(user_data));
-
set_range_property(ui->xinput, range, GPDS_TOUCHPAD_TAP_TIME);
time = gtk_range_get_value(range);
@@ -302,11 +299,8 @@
cb_faster_tapping_check_toggled (GtkToggleButton *button, gpointer user_data)
{
GpdsTouchpadUI *ui = GPDS_TOUCHPAD_UI(user_data);
- GtkBuilder *builder;
gboolean check;
- builder = gpds_ui_get_builder(GPDS_UI(user_data));
-
set_toggle_property(ui->xinput, button, GPDS_TOUCHPAD_TAP_FAST_TAP);
check = gtk_toggle_button_get_active(button);
gconf_client_set_bool(ui->gconf, GPDS_TOUCHPAD_TAP_FAST_TAP_KEY, check, NULL);
@@ -471,6 +465,41 @@
#undef DEFINE_CIRCULAR_SCROLLING_TRIGGER_CALLBACK
static void
+set_touchpad_use_type_combo_state (GpdsTouchpadUI *ui,
+ GpdsTouchpadUseType use_type)
+{
+ GtkComboBox *combo;
+ GtkBuilder *builder;
+
+ builder = gpds_ui_get_builder(GPDS_UI(ui));
+
+ combo = GTK_COMBO_BOX(gtk_builder_get_object(builder, "touchpad_use_type"));
+ gtk_combo_box_set_active(combo, (gint)use_type);
+}
+
+static void
+cb_touchpad_use_type_changed (GtkComboBox *combo, gpointer user_data)
+{
+ GpdsTouchpadUI *ui = GPDS_TOUCHPAD_UI(user_data);
+ gint properties[1];
+ GError *error = NULL;
+
+ properties[0] = gtk_combo_box_get_active(combo);
+ if (!gpds_xinput_set_int_properties(ui->xinput,
+ gpds_touchpad_xinput_get_name(GPDS_TOUCHPAD_OFF),
+ gpds_touchpad_xinput_get_format_type(GPDS_TOUCHPAD_OFF),
+ &error,
+ properties,
+ 1)) {
+ if (error) {
+ show_error(error);
+ g_error_free(error);
+ }
+ }
+ gconf_client_set_bool(ui->gconf, GPDS_TOUCHPAD_OFF_KEY, properties[0], NULL);
+}
+
+static void
setup_signals (GpdsUI *ui, GtkBuilder *builder)
{
GObject *object;
@@ -481,6 +510,7 @@
G_CALLBACK(cb_ ## object_name ## _ ## signal_name),\
ui)
+ CONNECT(touchpad_use_type, changed);
CONNECT(tapping_time_scale, value_changed);
CONNECT(faster_tapping_check, toggled);
CONNECT(circular_scrolling, toggled);
@@ -682,6 +712,31 @@
}
static void
+set_touchpad_use_type_property_from_preference (GpdsTouchpadUI *ui,
+ GtkBuilder *builder)
+{
+ GError *error = NULL;
+ gint *values;
+ gulong n_values;
+ GpdsTouchpadUseType type;
+
+ if (!get_integer_property(ui->xinput,
+ GPDS_TOUCHPAD_OFF,
+ &values, &n_values)) {
+ return;
+ }
+
+ type = gconf_client_get_int(ui->gconf,
+ GPDS_TOUCHPAD_OFF_KEY,
+ &error);
+ set_touchpad_use_type_combo_state(ui, error ? values[0] : type);
+ if (error)
+ g_clear_error(&error);
+
+ g_free(values);
+}
+
+static void
setup_current_values (GpdsUI *ui, GtkBuilder *builder)
{
GpdsTouchpadUI *touchpad_ui = GPDS_TOUCHPAD_UI(ui);
@@ -704,6 +759,8 @@
set_edge_scroll_property_from_preference(touchpad_ui, builder);
set_scroll_distance_property_from_preference(touchpad_ui, builder);
set_circular_scrolling_trigger_property_from_preference(touchpad_ui, builder);
+
+ set_touchpad_use_type_property_from_preference(touchpad_ui, builder);
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]