aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/comp-util.c
diff options
context:
space:
mode:
authorFederico Mena Quintero <federico@ximian.com>2001-10-30 17:25:24 +0800
committerFederico Mena Quintero <federico@src.gnome.org>2001-10-30 17:25:24 +0800
commitf3c4424cca6a4072d59c6de24524b0ca7f2a6ec5 (patch)
tree7ab4397aab4f3e85da00c269112ddc3b1a75b49c /calendar/gui/comp-util.c
parent6bf38a0ba9bc70423c228445de61d6cbf4f7bd60 (diff)
downloadgsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar
gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.gz
gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.bz2
gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.lz
gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.xz
gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.tar.zst
gsoc2013-evolution-f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5.zip
Use an EMessageBox instead of a gnome_dialog_question so that the label
2001-10-30 Federico Mena Quintero <federico@ximian.com> * gui/dialogs/delete-comp.c (delete_component_dialog): Use an EMessageBox instead of a gnome_dialog_question so that the label gets line breaking. Fixes bug #11260. 2001-10-29 Federico Mena Quintero <federico@ximian.com> Fix bug #13649. * gui/calendar-config.c (calendar_config_get_use_default_reminder): New function. (calendar_config_set_use_default_reminder): New function. (calendar_config_get_default_reminder_interval): New function. (calendar_config_set_default_reminder_interval): New function. (calendar_config_get_default_reminder_units): New function. (calendar_config_set_default_reminder_units): New function. (config_read): Get the options for default reminders. (calendar_config_write): Set the options for default reminders. * gui/dialogs/cal-prefs-dialog.c (cal_prefs_dialog_show_config): Set the default reminder widgets from the config values. (cal_prefs_dialog_update_config): Set the config values from the widgets. * gui/comp-util.c (cal_comp_event_new_with_defaults): New function; creates a VEVENT component with the default alarm. * gui/e-day-view.c (e_day_view_key_press): Use cal_comp_event_new_with_defaults (); * gui/e-week-view.c (e_week_view_key_press): Likewise. * gui/calendar-model.c (calendar_model_append_row): Likewise. * gui/comp-editor-factory.c (get_default_component): Likewise. * gui/gnome-cal.c (gnome_calendar_new_appointment_for): Likewise. * cal-util/cal-component.c (ensure_alarm_properties_cb): Ensure we have a DESCRIPTION property. (cal_component_commit_sequence): Ensure we have the mandatory alarm properties. svn path=/trunk/; revision=14446
Diffstat (limited to 'calendar/gui/comp-util.c')
-rw-r--r--calendar/gui/comp-util.c67
1 files changed, 67 insertions, 0 deletions
diff --git a/calendar/gui/comp-util.c b/calendar/gui/comp-util.c
index 71efec2573..ec6c4fefbf 100644
--- a/calendar/gui/comp-util.c
+++ b/calendar/gui/comp-util.c
@@ -23,6 +23,7 @@
#include <config.h>
#endif
+#include "calendar-config.h"
#include "comp-util.h"
#include "dialogs/delete-comp.h"
@@ -231,3 +232,69 @@ cal_comp_confirm_delete_empty_comp (CalComponent *comp, CalClient *client, GtkWi
} else
return EMPTY_COMP_DO_NOT_REMOVE;
}
+
+/**
+ * cal_comp_event_new_with_defaults:
+ *
+ * Creates a new VEVENT component and adds any default alarms to it as set in
+ * the program's configuration values.
+ *
+ * Return value: A newly-created calendar component.
+ **/
+CalComponent *
+cal_comp_event_new_with_defaults (void)
+{
+ CalComponent *comp;
+ int interval;
+ CalUnits units;
+ CalComponentAlarm *alarm;
+ CalAlarmTrigger trigger;
+
+ comp = cal_component_new ();
+
+ cal_component_set_new_vtype (comp, CAL_COMPONENT_EVENT);
+
+ if (!calendar_config_get_use_default_reminder ())
+ return comp;
+
+ interval = calendar_config_get_default_reminder_interval ();
+ units = calendar_config_get_default_reminder_units ();
+
+ alarm = cal_component_alarm_new ();
+
+ /* We don't set the description of the alarm; we'll copy it from the
+ * summary when it gets committed to the server.
+ */
+
+ cal_component_alarm_set_action (alarm, CAL_ALARM_DISPLAY);
+
+ trigger.type = CAL_ALARM_TRIGGER_RELATIVE_START;
+
+ memset (&trigger.u.rel_duration, 0, sizeof (trigger.u.rel_duration));
+
+ trigger.u.rel_duration.is_neg = TRUE;
+
+ switch (units) {
+ case CAL_MINUTES:
+ trigger.u.rel_duration.minutes = interval;
+ break;
+
+ case CAL_HOURS:
+ trigger.u.rel_duration.hours = interval;
+ break;
+
+ case CAL_DAYS:
+ trigger.u.rel_duration.days = interval;
+ break;
+
+ default:
+ g_assert_not_reached ();
+ }
+
+ cal_component_alarm_set_trigger (alarm, trigger);
+
+ cal_component_add_alarm (comp, alarm);
+ cal_component_alarm_free (alarm);
+
+ return comp;
+}