diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 17:32:43 +0000 |
commit | 6bf0a5cb5034a7e684dcc3500e841785237ce2dd (patch) | |
tree | a68f146d7fa01f0134297619fbe7e33db084e0aa /comm/calendar/base/public/calIAlarmService.idl | |
parent | Initial commit. (diff) | |
download | thunderbird-upstream.tar.xz thunderbird-upstream.zip |
Adding upstream version 1:115.7.0.upstream/1%115.7.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'comm/calendar/base/public/calIAlarmService.idl')
-rw-r--r-- | comm/calendar/base/public/calIAlarmService.idl | 116 |
1 files changed, 116 insertions, 0 deletions
diff --git a/comm/calendar/base/public/calIAlarmService.idl b/comm/calendar/base/public/calIAlarmService.idl new file mode 100644 index 0000000000..4af77628db --- /dev/null +++ b/comm/calendar/base/public/calIAlarmService.idl @@ -0,0 +1,116 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#include "nsISupports.idl" + +interface calIItemBase; +interface calICalendar; +interface calIDuration; +interface calITimezone; +interface calIAlarm; +interface calIOperation; + +[scriptable,uuid(dc96dd04-d2dd-448e-b307-8c8ff39c72af)] +interface calIAlarmServiceObserver : nsISupports +{ + /** + * Gets called when an alarm has fired. Depending on type of alarm, an + * observer could bring up a dialog or play a sound. + */ + void onAlarm(in calIItemBase item, in calIAlarm alarm); + + /** + * Gets called when an notification has fired. The notification is only + * controlled by prefs, and is independent from the alarm/reminder. + */ + void onNotification(in calIItemBase item); + + /** + * Called if alarm(s) of a specific item are to be removed from + * the alarm window. + * + * @param aItem corresponding item, maybe master item of recurring + * series (then all alarms belonging to this item are to + * be removed) + */ + void onRemoveAlarmsByItem(in calIItemBase item); + + /** + * Called if all alarms of a specific calendar are to be removed. + */ + void onRemoveAlarmsByCalendar(in calICalendar calendar); + + /** + * Called when all alarms of a specific calendar are loaded. + */ + void onAlarmsLoaded(in calICalendar calendar); +}; + +[scriptable,uuid(42cfa9ce-49d6-11e5-b88c-5b90eedc1c47)] +interface calIAlarmService : nsISupports +{ + /** + * Upper limit for the snooze period for an alarm. To avoid performance issues, don't change this + * to a value larger then 1 at least until bug 861594 or a similar concept is implemented. + */ + const unsigned long MAX_SNOOZE_MONTHS = 1; + + /** + * This is the timezone that all-day events will be converted to in order to + * determine when their alarms should fire. + */ + attribute calITimezone timezone; + + /** + * Will return true while the alarm service is in the process of loading alarms + */ + attribute boolean isLoading; + + /** + * Cause the alarm service to start up, create a list of upcoming + * alarms in all registered calendars, add observers to watch for + * calendar registration and unregistration, and setup a timer to + * maintain that list and fire alarms. + * + * @note Will throw NS_ERROR_NOT_INITIALIZED if you have not previously set + * the timezone attribute. + */ + void startup(); + + /** + * Shuts down the alarm service, canceling all timers and removing all + * alarms. + */ + void shutdown(); + + /* add and remove observers that will be notified when an + alarm has gone off. It is up to the application to display + the alarm. + */ + void addObserver(in calIAlarmServiceObserver observer); + void removeObserver(in calIAlarmServiceObserver observer); + + /** + * Call to reschedule an alarm to be notified at a later point. The alarm will + * instead fire at "now + duration" This will cause an event to be scheduled + * even if it was not previously scheduled. + * + * @param item The item the alarm belongs to. + * @param alarm The alarm to snooze. + * @param duration The duration in minutes to snooze for. + * @return The operation that modifies the item to snooze the + * alarm. + */ + calIOperation snoozeAlarm(in calIItemBase item, in calIAlarm alarm, in calIDuration duration); + + /** + * Dismisses the given alarm for the passed occurrence. + * + * @param item The item the alarm belongs to. + * @param alarm The alarm to dismiss. + * @return The operation that modifies the item to dismiss the + * alarm. + */ + calIOperation dismissAlarm(in calIItemBase item, in calIAlarm alarm); +}; |