diff options
Diffstat (limited to 'calendar/cal-client/client-test.c')
-rw-r--r-- | calendar/cal-client/client-test.c | 118 |
1 files changed, 75 insertions, 43 deletions
diff --git a/calendar/cal-client/client-test.c b/calendar/cal-client/client-test.c index f8741f4539..7f79b58266 100644 --- a/calendar/cal-client/client-test.c +++ b/calendar/cal-client/client-test.c @@ -1,8 +1,29 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ +/* Evolution calendar client - test program + * + * Copyright (C) 2000 Helix Code, Inc. + * + * Author: Federico Mena-Quintero <federico@helixcode.com> + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + */ + #include <config.h> #include <bonobo.h> #include <gnome.h> #include <cal-client/cal-client.h> + static CalClient *client1; static CalClient *client2; @@ -21,6 +42,26 @@ cl_printf (CalClient *client, const char *format, ...) va_end (args); } +/* Dumps some interesting data from a component */ +static void +dump_component (CalComponent *comp) +{ + const char *uid; + CalComponentText summary; + + cal_component_get_uid (comp, &uid); + + printf ("UID %s\n", uid); + + cal_component_get_summary (comp, &summary); + if (summary.value) + printf ("\tSummary: `%s', altrep `%s'\n", + summary.value, + summary.altrep ? summary.altrep : "NONE"); + else + printf ("\tNo summary\n"); +} + /* Lists the UIDs of objects in a calendar, called as an idle handler */ static gboolean list_uids (gpointer data) @@ -49,22 +90,20 @@ list_uids (gpointer data) for (l = uids; l; l = l->next) { char *uid; - iCalObject *ico; + CalComponent *comp; CalClientGetStatus status; uid = l->data; - status = cal_client_get_object (client, uid, &ico); + status = cal_client_get_object (client, uid, &comp); if (status == CAL_CLIENT_GET_SUCCESS) { printf ("------------------------------\n"); - dump_icalobject (ico); + dump_component (comp); printf ("------------------------------\n"); + gtk_object_unref (GTK_OBJECT (comp)); } else { printf ("FAILED: %d\n", status); } - - // cal_client_update_object (client, uid, calobj); - // g_free (calobj); } } @@ -98,32 +137,50 @@ obj_updated (CalClient *client, const char *uid, gpointer data) cl_printf (client, "Object updated: %s\n", uid); } +/* Callback used when a client is destroyed */ +static void +client_destroy_cb (GtkObject *object, gpointer data) +{ + if (CAL_CLIENT (object) == client1) + client1 = NULL; + else if (CAL_CLIENT (object) == client2) + client2 = NULL; + else + g_assert_not_reached (); + + if (!client1 && !client2) + gtk_main_quit (); +} + /* Creates a calendar client and tries to load the specified URI into it */ -static CalClient * -create_client (const char *uri, gboolean load) +static void +create_client (CalClient **client, const char *uri, gboolean load) { - CalClient *client; gboolean result; - client = cal_client_new (); - if (!client) { + *client = cal_client_new (); + if (!*client) { g_message ("create_client(): could not create the client"); exit (1); } - gtk_signal_connect (GTK_OBJECT (client), "cal_loaded", + gtk_signal_connect (GTK_OBJECT (*client), "destroy", + client_destroy_cb, + NULL); + + gtk_signal_connect (GTK_OBJECT (*client), "cal_loaded", GTK_SIGNAL_FUNC (cal_loaded), NULL); - gtk_signal_connect (GTK_OBJECT (client), "obj_updated", + gtk_signal_connect (GTK_OBJECT (*client), "obj_updated", GTK_SIGNAL_FUNC (obj_updated), NULL); printf ("Calendar loading `%s'...\n", uri); if (load) - result = cal_client_load_calendar (client, uri); + result = cal_client_load_calendar (*client, uri); else - result = cal_client_create_calendar (client, uri); + result = cal_client_create_calendar (*client, uri); if (!result) { g_message ("create_client(): failure when issuing calendar %s request `%s'", @@ -131,23 +188,6 @@ create_client (const char *uri, gboolean load) uri); exit (1); } - - return client; -} - -/* Callback used when a client is destroyed */ -static void -client_destroy_cb (GtkObject *object, gpointer data) -{ - if (CAL_CLIENT (object) == client1) - client1 = NULL; - else if (CAL_CLIENT (object) == client2) - client2 = NULL; - else - g_assert_not_reached (); - - if (!client1 && !client2) - gtk_main_quit (); } #ifdef USING_OAF @@ -195,17 +235,9 @@ main (int argc, char **argv) exit (1); } - client1 = create_client ("/cvs/evolution/calendar/gui/test2.vcf", TRUE); - gtk_signal_connect (GTK_OBJECT (client1), "destroy", - client_destroy_cb, - NULL); - - client2 = create_client ("/cvs/evolution/calendar/gui/test2.vcf", FALSE); - gtk_signal_connect (GTK_OBJECT (client2), "destroy", - client_destroy_cb, - NULL); + create_client (&client1, "/cvs/evolution/calendar/cal-client/test.ics", TRUE); + create_client (&client2, "/cvs/evolution/calendar/cal-client/test.ics", FALSE); bonobo_main (); - return 0; } |