summaryrefslogtreecommitdiff
path: root/libopie/pim/orecur.h
blob: d24d72d860238a0706127968411d18c34e528f84 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
 * GPL from TT
 */

#ifndef OPIE_RECUR_H
#define OPIE_RECUR_H

#include <sys/types.h>

#include <qdatetime.h>



class ORecur {
public:
    enum RepeatType{ NoRepeat = -1, Daily, Weekly, MonthlyDay,
                     MonthlyDate, Yearly };
    enum Days { MON = 0x01, TUE = 0x02, WED = 0x04, THU = 0x08,
                FRI = 0x10, SAT = 0x20, SUN = 0x40 };
    ORecur();
    ORecur( const ORecur& );
    ~ORecur();

    ORecur &operator=( const ORecur& );
    bool operator==(const ORecur& )const;
    RepeatType type()const;
    int frequency()const;
    int position()const;
    char days()const;
    bool hasEndDate()const;
    QDate endDate()const;
    time_t endDateUTC()const;
    time_t createTime()const;
    int repetition()const;

    void setType( const RepeatType& );
    void setFrequency( int freq );
    void setPosition( int pos );
    void setDays( char c);
    void setEndDate( const QDate& dt );
    void setEndDateUTC( time_t );
    void setCreateTime( time_t );
    void setHasEndDate( bool b );
    void setRepitition(int );
private:
    void deref();
    inline void checkOrModify();


    class Data;
    Data* data;
    class ORecurPrivate;
    ORecurPrivate *d;
};

#endif