void calendar_config_check_timezone_set (void) { ETimezoneDialog *timezone_dialog; GtkWidget *dialog; GList *elem; char *zone; zone = calendar_config_get_timezone (); if (zone && zone[0]) return; /* Show timezone dialog. */ timezone_dialog = e_timezone_dialog_new (); dialog = e_timezone_dialog_get_toplevel (timezone_dialog); /* Hide the cancel button, which is the 2nd button. */ elem = g_list_nth (GNOME_DIALOG (dialog)->buttons, 1); gtk_widget_hide (elem->data); g_signal_connect (dialog, "clicked", G_CALLBACK (on_timezone_set), timezone_dialog); g_signal_connect (dialog, "delete-event", G_CALLBACK (on_timezone_dialog_delete_event), timezone_dialog); gtk_widget_show (dialog); }
void calendar_config_select_day_second_zone (void) { icaltimezone *zone = NULL; ETimezoneDialog *tzdlg; GtkWidget *dialog; gchar *second_location; second_location = calendar_config_get_day_second_zone (); if (second_location && *second_location) zone = icaltimezone_get_builtin_timezone (second_location); g_free (second_location); if (!zone) zone = calendar_config_get_icaltimezone (); tzdlg = e_timezone_dialog_new (); e_timezone_dialog_set_timezone (tzdlg, zone); dialog = e_timezone_dialog_get_toplevel (tzdlg); if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT) { const gchar *location = NULL; zone = e_timezone_dialog_get_timezone (tzdlg); if (zone == icaltimezone_get_utc_timezone ()) { location = "UTC"; } else if (zone) { location = icaltimezone_get_location (zone); } calendar_config_set_day_second_zone (location); } g_object_unref (tzdlg); }