diff options
Diffstat (limited to 'calendar/gui/alarm-notify/client-main.c')
-rw-r--r-- | calendar/gui/alarm-notify/client-main.c | 178 |
1 files changed, 0 insertions, 178 deletions
diff --git a/calendar/gui/alarm-notify/client-main.c b/calendar/gui/alarm-notify/client-main.c deleted file mode 100644 index 5b0fb669d2..0000000000 --- a/calendar/gui/alarm-notify/client-main.c +++ /dev/null @@ -1,178 +0,0 @@ -/* Evolution calendar - Command-line client for the alarm notification service - * - * Copyright (C) 2001 Ximian, Inc. - * - * Authors: Federico Mena-Quintero <federico@ximian.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. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <liboaf/liboaf.h> -#include "evolution-calendar.h" - - - -/* Requests that a calendar be added to the alarm notification service */ -static void -add_calendar (GNOME_Evolution_Calendar_AlarmNotify an, const char *uri) -{ - CORBA_Environment ev; - - CORBA_exception_init (&ev); - GNOME_Evolution_Calendar_AlarmNotify_addCalendar (an, uri, &ev); - - if (ev._major == CORBA_USER_EXCEPTION) { - char *ex_id; - - ex_id = CORBA_exception_id (&ev); - if (strcmp (ex_id, ex_GNOME_Evolution_Calendar_AlarmNotify_InvalidURI) == 0) { - g_message ("add_calendar(): Invalid URI reported from the " - "alarm notification service"); - goto out; - } else if (strcmp (ex_id, - ex_GNOME_Evolution_Calendar_AlarmNotify_BackendContactError) - == 0) { - g_message ("add_calendar(): The alarm notification service could " - "not contact the backend"); - goto out; - } - } - - if (ev._major != CORBA_NO_EXCEPTION) - g_message ("add_calendar(): Could not issue the addCalendar request"); - - out: - CORBA_exception_free (&ev); -} - -/* Loads the calendars that the user has configured to be loaded */ -static void -load_calendars (void) -{ - CORBA_Environment ev; - GNOME_Evolution_Calendar_AlarmNotify an; - char *base_uri; - char *uri; - - CORBA_exception_init (&ev); - an = oaf_activate_from_id ("OAFID:GNOME_Evolution_Calendar_AlarmNotify", 0, NULL, &ev); - - if (ev._major != CORBA_NO_EXCEPTION) { - g_message ("load_calendars(): Could not activate the alarm notification service"); - CORBA_exception_free (&ev); - exit (EXIT_FAILURE); - } - CORBA_exception_free (&ev); - - /* FIXME: this should be obtained from the configuration in the Wombat */ - - base_uri = g_concat_dir_and_file (g_get_home_dir (), "evolution"); - - uri = g_concat_dir_and_file (base_uri, "local/Calendar/calendar.ics"); - add_calendar (an, uri); - g_free (uri); - - uri = g_concat_dir_and_file (base_uri, "local/Tasks/tasks.ics"); - add_calendar (an, uri); - g_free (uri); - - g_free (base_uri); - - CORBA_exception_init (&ev); - Bonobo_Unknown_unref (an, &ev); - if (ev._major != CORBA_NO_EXCEPTION) - g_message ("load_calendars(): Could not unref the alarm notification service"); - - CORBA_exception_free (&ev); - - CORBA_exception_init (&ev); - CORBA_Object_release (an, &ev); - if (ev._major != CORBA_NO_EXCEPTION) - g_message ("load_calendars(): Could not release the alarm notification service"); - - CORBA_exception_free (&ev); -} - -/* FIXME: handle the --die option */ - -int -main (int argc, char **argv) -{ - GnomeClient *client; - int flags; - gboolean launch_service; - - bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); - textdomain (PACKAGE); - - if (gnome_init_with_popt_table ("evolution-alarm-client", VERSION, - argc, argv, oaf_popt_options, 0, NULL) != 0) { - g_message ("main(): Could not initialize GNOME"); - exit (EXIT_FAILURE); - } - - oaf_init (argc, argv); - - if (!bonobo_init (CORBA_OBJECT_NIL, CORBA_OBJECT_NIL, CORBA_OBJECT_NIL)) { - g_message ("main(): Could not initialize Bonobo"); - exit (EXIT_FAILURE); - } - - /* Ask the session manager to restart us */ - - client = gnome_master_client (); - flags = gnome_client_get_flags (client); - - if (flags & GNOME_CLIENT_IS_CONNECTED) { - char *client_id; - - client_id = gnome_client_get_id (client); - g_assert (client_id != NULL); - - launch_service = gnome_startup_acquire_token ("EVOLUTION_ALARM_NOTIFY", - client_id); - - if (launch_service) { - char *args[3]; - - args[0] = argv[0]; - args[2] = NULL; - - gnome_client_set_restart_style (client, GNOME_RESTART_ANYWAY); - gnome_client_set_restart_command (client, 2, args); - - args[0] = argv[0]; - args[1] = "--die"; - args[2] = NULL; - - gnome_client_set_shutdown_command (client, 2, args); - } else - gnome_client_set_restart_style (client, GNOME_RESTART_NEVER); - - gnome_client_flush (client); - } else - launch_service = TRUE; - - if (!launch_service) - return EXIT_SUCCESS; - - load_calendars (); - - return EXIT_SUCCESS; -} |