/* Callback issued when a button is clicked on the dialog */ static void device_changed (GsdDeviceManager *device_manager, GsdDevice *device, CcMousePropertiesPrivate *d) { d->have_touchpad = touchpad_is_present (); setup_touchpad_options (d); d->have_mouse = mouse_is_present (); gtk_widget_set_visible (WID ("mouse-frame"), d->have_mouse); gtk_widget_set_visible (WID ("touchpad-toggle-switch"), show_touchpad_enabling_switch (d)); }
static void device_changed (GsdDeviceManager *device_manager, GsdDevice *device, CcMousePropertiesPrivate *d) { d->have_touchpad = have_device_type (d->device_manager, GSD_DEVICE_TYPE_TOUCHPAD); gtk_widget_set_visible (WID ("touchpad_vbox"), d->have_touchpad); if (d->have_touchpad) { d->changing_scroll = TRUE; synaptics_check_capabilities (d); setup_scrollmethod_radios (d); d->changing_scroll = FALSE; } d->have_mouse = have_device_type (d->device_manager, GSD_DEVICE_TYPE_MOUSE); gtk_widget_set_visible (WID ("mouse_vbox"), d->have_mouse); gtk_widget_set_visible (WID ("touchpad_enabled_switch"), show_touchpad_enabling_switch (d)); }
/* Set up the property editors in the dialog. */ static void setup_dialog (CcMousePropertiesPrivate *d) { GtkRadioButton *radio; /* Orientation radio buttons */ radio = GTK_RADIO_BUTTON (WID ("left_handed_radio")); g_settings_bind (d->mouse_settings, "left-handed", radio, "active", G_SETTINGS_BIND_DEFAULT); /* explicitly connect to button-release so that you can change orientation with either button */ g_signal_connect (WID ("right_handed_radio"), "button_release_event", G_CALLBACK (orientation_radio_button_release_event), NULL); g_signal_connect (WID ("left_handed_radio"), "button_release_event", G_CALLBACK (orientation_radio_button_release_event), NULL); /* Double-click time */ g_settings_bind (d->gsd_mouse_settings, "double-click", gtk_range_get_adjustment (GTK_RANGE (WID ("double_click_scale"))), "value", G_SETTINGS_BIND_DEFAULT); /* Mouse section */ gtk_widget_set_visible (WID ("mouse_vbox"), d->have_mouse); gtk_scale_add_mark (GTK_SCALE (WID ("pointer_speed_scale")), 0, GTK_POS_TOP, NULL); g_settings_bind (d->mouse_settings, "speed", gtk_range_get_adjustment (GTK_RANGE (WID ("pointer_speed_scale"))), "value", G_SETTINGS_BIND_DEFAULT); /* Trackpad page */ gtk_widget_set_visible (WID ("touchpad_vbox"), d->have_touchpad); gtk_widget_set_visible (WID ("touchpad_enabled_switch"), show_touchpad_enabling_switch (d)); g_settings_bind_with_mapping (d->touchpad_settings, "send-events", WID ("touchpad_enabled_switch"), "active", G_SETTINGS_BIND_DEFAULT, touchpad_enabled_get_mapping, touchpad_enabled_set_mapping, NULL, NULL); g_settings_bind_with_mapping (d->touchpad_settings, "send-events", WID ("touchpad_options_box"), "sensitive", G_SETTINGS_BIND_GET, touchpad_enabled_get_mapping, touchpad_enabled_set_mapping, NULL, NULL); g_settings_bind (d->touchpad_settings, "tap-to-click", WID ("tap_to_click_toggle"), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (d->touchpad_settings, "natural-scroll", WID ("natural_scroll_toggle"), "active", G_SETTINGS_BIND_DEFAULT); gtk_scale_add_mark (GTK_SCALE (WID ("touchpad_pointer_speed_scale")), 0, GTK_POS_TOP, NULL); g_settings_bind (d->touchpad_settings, "speed", gtk_range_get_adjustment (GTK_RANGE (WID ("touchpad_pointer_speed_scale"))), "value", G_SETTINGS_BIND_DEFAULT); if (d->have_touchpad) { synaptics_check_capabilities (d); setup_scrollmethod_radios (d); } g_signal_connect (WID ("two_finger_scroll_toggle"), "toggled", G_CALLBACK (scrollmethod_changed_event), d); }
/* Set up the property editors in the dialog. */ static void setup_dialog (CcMousePropertiesPrivate *d) { GtkWidget *button; d->left_handed = g_settings_get_boolean (d->mouse_settings, "left-handed"); button = WID (d->left_handed ? "primary-button-right" : "primary-button-left"); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), TRUE); g_settings_bind (d->mouse_settings, "left-handed", WID ("primary-button-left"), "active", G_SETTINGS_BIND_DEFAULT | G_SETTINGS_BIND_INVERT_BOOLEAN); g_settings_bind (d->mouse_settings, "left-handed", WID ("primary-button-right"), "active", G_SETTINGS_BIND_DEFAULT); /* Allow changing orientation with either button */ button = WID ("primary-button-right"); d->right_gesture = gtk_gesture_multi_press_new (button); handle_secondary_button (d, button, d->right_gesture); button = WID ("primary-button-left"); d->left_gesture = gtk_gesture_multi_press_new (button); handle_secondary_button (d, button, d->left_gesture); g_settings_bind (d->mouse_settings, "natural-scroll", WID ("mouse-natural-scrolling-switch"), "active", G_SETTINGS_BIND_DEFAULT); gtk_list_box_set_header_func (GTK_LIST_BOX (WID ("general-listbox")), cc_list_box_update_header_func, NULL, NULL); gtk_list_box_set_header_func (GTK_LIST_BOX (WID ("touchpad-listbox")), cc_list_box_update_header_func, NULL, NULL); /* Mouse section */ gtk_widget_set_visible (WID ("mouse-frame"), d->have_mouse); g_settings_bind (d->mouse_settings, "speed", gtk_range_get_adjustment (GTK_RANGE (WID ("mouse-speed-scale"))), "value", G_SETTINGS_BIND_DEFAULT); gtk_list_box_set_header_func (GTK_LIST_BOX (WID ("mouse-listbox")), cc_list_box_update_header_func, NULL, NULL); /* Touchpad section */ gtk_widget_set_visible (WID ("touchpad-toggle-switch"), show_touchpad_enabling_switch (d)); g_settings_bind_with_mapping (d->touchpad_settings, "send-events", WID ("touchpad-toggle-switch"), "active", G_SETTINGS_BIND_DEFAULT, touchpad_enabled_get_mapping, touchpad_enabled_set_mapping, NULL, NULL); g_settings_bind_with_mapping (d->touchpad_settings, "send-events", WID ("touchpad-options-listbox"), "sensitive", G_SETTINGS_BIND_GET, touchpad_enabled_get_mapping, touchpad_enabled_set_mapping, NULL, NULL); g_settings_bind (d->touchpad_settings, "natural-scroll", WID ("touchpad-natural-scrolling-switch"), "active", G_SETTINGS_BIND_DEFAULT); g_settings_bind (d->touchpad_settings, "speed", gtk_range_get_adjustment (GTK_RANGE (WID ("touchpad-speed-scale"))), "value", G_SETTINGS_BIND_DEFAULT); g_settings_bind (d->touchpad_settings, "tap-to-click", WID ("tap-to-click-switch"), "active", G_SETTINGS_BIND_DEFAULT); setup_touchpad_options (d); g_signal_connect (WID ("edge-scrolling-switch"), "state-set", G_CALLBACK (edge_scrolling_changed_event), d); g_signal_connect (WID ("two-finger-scrolling-switch"), "state-set", G_CALLBACK (two_finger_scrolling_changed_event), d); gtk_list_box_set_header_func (GTK_LIST_BOX (WID ("touchpad-options-listbox")), cc_list_box_update_header_func, NULL, NULL); }