00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef KCAL_COMPAT_H
00023 #define KCAL_COMPAT_H
00024
00025 #include <tqstring.h>
00026 #include <tqdatetime.h>
00027
00028 namespace KCal {
00029
00030 class Incidence;
00031 class Compat;
00032
00036 class CompatFactory
00037 {
00038 public:
00039 static Compat *createCompat( const TQString &productId );
00040 };
00041
00045 class Compat
00046 {
00047 public:
00048 Compat() {};
00049 virtual ~Compat() {};
00050
00051 virtual void fixRecurrence( Incidence * );
00052 virtual void fixEmptySummary( Incidence * );
00053 virtual void fixAlarms( Incidence * ) {}
00054 virtual void fixFloatingEnd( TQDate & ) {}
00055 virtual bool useTimeZoneShift() { return true; }
00056 virtual int fixPriority( int prio ) { return prio; }
00057
00058 private:
00059 class Private;
00060 Private *d;
00061 };
00062
00063 class CompatPre35 : public Compat
00064 {
00065 public:
00066 virtual void fixRecurrence( Incidence * );
00067 private:
00068 class Private;
00069 Private *d;
00070 };
00071
00072 class CompatPre34 : public CompatPre35
00073 {
00074 public:
00075 virtual int fixPriority( int prio );
00076 private:
00077 class Private;
00078 Private *d;
00079 };
00080
00081 class CompatPre32 : public CompatPre34
00082 {
00083 public:
00084 virtual void fixRecurrence( Incidence * );
00085
00086 private:
00087 class Private;
00088 Private *d;
00089 };
00090
00091 class CompatPre31 : public CompatPre32
00092 {
00093 public:
00094 virtual void fixFloatingEnd( TQDate & );
00095 virtual void fixRecurrence( Incidence *incidence );
00096
00097 private:
00098 class Private;
00099 Private *d;
00100 };
00101
00102 class Compat32PrereleaseVersions : public Compat
00103 {
00104 public:
00105 virtual bool useTimeZoneShift() { return false; }
00106
00107 private:
00108 class Private;
00109 Private *d;
00110 };
00111
00112 class CompatOutlook9 : public Compat
00113 {
00114 public:
00115 virtual void fixAlarms( Incidence * );
00116
00117 private:
00118 class Private;
00119 Private *d;
00120 };
00121
00122 }
00123
00124 #endif