You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
356 lines
25 KiB
356 lines
25 KiB
/*
|
|
* kalarmiface.h - DCOP interface to KAlarm
|
|
* Program: kalarm
|
|
* Copyright © 2004-2006,2008 by David Jarvie <djarvie@kde.org>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
*/
|
|
|
|
#ifndef KALARMIFACE_H
|
|
#define KALARMIFACE_H
|
|
|
|
/** @file kalarmiface.h - DCOP interface to KAlarm */
|
|
|
|
// No forward declarations - dcopidl2cpp won't work
|
|
#include <dcopobject.h>
|
|
#include <kurl.h>
|
|
#include <qstringlist.h>
|
|
class QString;
|
|
|
|
/** KAlarmIface provides a DCOP interface for other applications to request
|
|
* KAlarm actions.
|
|
*/
|
|
|
|
class KAlarmIface : virtual public DCOPObject
|
|
{
|
|
K_DCOP
|
|
public:
|
|
/** Bit values for the @p flags parameter of "scheduleXxxx()" DCOP calls.
|
|
* The bit values may be OR'ed together.
|
|
* @li REPEAT_AT_LOGIN - repeat the alarm at every login.
|
|
* @li BEEP - sound an audible beep when the alarm is displayed.
|
|
* @li SPEAK - speak the alarm message when it is displayed.
|
|
* @li REPEAT_SOUND - repeat the sound file while the alarm is displayed.
|
|
* @li CONFIRM_ACK - closing the alarm message window requires a confirmation prompt.
|
|
* @li AUTO_CLOSE - auto-close the alarm window after the late-cancel period.
|
|
* @li SCRIPT - the command to execute is a script, not a shell command line.
|
|
* @li EXEC_IN_XTERM - execute the command alarm in a terminal window.
|
|
* @li EMAIL_BCC - send a blind copy the email to the user.
|
|
* @li SHOW_IN_KORG - show the alarm as an event in KOrganizer
|
|
* @li DISABLED - set the alarm status to disabled.
|
|
*/
|
|
enum Flags
|
|
{
|
|
REPEAT_AT_LOGIN = 0x01, // repeat alarm at every login
|
|
BEEP = 0x02, // sound audible beep when alarm is displayed
|
|
REPEAT_SOUND = 0x08, // repeat sound file while alarm is displayed
|
|
CONFIRM_ACK = 0x04, // closing the alarm message window requires confirmation prompt
|
|
AUTO_CLOSE = 0x10, // auto-close alarm window after late-cancel period
|
|
EMAIL_BCC = 0x20, // blind copy the email to the user
|
|
DISABLED = 0x40, // alarm is currently disabled
|
|
SCRIPT = 0x80, // command is a script, not a shell command line
|
|
EXEC_IN_XTERM = 0x100, // execute command alarm in terminal window
|
|
SPEAK = 0x200, // speak the alarm message when it is displayed
|
|
SHOW_IN_KORG = 0x400 // show the alarm as an event in KOrganizer
|
|
};
|
|
/** Values for the @p repeatType parameter of "scheduleXxxx()" DCOP calls.
|
|
* @li MINUTELY - the repeat interval is measured in minutes.
|
|
* @li DAILY - the repeat interval is measured in days.
|
|
* @li WEEKLY - the repeat interval is measured in weeks.
|
|
* @li MONTHLY - the repeat interval is measured in months.
|
|
* @li YEARLY - the repeat interval is measured in years.
|
|
*/
|
|
enum RecurType
|
|
{
|
|
MINUTELY = 1, // the repeat interval is measured in minutes
|
|
DAILY = 2, // the repeat interval is measured in days
|
|
WEEKLY = 3, // the repeat interval is measured in weeks
|
|
MONTHLY = 4, // the repeat interval is measured in months
|
|
YEARLY = 5 // the repeat interval is measured in years
|
|
};
|
|
|
|
k_dcop:
|
|
/** Cancel (delete) an already scheduled alarm.
|
|
* @param url - The URL (not path) of the calendar file containing the event to be cancelled.
|
|
* Used only for integrity checking: the call will fail if it is not KAlarm's
|
|
* current calendar file.
|
|
* @param eventId - The unique ID of the event to be cancelled, as stored in the calendar file @p url.
|
|
*/
|
|
virtual bool cancelEvent(const QString& url, const QString& eventId) = 0;
|
|
|
|
/** Trigger the immediate display or execution of an alarm, regardless of what time it is scheduled for.
|
|
* @param url - The URL (not path) of the calendar file containing the event to be triggered.
|
|
* Used only for integrity checking: the call will fail if it is not KAlarm's
|
|
* current calendar file.
|
|
* @param eventId - The unique ID of the event to be triggered, as stored in the calendar file @p url.
|
|
*/
|
|
virtual bool triggerEvent(const QString& url, const QString& eventId) = 0;
|
|
|
|
/** Schedule a message display alarm.
|
|
* @param message The text of the message to display.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param bgColor The background colour for the alarm message window, or QString::null for the
|
|
* current default background colour. The string may be in any of the formats
|
|
* accepted by QColor::QColor(const QString&).
|
|
* @param fgColor The foreground colour for the alarm message, or QString::null for the current
|
|
* default foreground colour. The format of the string is the same as for @p bgColor.
|
|
* @param font The font for the alarm message, or QString::null for the default message font
|
|
* current at the time the message is displayed. The string should be in format
|
|
* returned by QFont::toString().
|
|
* @param audioFile The audio file to play when the alarm is displayed, or QString::null for none.
|
|
* @param reminderMins The number of minutes in advance of the main alarm and its recurrences to display
|
|
* a reminder alarm, or 0 for no reminder.
|
|
* @param recurrence Recurrence specification using iCalendar syntax (defined in RFC2445).
|
|
* @param repeatInterval Simple repetition repeat interval in minutes, or 0 for no sub-repetition.
|
|
* @param repeatCount Simple repetition repeat count (after the first occurrence), or 0 for no sub-repetition.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleMessage(const QString& message, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
const QString& bgColor, const QString& fgColor, const QString& font,
|
|
const KURL& audioFile, int reminderMins, const QString& recurrence,
|
|
int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule a message display alarm.
|
|
* @param message The text of the message to display.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param bgColor The background colour for the alarm message window, or QString::null for the
|
|
* current default background colour. The string may be in any of the formats
|
|
* accepted by QColor::QColor(const QString&).
|
|
* @param fgColor The foreground colour for the alarm message, or QString::null for the current
|
|
* default foreground colour. The format of the string is the same as for @p bgColor.
|
|
* @param font The font for the alarm message, or QString::null for the default message font
|
|
* current at the time the message is displayed. The string should be in format
|
|
* returned by QFont::toString().
|
|
* @param audioFile The audio file to play when the alarm is displayed, or QString::null for none.
|
|
* @param reminderMins The number of minutes in advance of the main alarm and its recurrences to display
|
|
* a reminder alarm, or 0 for no reminder.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param repeatCount Recurrence count (after the first occurrence), or 0 for no recurrence.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleMessage(const QString& message, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
const QString& bgColor, const QString& fgColor, const QString& font,
|
|
const KURL& audioFile, int reminderMins,
|
|
int repeatType, int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule a message display alarm.
|
|
* @param message The text of the message to display.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param bgColor The background colour for the alarm message window, or QString::null for the
|
|
* current default background colour. The string may be in any of the formats
|
|
* accepted by QColor::QColor(const QString&).
|
|
* @param fgColor The foreground colour for the alarm message, or QString::null for the current
|
|
* default foreground colour. The format of the string is the same as for @p bgColor.
|
|
* @param font The font for the alarm message, or QString::null for the default message font
|
|
* current at the time the message is displayed. The string should be in format
|
|
* returned by QFont::toString().
|
|
* @param audioFile The audio file to play when the alarm is displayed, or QString::null for none.
|
|
* @param reminderMins The number of minutes in advance of the main alarm and its recurrences to display
|
|
* a reminder alarm, or 0 for no reminder.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param endDateTime Date/time after which the recurrence will end.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleMessage(const QString& message, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
const QString& bgColor, const QString& fgColor, const QString& font,
|
|
const KURL& audioFile, int reminderMins,
|
|
int repeatType, int repeatInterval, const QString& endDateTime) = 0;
|
|
|
|
/** Schedule a file display alarm.
|
|
* @param file The text or image file to display.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param bgColor The background colour for the alarm message window, or QString::null for the
|
|
* current default background colour. The string may be in any of the formats
|
|
* accepted by QColor::QColor(const QString&).
|
|
* @param audioFile The audio file to play when the alarm is displayed, or QString::null for none.
|
|
* @param reminderMins The number of minutes in advance of the main alarm and its recurrences to display
|
|
* a reminder alarm, or 0 for no reminder.
|
|
* @param recurrence Recurrence specification using iCalendar syntax (defined in RFC2445).
|
|
* @param repeatInterval Simple repetition repeat interval in minutes, or 0 for no sub-repetition.
|
|
* @param repeatCount Simple repetition repeat count (after the first occurrence), or 0 for no sub-repetition.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleFile(const KURL& file, const QString& startDateTime, int lateCancel, unsigned flags, const QString& bgColor,
|
|
const KURL& audioFile, int reminderMins, const QString& recurrence,
|
|
int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule a file display alarm.
|
|
* @param file The text or image file to display.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param bgColor The background colour for the alarm message window, or QString::null for the
|
|
* current default background colour. The string may be in any of the formats
|
|
* accepted by QColor::QColor(const QString&).
|
|
* @param audioFile The audio file to play when the alarm is displayed, or QString::null for none.
|
|
* @param reminderMins The number of minutes in advance of the main alarm and its recurrences to display
|
|
* a reminder alarm, or 0 for no reminder.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param repeatCount Recurrence count (after the first occurrence), or 0 for no recurrence.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleFile(const KURL& file, const QString& startDateTime, int lateCancel, unsigned flags, const QString& bgColor,
|
|
const KURL& audioFile, int reminderMins, int repeatType, int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule a file display alarm.
|
|
* @param file The text or image file to display.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param bgColor The background colour for the alarm message window, or QString::null for the
|
|
* current default background colour. The string may be in any of the formats
|
|
* accepted by QColor::QColor(const QString&).
|
|
* @param audioFile The audio file to play when the alarm is displayed, or QString::null for none.
|
|
* @param reminderMins The number of minutes in advance of the main alarm and its recurrences to display
|
|
* a reminder alarm, or 0 for no reminder.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param endDateTime Date/time after which the recurrence will end.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleFile(const KURL& file, const QString& startDateTime, int lateCancel, unsigned flags, const QString& bgColor,
|
|
const KURL& audioFile, int reminderMins,
|
|
int repeatType, int repeatInterval, const QString& endDateTime) = 0;
|
|
|
|
/** Schedule a command execution alarm.
|
|
* @param commandLine The command line or command script to execute.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param recurrence Recurrence specification using iCalendar syntax (defined in RFC2445).
|
|
* @param repeatInterval Simple repetition repeat interval in minutes, or 0 for no sub-repetition.
|
|
* @param repeatCount Simple repetition repeat count (after the first occurrence), or 0 for no sub-repetition.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleCommand(const QString& commandLine, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
const QString& recurrence, int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule a command execution alarm.
|
|
* @param commandLine The command line or command script to execute.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param repeatCount Recurrence count (after the first occurrence), or 0 for no recurrence.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleCommand(const QString& commandLine, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
int repeatType, int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule a command execution alarm.
|
|
* @param commandLine The command line or command script to execute.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param endDateTime Date/time after which the recurrence will end.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleCommand(const QString& commandLine, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
int repeatType, int repeatInterval, const QString& endDateTime) = 0;
|
|
|
|
/** Schedule an email alarm.
|
|
* @param fromID The KMail identity to use as the sender of the email, or QString::null to use KAlarm's default sender ID.
|
|
* @param addresses Comma-separated list of addresses to send the email to.
|
|
* @param subject Subject line of the email.
|
|
* @param message Email message's body text.
|
|
* @param attachments Comma- or semicolon-separated list of paths or URLs of files to send as
|
|
* attachments to the email.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in Flags enum.
|
|
* @param recurrence Recurrence specification using iCalendar syntax (defined in RFC2445).
|
|
* @param repeatInterval Simple repetition repeat interval in minutes, or 0 for no sub-repetition.
|
|
* @param repeatCount Simple repetition repeat count (after the first occurrence), or 0 for no sub-repetition.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleEmail(const QString& fromID, const QString& addresses, const QString& subject, const QString& message,
|
|
const QString& attachments, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
const QString& recurrence, int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule an email alarm.
|
|
* @param fromID The KMail identity to use as the sender of the email, or QString::null to use KAlarm's default sender ID.
|
|
* @param addresses Comma-separated list of addresses to send the email to.
|
|
* @param subject Subject line of the email.
|
|
* @param message Email message's body text.
|
|
* @param attachments Comma- or semicolon-separated list of paths or URLs of files to send as
|
|
* attachments to the email.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in the Flags enum.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param repeatCount Recurrence count (after the first occurrence), or 0 for no recurrence.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleEmail(const QString& fromID, const QString& addresses, const QString& subject, const QString& message,
|
|
const QString& attachments, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
int repeatType, int repeatInterval, int repeatCount) = 0;
|
|
/** Schedule an email alarm.
|
|
* @param fromID The KMail identity to use as the sender of the email, or QString::null to use KAlarm's default sender ID.
|
|
* @param addresses Comma-separated list of addresses to send the email to.
|
|
* @param subject Subject line of the email.
|
|
* @param message Email message's body text.
|
|
* @param attachments Comma- or semicolon-separated list of paths or URLs of files to send as
|
|
* attachments to the email.
|
|
* @param startDateTime Start date/time, in the format YYYY-MM-DD[THH:MM[:SS]] or [T]HH:MM[:SS]
|
|
* @param lateCancel Late-cancellation period in minutes, or 0 for no cancellation.
|
|
* @param flags OR of flag bits defined in the Flags enum.
|
|
* @param repeatType The time units to use for recurrence. The actual recurrence interval is equal to
|
|
* @p repeatType multiplied by @p repeatInterval.
|
|
* The value of @p repeatType must a value defined in the RecurType enum.
|
|
* @param repeatInterval Recurrence interval in units defined by @p repeatType, or 0 for no recurrence.
|
|
* @param endDateTime Date/time after which the recurrence will end.
|
|
* @return true if alarm was scheduled successfully, false if configuration errors were found.
|
|
*/
|
|
virtual bool scheduleEmail(const QString& fromID, const QString& addresses, const QString& subject, const QString& message,
|
|
const QString& attachments, const QString& startDateTime, int lateCancel, unsigned flags,
|
|
int repeatType, int repeatInterval, const QString& endDateTime) = 0;
|
|
/** Open the alarm edit dialog to edit an existing alarm.
|
|
* @param eventId The unique ID of the event to be edited, or QString::null to create a new alarm.
|
|
* @return false if the alarm could not be found or is read-only, true otherwise.
|
|
*/
|
|
virtual bool edit(const QString& eventID) = 0;
|
|
/** Open the alarm edit dialog to edit a new alarm.
|
|
* @param templateName Name of the alarm template to base the new alarm on, or QString::null if none.
|
|
* If a template is specified but cannot be found, the alarm edit dialog is still
|
|
* opened but is (obviously) not preset with the template.
|
|
* @return false if an alarm template was specified but could not be found, true otherwise.
|
|
*/
|
|
virtual bool editNew(const QString& templateName) = 0;
|
|
};
|
|
|
|
#endif // KALARMIFACE_H
|