2 Copyright (C) 2004-2005 SKYRIX Software AG
4 This file is part of SOPE.
6 SOPE is free software; you can redistribute it and/or modify it under
7 the terms of the GNU Lesser General Public License as published by the
8 Free Software Foundation; either version 2, or (at your option) any
11 SOPE is distributed in the hope that it will be useful, but WITHOUT ANY
12 WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 License for more details.
16 You should have received a copy of the GNU Lesser General Public
17 License along with SOPE; see the file COPYING. If not, write to the
18 Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
22 #ifndef __NGiCal_iCalRecurrenceRule_H_
23 #define __NGiCal_iCalRecurrenceRule_H_
25 #import "CardElement.h"
30 Encapsulates a (probably complex) recurrence rule by offering
33 NOTE: as of now, only a very limited subset of RFC2445 is implemented.
34 Please see the unit tests for what is covered.
37 // TODO: we could use string constants?
39 iCalRecurrenceFrequenceSecondly = 1,
40 iCalRecurrenceFrequenceMinutely = 2,
41 iCalRecurrenceFrequenceHourly = 3,
42 iCalRecurrenceFrequenceDaily = 4,
43 iCalRecurrenceFrequenceWeekly = 5,
44 iCalRecurrenceFrequenceMonthly = 6,
45 iCalRecurrenceFrequenceYearly = 7,
46 } iCalRecurrenceFrequency;
49 iCalWeekDayMonday = 1,
50 iCalWeekDayTuesday = 2,
51 iCalWeekDayWednesday = 4,
52 iCalWeekDayThursday = 8,
53 iCalWeekDayFriday = 16,
54 iCalWeekDaySaturday = 32,
55 iCalWeekDaySunday = 64,
58 @class NSString, NSCalendarDate, NGCalendarDateRange, NSArray;
60 @interface iCalRecurrenceRule : CardElement
62 // iCalRecurrenceFrequency frequency;
64 // unsigned repeatCount;
65 // NSCalendarDate *untilDate;
67 // unsigned weekStart: 7;
69 // unsigned useOccurence:1;
70 // unsigned reserved:1;
72 // int byDayOccurence1;
73 // NSArray *byMonthDay;
78 + (id) recurrenceRuleWithICalRepresentation: (NSString *) _iCalRep;
79 - (id) initWithString: (NSString *) _str;
83 - (void) setFrequency: (iCalRecurrenceFrequency) _frequency;
84 - (iCalRecurrenceFrequency) frequency;
86 - (void) setRepeatInterval: (int) _repeatInterval;
87 - (int) repeatInterval;
89 - (void) setWeekStart: (iCalWeekDay) _weekStart;
90 - (iCalWeekDay) weekStart;
92 - (void) setByDayMask: (unsigned int) _mask;
93 - (unsigned int) byDayMask;
94 - (int) byDayOccurence1;
96 - (NSArray *) byMonthDay;
98 /* count and untilDate are mutually exclusive */
100 - (void) setRepeatCount: (int) _repeatCount;
103 - (void) setUntilDate: (NSCalendarDate *) _untilDate;
104 - (NSCalendarDate *) untilDate;
108 /* parse complete iCal RRULE */
110 - (void) setRrule: (NSString *) _rrule; // TODO: weird name? (better: RRule?)
112 // - (NSString *)iCalRepresentation;
116 #endif /* __NGiCal_iCalRecurrenceRule_H_ */