aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/calendar-summary.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2001-01-17 18:44:33 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2001-01-17 18:44:33 +0800
commit0932fd7ec9d21e763371a043283384af8bc987fb (patch)
treedbfd7dcaf49fd667712a6408eae165bd201c3219 /calendar/gui/calendar-summary.c
parentff6098b51168decc542245a215056dc6219ebd69 (diff)
downloadgsoc2013-evolution-0932fd7ec9d21e763371a043283384af8bc987fb.tar.gz
gsoc2013-evolution-0932fd7ec9d21e763371a043283384af8bc987fb.tar.zst
gsoc2013-evolution-0932fd7ec9d21e763371a043283384af8bc987fb.zip
Ximianified email addresses and copyrights.
2001-01-17 Federico Mena Quintero <federico@ximian.com> * */*: Ximianified email addresses and copyrights. * idl/evolution-calendar.idl (CalFactory::open): Renamed from ::load(), and added an only_if_exists argument. (CalFactory::create): Removed method. (Listener::OpenStatus): Removed the IN_USE error and replaced it with a NOT_FOUND one; renamed the enum from LoadStatus. (Listener::notifyCalOpened): Renamed from notifyCalLoaded(). * pcs/cal-backend.h (CalBackend): Removed the uri field. (CalBackendOpenStatus): Renamed from CalBackendLoadStatus and added a NOT_FOUND value. (CalBackendClass::open): Put in a slot for the open method. * pcs/cal-backend.c (cal_backend_create): Removed function. * pcs/cal-backend-file.c (cal_backend_file_open): Return the appropriate value when only_if_exists is TRUE. (create_cal): We are Ximian now, so set the PRODID property to the appropriate foo. * pcs/cal-factory.c (CalFactory_open): implemented, replacing CalFactory_load() and CalFactory_create(). (CalFactory_open): Moved the queue_load_create_job() stuff to here, since we now only need to contemplate the open case instead of load/create ones. (open_backend): Do everything here; replaces load_backend() and create_backend(). * cal-client/cal-listener.h (CalListenerClass::cal_opened): Renamed from cal_loaded. (CalListenerClass): Replaced the silly signals, which are gratuitous abstraction, by a set of function pointers in the instance structure. * cal-client/cal-listener.c (cal_listener_get_calendar): Removed unused function. (cal_listener_construct): Added the listener notification functions. (cal_listener_new): Ditto. (Listener_notifyCalOpened): Renamed to our new naming convention for servant implementations. (Listener_notifyObjUpdated): Ditto. (Listener_notifyObjRemoved): Ditto. * cal-client/cal-client.h (CalClientOpenStatus): Renamed from CalClientLoadStatus. (CalClientClass::cal_opened): Renamed from ::cal_loaded(). (CalClientLoadState): New enum; basically make LoadState public so that users of this code do not have to maintain their own states. * cal-client/cal-client.c (cal_client_create_calendar): Removed function. (cal_client_open_calendar): Moved the functionality over from load_or_create(); now we do everything here. (*): Use the CalClientLoadState enum values instead of the old LoadState values. (cal_client_get_load_state): Renamed from cal_client_is_loaded(), and return the appropriate value. (CalClientPrivate): Added an uri field. (cal_client_init): Initialize priv->uri. (cal_client_destroy): Free the priv->uri. (cal_opened_cb): Maintain the priv->uri. (cal_client_open_calendar): Fill in the priv->uri. (cal_client_get_uri): New function. * gui/calendar-model.c (calendar_model_set_new_comp_vtype): New function to configure the type of calendar components to create when doing click-to-add. This makes the model usable for something other than task lists. (calendar_model_get_new_comp_vtype): New function. * gui/e-calendar-table.c (e_calendar_table_get_model): New function. (e_calendar_table_destroy): Unref the subset_model. * gui/gnome-cal.h (GnomeCalendarOpenMode): Removed enum. * gui/gnome-cal.c (LoadState): Removed enum; we now use the CalClientLoadState from the client objects. (GnomeCalendarPrivate): Removed the loading_uri and task_pad_loading_uri fields as well as the load_state and task_pad_load_state fields, as we can now query them directly from the CalClient. (open_error): Renamed from load_error(). (create_error): Removed function. (gnome_calendar_open): Do not take in the mode parameter. (cal_opened_cb): Get rid of our beautifully-crafted state machine and replace it with simple code; all the loading smarts are in the Wombat now. (setup_widgets): Set the new component vtype of the table model to CAL_COMPONENT_TODO. * gui/Makefile.am (evolution_calendar_SOURCES): Removed gnome-month-item.[ch] from the list of sources. * gui/calendar-summary.c (CalSummary): Removed unused cal_loaded field. (create_summary_view): Do not check if the file exists; this is the job of the Wombat. (generate_html_summary): Fixed prototype. (alarm_fn): Fixed prototype. (property_dialog): Fixed prototype. Wonder if/how this ever worked. (create_summary_view): Cast the component and view as appropriate. Removed unused html variable. [Iain dude, are you compiling with -Wall?] * gui/e-itip-control.c (cal_opened_cb): Sigh, this function signature was *very* wrong. It was using CalClientGetStatus instead of CalClientOpenStatus. * gui/e-tasks.h (ETasksOpenMode): Removed enum. * gui/e-tasks.c (setup_widgets): Set the new component vtype of the table model to CAL_COMPONENT_TODO. (LoadState): Removed the state machine foo. (e_tasks_open): Removed the mode parameter. (initial_load): Removed function. (create_error): Removed function. (ETasksPrivate): Removed folder_uri field. (cal_opened_cb): Remove the state machine. * gui/component-factory.c: #include "tasks-control.h" * conduits/calendar/calendar-conduit.h (ECalConduitContext): Removed calendar_load_tried field. * conduits/calendar/calendar-conduit.c (start_calendar_server_cb): Sigh, fixed function prototype. * conduits/todo/todo-conduit.h (EToDoConduitContext): Removed calendar_load_tried field. * conduits/todo/todo-conduit.c (start_calendar_server_cb): Fixed function prototype. svn path=/trunk/; revision=7571
Diffstat (limited to 'calendar/gui/calendar-summary.c')
-rw-r--r--calendar/gui/calendar-summary.c60
1 files changed, 31 insertions, 29 deletions
diff --git a/calendar/gui/calendar-summary.c b/calendar/gui/calendar-summary.c
index 08ad225a43..76db68463e 100644
--- a/calendar/gui/calendar-summary.c
+++ b/calendar/gui/calendar-summary.c
@@ -1,9 +1,10 @@
/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
/* calendar-summary.c
*
- * Authors: Iain Holmes <iain@helixcode.com>
+ * Authors: Iain Holmes <iain@ximian.com>
*
* Copyright (C) 2000 Helix Code, Inc.
+ * Copyright (C) 2000 Ximian, Inc.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
@@ -40,6 +41,7 @@
#include "cal-util/cal-component.h"
#include "cal-util/timeutil.h"
+#include "alarm.h"
#include "calendar-model.h"
#include "calendar-summary.h"
@@ -49,7 +51,6 @@ typedef struct {
ExecutiveSummaryHtmlView *view;
BonoboPropertyControl *property_control;
CalClient *client;
- gboolean cal_loaded;
GtkWidget *show_appointments;
GtkWidget *show_tasks;
@@ -77,12 +78,15 @@ static BonoboGenericFactory *factory;
#define CALENDAR_SUMMARY_ID "OAFIID:GNOME_Evolution_Calendar_Summary_ComponentFactory"
static gboolean
-generate_html_summary (CalSummary *summary)
+generate_html_summary (gpointer data)
{
+ CalSummary *summary;
time_t t, day_begin, day_end;
struct tm *timeptr;
GList *uids, *l;
char *ret_html, *tmp, *datestr;
+
+ summary = data;
t = time (NULL);
day_begin = time_day_begin (t);
@@ -279,33 +283,33 @@ obj_removed_cb (CalClient *client,
summary->idle = g_idle_add (generate_html_summary, summary);
}
+
static void
-cal_loaded_cb (CalClient *client,
- CalClientLoadStatus status,
+cal_opened_cb (CalClient *client,
+ CalClientOpenStatus status,
CalSummary *summary)
{
switch (status) {
- case CAL_CLIENT_LOAD_SUCCESS:
- summary->cal_loaded = TRUE;
-
+ case CAL_CLIENT_OPEN_SUCCESS:
if (summary->idle != 0)
return;
summary->idle = g_idle_add (generate_html_summary, summary);
break;
- case CAL_CLIENT_LOAD_ERROR:
+ case CAL_CLIENT_OPEN_ERROR:
executive_summary_html_view_set_html (summary->view,
_("<b>Error loading calendar</b>"));
break;
- case CAL_CLIENT_LOAD_IN_USE:
- executive_summary_html_view_set_html (summary->view,
- _("<b>Error loading calendar:<br>Calendar in use."));
-
+ case CAL_CLIENT_OPEN_NOT_FOUND:
+ /* We did not use only_if_exists when opening the calendar, so
+ * this should not happen.
+ */
+ g_assert_not_reached ();
break;
- case CAL_CLIENT_LOAD_METHOD_NOT_SUPPORTED:
+ case CAL_CLIENT_OPEN_METHOD_NOT_SUPPORTED:
executive_summary_html_view_set_html (summary->view,
_("<b>Error loading calendar:<br>Method not supported"));
break;
@@ -314,13 +318,17 @@ cal_loaded_cb (CalClient *client,
break;
}
}
+
static void
alarm_fn (gpointer alarm_id,
time_t old_t,
- CalSummary *summary)
+ gpointer data)
{
+ CalSummary *summary;
time_t t, day_end;
+ summary = data;
+
/* Remove the old alarm, and start a new one for the next midnight */
alarm_remove (alarm_id);
@@ -464,10 +472,10 @@ property_dialog_changed (GtkWidget *widget,
bonobo_property_control_changed (summary->property_control, NULL);
}
-static void
+static BonoboControl *
property_dialog (BonoboPropertyControl *property_control,
int page_num,
- gpointer user_data)
+ void *user_data)
{
BonoboControl *control;
CalSummary *summary = (CalSummary *) user_data;
@@ -530,7 +538,7 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory,
BonoboPropertyControl *property_control;
BonoboEventSource *event_source;
CalSummary *summary;
- char *html, *file;
+ char *file;
time_t t, day_end;
file = g_concat_dir_and_file (evolution_dir, "local/Calendar/calendar.ics");
@@ -539,11 +547,10 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory,
component = executive_summary_component_new ();
summary = g_new (CalSummary, 1);
- summary->component = component;
+ summary->component = EXECUTIVE_SUMMARY_COMPONENT (component);
summary->icon = g_strdup ("evolution-calendar.png");
summary->title = g_strdup ("Things to do");
summary->client = cal_client_new ();
- summary->cal_loaded = FALSE;
summary->idle = 0;
summary->appointments = TRUE;
summary->tasks = TRUE;
@@ -552,17 +559,12 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory,
day_end = time_day_end (t);
summary->alarm = alarm_add (day_end, alarm_fn, summary, NULL);
- /* Check for calendar files */
- if (!g_file_exists (file)) {
- cal_client_create_calendar (summary->client, file);
- }
-
/* Load calendar */
- cal_client_load_calendar (summary->client, file);
+ cal_client_open_calendar (summary->client, file, FALSE);
g_free (file);
- gtk_signal_connect (GTK_OBJECT (summary->client), "cal-loaded",
- GTK_SIGNAL_FUNC (cal_loaded_cb), summary);
+ gtk_signal_connect (GTK_OBJECT (summary->client), "cal-opened",
+ GTK_SIGNAL_FUNC (cal_opened_cb), summary);
gtk_signal_connect (GTK_OBJECT (summary->client), "obj-updated",
GTK_SIGNAL_FUNC (obj_updated_cb), summary);
gtk_signal_connect (GTK_OBJECT (summary->client), "obj-removed",
@@ -575,7 +577,7 @@ create_summary_view (ExecutiveSummaryComponentFactory *_factory,
/* HTML view */
view = executive_summary_html_view_new_full (event_source);
- summary->view = view;
+ summary->view = EXECUTIVE_SUMMARY_HTML_VIEW (view);
executive_summary_html_view_set_html (EXECUTIVE_SUMMARY_HTML_VIEW (view),
_("Loading Calendar"));