1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/app/calcommon.h Wed Mar 31 12:27:01 2010 +0100
1.3 @@ -0,0 +1,230 @@
1.4 +// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 +// All rights reserved.
1.6 +// This component and the accompanying materials are made available
1.7 +// under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
1.8 +// which accompanies this distribution, and is available
1.9 +// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.10 +//
1.11 +// Initial Contributors:
1.12 +// Nokia Corporation - initial contribution.
1.13 +//
1.14 +// Contributors:
1.15 +//
1.16 +// Description:
1.17 +//
1.18 +
1.19 +#ifndef __CALCOMMON_H__
1.20 +#define __CALCOMMON_H__
1.21 +
1.22 +#include <caltime.h>
1.23 +
1.24 +/** This system-wide #define is for version 2 of the Calendar component.
1.25 +V1 is the CalInterimAPI. V2 is the refactored Calendar component which includes
1.26 +support for Attachments, GEO, TRANSP, instance iterator, extended text searching.
1.27 +@publishedAll
1.28 +@released
1.29 +*/
1.30 +#define SYMBIAN_CALENDAR_V2
1.31 +
1.32 +/** Calendar local entry ID.
1.33 +This entry ID is assigned by the calendar server when an entry is created.
1.34 +It will remain unchanged for the lifetime of that entry.
1.35 +@publishedAll
1.36 +@released
1.37 +*/
1.38 +typedef TUint32 TCalLocalUid;
1.39 +
1.40 +/** Calendar file ID.
1.41 +@publishedAll
1.42 +@released
1.43 +*/
1.44 +typedef TInt64 TCalFileId;
1.45 +
1.46 +/** Utility class containing common calendar-related enums.
1.47 +
1.48 +@publishedAll
1.49 +@released
1.50 +*/
1.51 +class CalCommon
1.52 + {
1.53 +public:
1.54 +
1.55 + /** Entry filter used in the entry view and instance view, filter flags are defined by TCalViewFilterFlags
1.56 + @publishedAll
1.57 + @released
1.58 + */
1.59 + typedef TUint TCalViewFilter;
1.60 +
1.61 + /** Entry filter flags used in the entry view and instance view.
1.62 + @publishedAll
1.63 + @released
1.64 + */
1.65 + enum TCalViewFilterFlags
1.66 + {
1.67 + /** Include appointments. */
1.68 + EIncludeAppts=0x01,
1.69 + /** Include reminders. */
1.70 + EIncludeReminder=0x02,
1.71 + /** Include all-day events. */
1.72 + EIncludeEvents=0x04,
1.73 + /** Include anniversaries. */
1.74 + EIncludeAnnivs=0x08,
1.75 + /** Include completed todos. */
1.76 + EIncludeCompletedTodos=0x10,
1.77 + /** Include incompleted todos. */
1.78 + EIncludeIncompletedTodos=0x20,
1.79 + /** Remove non-alarmed entries. This flag cannot be used by itself. */
1.80 + EIncludeAlarmedOnly=0x40,
1.81 + /** Include next only instance of a repeat entry. */
1.82 + EIncludeRptsNextInstanceOnly=0x80,
1.83 +
1.84 + /** By default all instances which overlap the time range are found. Use the EInstanceStartTimeWithinRange
1.85 + flag to only include instances whose start time is inside the search time range.
1.86 +
1.87 + Note that setting both the EInstanceStartTimeWithinRange and EInstanceEndTimeWithinRange flags will
1.88 + only include instances which are completely within the search time range. */
1.89 + EInstanceStartTimeWithinRange=0x100,
1.90 +
1.91 + /** By default all instances which overlap the time range are found. Use the EInstanceEndTimeWithinRange
1.92 + flag to only include instances whose end time is inside the search time range.
1.93 +
1.94 + Note that setting both the EInstanceStartTimeWithinRange and EInstanceEndTimeWithinRange flags will
1.95 + only include instances which are completely within the search time range.
1.96 + */
1.97 + EInstanceEndTimeWithinRange=0x200,
1.98 +
1.99 + /** By default all instances which adjoin the search range are found. Use the EExcludeInstanceAdjoiningRange
1.100 + flag to exclude instances that are outside, but adjoin the search range.
1.101 +
1.102 + Instances that are outside, but adjoin the search start or end time are excluded.
1.103 + Instances that both start and end on the search start time are included.
1.104 + Instances that both start and end on the search end time are excluded.
1.105 + */
1.106 + EExcludeInstanceAdjoiningRange=0x400,
1.107 +
1.108 + /** Include all entries (appointments, day events, reminders, anniversaries and todos). */
1.109 + EIncludeAll=EIncludeAppts|EIncludeReminder|EIncludeEvents|EIncludeAnnivs|
1.110 + EIncludeCompletedTodos|EIncludeIncompletedTodos,
1.111 + };
1.112 +
1.113 + /** The range of instances referred to in a recurrence ID or instance view.
1.114 + @publishedAll
1.115 + @released
1.116 + */
1.117 + enum TRecurrenceRange
1.118 + {
1.119 + /** Only this instance is referenced.
1.120 + If the user set EThisOnly when a repeating child entry is created and stored to the file, only the parent instance
1.121 + referred to by the child's recurrence ID will be replaced. */
1.122 + EThisOnly,
1.123 + /** This and all other instances are referenced. */
1.124 + EThisAndAll,
1.125 + /** This and all future instances are referenced. */
1.126 + EThisAndFuture,
1.127 + /** This and all previous instances are referenced. */
1.128 + EThisAndPrior
1.129 + };
1.130 +
1.131 +
1.132 + /** Search filter for use in the CCalInstanceView::FindInstanceL() function.
1.133 + Note that a folded text search is used if exact text search is not specified.
1.134 + The summary text field is always searched. It is possible to specify additional text fields to be
1.135 + searched as well.
1.136 + @publishedAll
1.137 + @released
1.138 + */
1.139 + enum TCalSearchBehaviour
1.140 + {
1.141 + /** Search for folded text. */
1.142 + EFoldedTextSearch=0x0,
1.143 +
1.144 + /** Search for the exact text. */
1.145 + EExactTextSearch=0x1,
1.146 +
1.147 + /** Search location during a text search.
1.148 + @publishedPartner
1.149 + @released
1.150 + */
1.151 + ESearchEntryLocation=0x2,
1.152 +
1.153 + /** Search description during a text search.
1.154 + @publishedPartner
1.155 + @released
1.156 + */
1.157 + ESearchEntryDescription=0x4,
1.158 +
1.159 + /** Search attendee addresses during a text search.
1.160 + @publishedPartner
1.161 + @released
1.162 + */
1.163 + ESearchAttendeeAddress=0x8,
1.164 +
1.165 + /** Search attendee sent by addresses during a text search.
1.166 + @publishedPartner
1.167 + @released
1.168 + */
1.169 + ESearchAttendeeSentByAddress=0x10,
1.170 +
1.171 + /** Search attendee common names during a text search.
1.172 + @publishedPartner
1.173 + @released
1.174 + */
1.175 + ESearchAttendeeCommonName=0x20,
1.176 +
1.177 + /** Search organizer's address during a text search.
1.178 + @publishedPartner
1.179 + @released
1.180 + */
1.181 + ESearchOrganizerAddress=0x40,
1.182 +
1.183 + /** Search organizer's sent by address during a text search.
1.184 + @publishedPartner
1.185 + @released
1.186 + */
1.187 + ESearchOrganizerSentByAddress=0x80,
1.188 +
1.189 + /** Search organizer's common name during a text search.
1.190 + @publishedPartner
1.191 + @released
1.192 + */
1.193 + ESearchOrganizerCommonName=0x100,
1.194 +
1.195 + /** Include all possible text fields during a text search. */
1.196 + ESearchAllTextFields=ESearchEntryLocation|ESearchEntryDescription|
1.197 + ESearchAttendeeAddress|ESearchAttendeeSentByAddress|ESearchAttendeeCommonName|
1.198 + ESearchOrganizerAddress|ESearchOrganizerSentByAddress|ESearchOrganizerCommonName,
1.199 + };
1.200 +
1.201 + /** Class to implement a time range in the Instance view and Entry view.
1.202 + @publishedAll
1.203 + @released
1.204 + */
1.205 + class TCalTimeRange
1.206 + {
1.207 + public:
1.208 + IMPORT_C TCalTimeRange(TCalTime aStartTime, TCalTime aEndTime);
1.209 +
1.210 + IMPORT_C TCalTime StartTime() const;
1.211 + IMPORT_C TCalTime EndTime() const;
1.212 +
1.213 + private:
1.214 + TCalTime iStartTime;
1.215 + TCalTime iEndTime;
1.216 + };
1.217 +
1.218 + /** Enumeration returned when opening a file to indicate whether the file is the current version,
1.219 + needs converting, or is unsupported.
1.220 + @publishedPartner
1.221 + @released
1.222 + */
1.223 + enum TCalFileVersionSupport
1.224 + {
1.225 + /** The file is the current version and can be loaded immediately. */
1.226 + EFileIsCurrentVersion,
1.227 + /** The file is an older version and will be converted when it is used. */
1.228 + EFileNeedsConverting,
1.229 + /** The file is an old version that is not supported. */
1.230 + EUnsupportedFileVersion
1.231 + };
1.232 + };
1.233 +#endif // __CALCOMMON_H__