libkcal
alarm.h00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef KCAL_ALARM_H
00024 #define KCAL_ALARM_H
00025
00026 #include <qstring.h>
00027 #include <qstringlist.h>
00028 #include <qvaluelist.h>
00029
00030 #include "customproperties.h"
00031 #include "duration.h"
00032 #include "person.h"
00033 #include "listbase.h"
00034 #include "libkcal_export.h"
00035
00036 #include <kdepimmacros.h>
00037
00038 namespace KCal {
00039
00040 class Incidence;
00041
00045 class LIBKCAL_EXPORT Alarm : public CustomProperties
00046 {
00047 public:
00048 enum Type { Invalid, Display, Procedure, Email, Audio };
00049
00050 typedef ListBase<Alarm> List;
00051
00055 explicit Alarm( Incidence *parent );
00059 ~Alarm();
00060
00065 Alarm *clone();
00066
00071 Alarm &operator=( const Alarm & );
00072
00076 bool operator==( const Alarm & ) const;
00077 bool operator!=( const Alarm &a ) const { return !operator==( a ); }
00078
00086 void setType( Type type );
00087
00091 Type type() const;
00092
00098 void setDisplayAlarm( const QString &text = QString::null );
00099
00104 void setText( const QString &text );
00105
00109 QString text() const;
00110
00116 void setAudioAlarm( const QString &audioFile = QString::null );
00121 void setAudioFile( const QString &audioFile );
00127 QString audioFile() const;
00128
00135 void setProcedureAlarm( const QString &programFile,
00136 const QString &arguments = QString::null );
00141 void setProgramFile( const QString &programFile );
00147 QString programFile() const;
00152 void setProgramArguments( const QString &arguments );
00158 QString programArguments() const;
00159
00168 void setEmailAlarm( const QString &subject, const QString &text,
00169 const QValueList<Person> &addressees,
00170 const QStringList &attachments = QStringList() );
00171
00176 void setMailAddress( const Person &mailAlarmAddress );
00181 void setMailAddresses( const QValueList<Person> &mailAlarmAddresses );
00186 void addMailAddress( const Person &mailAlarmAddress );
00190 QValueList<Person> mailAddresses() const;
00191
00196 void setMailSubject( const QString &mailAlarmSubject );
00200 QString mailSubject() const;
00201
00206 void setMailAttachment( const QString &mailAttachFile );
00211 void setMailAttachments( const QStringList &mailAttachFiles );
00216 void addMailAttachment( const QString &mailAttachFile );
00220 QStringList mailAttachments() const;
00221
00226 void setMailText( const QString &text );
00232 QString mailText() const;
00233
00237 void setTime( const QDateTime &alarmTime );
00241 QDateTime time() const;
00246 QDateTime endTime() const;
00250 bool hasTime() const;
00251
00255 void setStartOffset( const Duration & );
00261 Duration startOffset() const;
00266 bool hasStartOffset() const;
00267
00271 void setEndOffset( const Duration & );
00277 Duration endOffset() const;
00282 bool hasEndOffset() const;
00283
00289 void setSnoozeTime( const Duration &alarmSnoozeTime );
00290
00296 Duration snoozeTime() const;
00297
00302 void setRepeatCount( int alarmRepeatCount );
00306 int repeatCount() const;
00314 QDateTime nextRepetition(const QDateTime& preTime) const;
00322 QDateTime previousRepetition(const QDateTime& afterTime) const;
00327 Duration duration() const;
00328
00333 void toggleAlarm();
00334
00338 void setEnabled(bool enable);
00342 bool enabled() const;
00343
00347 void setParent( Incidence * );
00351 Incidence *parent() const { return mParent; }
00352
00353 protected:
00358 virtual void customPropertyUpdated();
00359
00360 private:
00361 Incidence *mParent;
00362 Type mType;
00363 QString mDescription;
00364 QString mFile;
00365 QStringList mMailAttachFiles;
00366 QValueList<Person> mMailAddresses;
00367 QString mMailSubject;
00368
00369 Duration mAlarmSnoozeTime;
00370
00371 int mAlarmRepeatCount;
00372
00373
00374 QDateTime mAlarmTime;
00375 Duration mOffset;
00376 bool mEndOffset;
00377 bool mHasTime;
00378 bool mAlarmEnabled;
00379
00380 class Private;
00381 Private *d;
00382 };
00383
00384 }
00385
00386 #endif
|