From f3c4424cca6a4072d59c6de24524b0ca7f2a6ec5 Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Tue, 30 Oct 2001 09:25:24 +0000 Subject: Use an EMessageBox instead of a gnome_dialog_question so that the label 2001-10-30 Federico Mena Quintero * 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 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 --- calendar/gui/comp-util.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'calendar/gui/comp-util.c') 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 #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; +} -- cgit v1.2.3