aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/alarm-notify/alarm-notify-dialog.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2001-06-27 08:12:28 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2001-06-27 08:12:28 +0800
commit03b231a20b0e2e1bdfc422ff713127b34e4cce19 (patch)
tree82b31bbaacdb1840116f7b15948113e99b7657c4 /calendar/gui/alarm-notify/alarm-notify-dialog.c
parent0bea524b92d9909b61c572f42fadebcd2213d048 (diff)
downloadgsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.tar
gsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.tar.gz
gsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.tar.bz2
gsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.tar.lz
gsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.tar.xz
gsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.tar.zst
gsoc2013-evolution-03b231a20b0e2e1bdfc422ff713127b34e4cce19.zip
Renamed the occur field to occur_start; added an occur_end field. This way
2001-06-26 Federico Mena Quintero <federico@ximian.com> * idl/evolution-calendar.idl (CalAlarmInstance): Renamed the occur field to occur_start; added an occur_end field. This way we can present the complete times for the occurrence from the server. * cal-util/cal-component.h (CalAlarmInstance): Likewise. * pcs/cal-backend-file.c (add_alarm_occurrences_cb): Fill the new fields appropriately. (generate_absolute_triggers): Likewise; we use -1 in case the component has no DTSTART or DTEND because there are no meaningful occurrence dates here. (fill_alarm_instances_seq): Fill in the new fields. * cal-client/cal-client.c (build_alarm_instance_list): Likewise. * gui/alarm-notify/alarm-notify-dialog.c (alarm_notify_dialog): Take in both the occur_start and occur_end times. * gui/goto.c (goto_dialog): Free the dlg structure on the bail-out cases. * gui/dialogs/event-page.c (get_widgets): Do not assert if we cannot find the main widget; just return FALSE. * gui/dialogs/alarm-page.c (get_widgets): Likewise. * gui/dialogs/task-page.c (get_widgets): Likewise. * gui/dialogs/task-details-page.c (get_widgets): Likewise. * gui/dialogs/meeting-page.c (get_widgets): Likewise. svn path=/trunk/; revision=10517
Diffstat (limited to 'calendar/gui/alarm-notify/alarm-notify-dialog.c')
-rw-r--r--calendar/gui/alarm-notify/alarm-notify-dialog.c112
1 files changed, 103 insertions, 9 deletions
diff --git a/calendar/gui/alarm-notify/alarm-notify-dialog.c b/calendar/gui/alarm-notify/alarm-notify-dialog.c
index 99b244613a..219bf7b102 100644
--- a/calendar/gui/alarm-notify/alarm-notify-dialog.c
+++ b/calendar/gui/alarm-notify/alarm-notify-dialog.c
@@ -120,10 +120,106 @@ edit_clicked_cb (GtkWidget *widget, gpointer data)
gtk_widget_destroy (an->dialog);
}
+/* Creates a heading for the alarm notification dialog */
+static char *
+make_heading (CalComponent *comp, time_t occur_start, time_t occur_end)
+{
+ CalComponentVType vtype;
+ char *buf;
+ char s[128], e[128];
+
+ vtype = cal_component_get_vtype (comp);
+
+ if (occur_start != -1) {
+ struct tm tm;
+
+ tm = *localtime (&occur_start);
+ strftime (s, sizeof (s), "%A %b %d %Y %H:%M", &tm);
+ }
+
+ if (occur_end != -1) {
+ struct tm tm;
+
+ tm = *localtime (&occur_end);
+ strftime (e, sizeof (e), "%A %b %d %Y %H:%M", &tm);
+ }
+
+ /* I love combinatorial explosion */
+
+ switch (vtype) {
+ case CAL_COMPONENT_EVENT:
+ if (occur_start != -1) {
+ if (occur_end != -1)
+ buf = g_strdup_printf (_("Notification about your appointment "
+ "starting on %s and ending on %s"),
+ s, e);
+ else
+ buf = g_strdup_printf (_("Notification about your appointment "
+ "starting on %s"),
+ s);
+ } else {
+ if (occur_end != -1)
+ buf = g_strdup_printf (_("Notification about your appointment "
+ "ending on %s"),
+ e);
+ else
+ buf = g_strdup_printf (_("Notification about your appointment"));
+ }
+ break;
+
+ case CAL_COMPONENT_TODO:
+ if (occur_start != -1) {
+ if (occur_end != -1)
+ buf = g_strdup_printf (_("Notification about your task "
+ "starting on %s and ending on %s"),
+ s, e);
+ else
+ buf = g_strdup_printf (_("Notification about your task "
+ "starting on %s"),
+ s);
+ } else {
+ if (occur_end != -1)
+ buf = g_strdup_printf (_("Notification about your task "
+ "ending on %s"),
+ e);
+ else
+ buf = g_strdup_printf (_("Notification about your task"));
+ }
+ break;
+
+ case CAL_COMPONENT_JOURNAL:
+ if (occur_start != -1) {
+ if (occur_end != -1)
+ buf = g_strdup_printf (_("Notification about your journal entry "
+ "starting on %s and ending on %s"),
+ s, e);
+ else
+ buf = g_strdup_printf (_("Notification about your journal entry "
+ "starting on %s"),
+ s);
+ } else {
+ if (occur_end != -1)
+ buf = g_strdup_printf (_("Notification about your journal entry "
+ "ending on %s"),
+ e);
+ else
+ buf = g_strdup_printf (_("Notification about your journal entry"));
+ }
+ break;
+
+ default:
+ g_assert_not_reached();
+ return NULL;
+ }
+
+ return buf;
+}
+
/**
* alarm_notify_dialog:
* @trigger: Trigger time for the alarm.
- * @occur: Occurrence time for the event.
+ * @occur_start: Start of occurrence time for the event.
+ * @occur_end: End of occurrence time for the event.
* @comp: Calendar component object which corresponds to the alarm.
* @func: Function to be called when a dialog action is invoked.
* @func_data: Closure data for @func.
@@ -134,17 +230,17 @@ edit_clicked_cb (GtkWidget *widget, gpointer data)
* Return value: TRUE on success, FALSE if the dialog could not be created.
**/
gboolean
-alarm_notify_dialog (time_t trigger, time_t occur, CalComponent *comp,
+alarm_notify_dialog (time_t trigger, time_t occur_start, time_t occur_end,
+ CalComponent *comp,
AlarmNotifyFunc func, gpointer func_data)
{
AlarmNotify *an;
char buf[256];
+ char *heading;
struct tm tm_trigger;
- struct tm tm_occur;
CalComponentText summary;
g_return_val_if_fail (trigger != -1, FALSE);
- g_return_val_if_fail (occur != -1, FALSE);
g_return_val_if_fail (comp != NULL, FALSE);
g_return_val_if_fail (IS_CAL_COMPONENT (comp), FALSE);
g_return_val_if_fail (func != NULL, FALSE);
@@ -191,11 +287,9 @@ alarm_notify_dialog (time_t trigger, time_t occur, CalComponent *comp,
/* Heading */
- tm_occur = *localtime (&occur);
- strftime (buf, sizeof (buf),
- _("Notification about your appointment on %A %b %d %Y %H:%M"),
- &tm_occur);
- gtk_label_set_text (GTK_LABEL (an->heading), buf);
+ heading = make_heading (comp, occur_start, occur_end);
+ gtk_label_set_text (GTK_LABEL (an->heading), heading);
+ g_free (heading);
/* Summary */