+
+static void
+on_auto_update_toggled (GtkToggleButton *togglebutton,
+ gpointer user_data)
+{
+ ModestGlobalSettingsDialogPrivate *ppriv;
+ GtkWidget *caption1, *caption2;
+
+ ppriv = MODEST_GLOBAL_SETTINGS_DIALOG_GET_PRIVATE (user_data);
+ caption1 = gtk_widget_get_ancestor (ppriv->connect_via, HILDON_TYPE_CAPTION);
+ caption2 = gtk_widget_get_ancestor (ppriv->update_interval, HILDON_TYPE_CAPTION);
+
+ if (gtk_toggle_button_get_active (togglebutton)) {
+ gtk_widget_set_sensitive (caption1, TRUE);
+ gtk_widget_set_sensitive (caption2, TRUE);
+ } else {
+ gtk_widget_set_sensitive (caption1, FALSE);
+ gtk_widget_set_sensitive (caption2, FALSE);
+ }
+}
+
+static gboolean
+on_range_error (HildonNumberEditor *editor,
+ HildonNumberEditorErrorType type,
+ gpointer user_data)
+{
+ gchar *msg;
+ gint new_val;
+
+ switch (type) {
+#ifdef MODEST_HAVE_HILDON0_WIDGETS
+ case MAXIMUM_VALUE_EXCEED:
+#else
+ case HILDON_NUMBER_EDITOR_ERROR_MAXIMUM_VALUE_EXCEED:
+#endif
+ msg = g_strdup_printf (dgettext("hildon-libs", "ckct_ib_maximum_value"), MSG_SIZE_MAX_VAL);
+ new_val = MSG_SIZE_MAX_VAL;
+ break;
+#ifdef MODEST_HAVE_HILDON0_WIDGETS
+ case MINIMUM_VALUE_EXCEED:
+#else
+ case HILDON_NUMBER_EDITOR_ERROR_MINIMUM_VALUE_EXCEED:
+#endif
+ msg = g_strdup_printf (dgettext("hildon-libs", "ckct_ib_minimum_value"), MSG_SIZE_MIN_VAL);
+ new_val = MSG_SIZE_MIN_VAL;
+ break;
+#ifdef MODEST_HAVE_HILDON0_WIDGETS
+ case ERRONEOUS_VALUE:
+#else
+ case HILDON_NUMBER_EDITOR_ERROR_ERRONEOUS_VALUE:
+#endif
+ msg = g_strdup_printf (dgettext("hildon-libs", "ckct_ib_set_a_value_within_range"),
+ MSG_SIZE_MIN_VAL,
+ MSG_SIZE_MAX_VAL);
+ /* FIXME: use the previous */
+ new_val = MSG_SIZE_DEF_VAL;
+ break;
+ default:
+ g_return_val_if_reached (FALSE);
+ }
+
+ /* Restore value */
+ hildon_number_editor_set_value (editor, new_val);
+
+ /* Show error */
+ hildon_banner_show_information (GTK_WIDGET (user_data), NULL, msg);
+
+ /* Free */
+ g_free (msg);
+
+ return TRUE;
+}
+
+static ModestConnectedVia
+current_connection (void)
+{
+ TnyAccountStore *account_store = NULL;
+ TnyDevice *device = NULL;
+ ModestConnectedVia retval = MODEST_CONNECTED_VIA_ANY;
+
+ account_store = TNY_ACCOUNT_STORE (modest_runtime_get_account_store ());
+ device = tny_account_store_get_device (account_store);
+
+ if (!tny_device_is_online (device))
+ return MODEST_CONNECTED_VIA_ANY;
+
+ /* Get iap id */
+ const gchar *iap_id = tny_maemo_conic_device_get_current_iap_id (TNY_MAEMO_CONIC_DEVICE (device));
+ if (iap_id) {
+ ConIcIap *iap = tny_maemo_conic_device_get_iap (
+ TNY_MAEMO_CONIC_DEVICE (device), iap_id);
+ const gchar *bearer_type = con_ic_iap_get_bearer_type (iap);
+ if (bearer_type) {
+ if (!strcmp (bearer_type, CON_IC_BEARER_WLAN_INFRA) ||
+ !strcmp (bearer_type, CON_IC_BEARER_WLAN_ADHOC))
+ retval = MODEST_CONNECTED_VIA_WLAN;
+ else
+ retval = MODEST_CONNECTED_VIA_ANY;
+ }
+
+ g_object_unref (iap);
+ }
+
+ g_object_unref (device);
+
+ return retval;
+}
+
+static gboolean
+on_inner_tabs_key_pressed (GtkWidget *widget,
+ GdkEventKey *event,
+ gpointer user_data)
+{
+ ModestGlobalSettingsDialogPrivate *ppriv;
+ gboolean retval = FALSE;
+
+ ppriv = MODEST_GLOBAL_SETTINGS_DIALOG_GET_PRIVATE (user_data);
+
+ if (widget == user_data) {
+ if (event->keyval == GDK_Right) {
+ gtk_notebook_next_page (GTK_NOTEBOOK (ppriv->notebook));
+ retval = TRUE;
+ } else if (event->keyval == GDK_Left) {
+ gtk_notebook_prev_page (GTK_NOTEBOOK (ppriv->notebook));
+ retval = TRUE;
+ }
+ }
+
+ return retval;
+}