gpointing-device-settings r109 - trunk/modules



Author: hiikezoe
Date: Tue Mar  3 06:15:58 2009
New Revision: 109
URL: http://svn.gnome.org/viewvc/gpointing-device-settings?rev=109&view=rev

Log:
set widget sensitivity depends on settings.

Modified:
   trunk/modules/gpds-touchpad-ui.c

Modified: trunk/modules/gpds-touchpad-ui.c
==============================================================================
--- trunk/modules/gpds-touchpad-ui.c	(original)
+++ trunk/modules/gpds-touchpad-ui.c	Tue Mar  3 06:15:58 2009
@@ -156,13 +156,12 @@
 static void
 set_widget_sensitivity (GtkBuilder *builder,
                         const gchar *widget_id, 
-                        GtkToggleButton *button)
+                        gboolean sensitivity)
 {
     GObject *object;
 
     object = gtk_builder_get_object(builder, widget_id);
-    gtk_widget_set_sensitive(GTK_WIDGET(object),
-                             gtk_toggle_button_get_active(button));
+    gtk_widget_set_sensitive(GTK_WIDGET(object), sensitivity);
 }
 
 static void
@@ -194,12 +193,12 @@
     gint properties[3];
 
     object = gtk_builder_get_object(builder, "vertical_scrolling");
-    set_widget_sensitivity(builder, "vertical_scrolling", GTK_TOGGLE_BUTTON(object));
     properties[0] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(object)) ? 1 :0;
+    set_widget_sensitivity(builder, "vertical_scrolling_box", properties[0]);
 
     object = gtk_builder_get_object(builder, "horizontal_scrolling");
-    set_widget_sensitivity(builder, "horizontal_scrolling", GTK_TOGGLE_BUTTON(object));
     properties[1] = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(object)) ? 1 :0;
+    set_widget_sensitivity(builder, "horizontal_scrolling_box", properties[1]);
 
     properties[2] = 0;
 
@@ -316,9 +315,9 @@
     builder = gpds_ui_get_builder(GPDS_UI(user_data));
 
     set_toggle_property(ui->xinput, button, GPDS_TOUCHPAD_CIRCULAR_SCROLLING);
-    set_widget_sensitivity(builder, "circular_scroling_box", button);
 
     check = gtk_toggle_button_get_active(button);
+    set_widget_sensitivity(builder, "circular_scrolling_box", check);
     gconf_client_set_bool(ui->gconf, GPDS_TOUCHPAD_CIRCULAR_SCROLLING_KEY, check, NULL);
 }
 
@@ -465,6 +464,28 @@
 #undef DEFINE_CIRCULAR_SCROLLING_TRIGGER_CALLBACK
 
 static void
+set_sensitivity_depends_on_use_type (GpdsTouchpadUI *ui,
+                                     GpdsTouchpadUseType use_type)
+{
+    GtkBuilder *builder;
+
+    builder = gpds_ui_get_builder(GPDS_UI(ui));
+
+    switch (use_type) {
+    case GPDS_TOUCHPAD_USE_TYPE_OFF:
+    case GPDS_TOUCHPAD_USE_TYPE_CURSOR_MOVE_ONLY:
+        set_widget_sensitivity(builder, "scrolling_vbox", FALSE);
+        set_widget_sensitivity(builder, "tapping_vbox", FALSE);
+        break;
+    case GPDS_TOUCHPAD_USE_TYPE_NORMAL:
+        set_widget_sensitivity(builder, "scrolling_vbox", TRUE);
+        set_widget_sensitivity(builder, "tapping_vbox", TRUE);
+    default:
+        break;
+    }
+}
+
+static void
 set_touchpad_use_type_combo_state (GpdsTouchpadUI *ui, 
                                    GpdsTouchpadUseType use_type)
 {
@@ -475,6 +496,7 @@
 
     combo = GTK_COMBO_BOX(gtk_builder_get_object(builder, "touchpad_use_type"));
     gtk_combo_box_set_active(combo, (gint)use_type);
+    set_sensitivity_depends_on_use_type(ui, use_type);
 }
 
 static void
@@ -497,6 +519,7 @@
         }
     }
     gconf_client_set_bool(ui->gconf, GPDS_TOUCHPAD_OFF_KEY, properties[0], NULL);
+    set_sensitivity_depends_on_use_type(ui, properties[0]);
 }
 
 static void
@@ -582,7 +605,7 @@
     g_free(values);
 }
 
-static void
+static gboolean
 set_boolean_property_from_preference (GpdsTouchpadUI *ui,
                                       GpdsTouchpadProperty property,
                                       const gchar *gconf_key_name,
@@ -596,7 +619,7 @@
 
     if (!get_integer_property(ui->xinput, property,
                               &values, &n_values)) {
-        return;
+        return FALSE;
     }
 
     dir_exists = gconf_client_dir_exists(ui->gconf, GPDS_TOUCHPAD_GCONF_DIR, NULL);
@@ -607,6 +630,8 @@
     object = gtk_builder_get_object(builder, object_name);
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(object), enable);
     g_free(values);
+
+    return enable;
 }
 
 static void
@@ -635,6 +660,7 @@
         enable = (values[0] == 1);
     object = gtk_builder_get_object(builder, "vertical_scrolling");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(object), enable);
+    set_widget_sensitivity(builder, "vertical_scrolling_box", enable);
 
     if (dir_exists)
         enable = gconf_client_get_bool(ui->gconf, GPDS_TOUCHPAD_HORIZONTAL_SCROLLING_KEY, NULL);
@@ -642,6 +668,7 @@
         enable = (values[0] == 1);
     object = gtk_builder_get_object(builder, "horizontal_scrolling");
     gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(object), enable);
+    set_widget_sensitivity(builder, "horizontal_scrolling_box", enable);
 
     g_free(values);
 }
@@ -687,6 +714,21 @@
 }
 
 static void
+set_circular_scrolling_property_from_preference (GpdsTouchpadUI *ui,
+                                                 GtkBuilder *builder)
+{
+    gboolean enable;
+
+    enable = set_boolean_property_from_preference(ui,
+                                                  GPDS_TOUCHPAD_CIRCULAR_SCROLLING,
+                                                  GPDS_TOUCHPAD_CIRCULAR_SCROLLING_KEY,
+                                                  builder,
+                                                  "circular_scrolling");
+
+    set_widget_sensitivity(builder, "circular_scrolling_box", enable);
+}
+
+static void
 set_circular_scrolling_trigger_property_from_preference (GpdsTouchpadUI *ui,
                                                          GtkBuilder *builder)
 {
@@ -751,11 +793,7 @@
                                          GPDS_TOUCHPAD_TAP_FAST_TAP_KEY,
                                          builder,
                                          "faster_tapping_check");
-    set_boolean_property_from_preference(touchpad_ui,
-                                         GPDS_TOUCHPAD_CIRCULAR_SCROLLING,
-                                         GPDS_TOUCHPAD_CIRCULAR_SCROLLING_KEY, 
-                                         builder,
-                                         "circular_scrolling");
+    set_circular_scrolling_property_from_preference(touchpad_ui, builder);
     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);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]