--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/pimappservices/calendar/inc/calentry.h Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,379 @@
+// Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __CALENTRY_H__
+#define __CALENTRY_H__
+
+#include <calcommon.h>
+
+/** Minimum latitude in degrees.
+@see CCalGeoValue::SetLatLongL
+@publishedAll
+@released
+*/
+const TReal KCalGEOMinLatitude = -90;
+
+/** Maximum latitude in degrees.
+@see CCalGeoValue::SetLatLongL
+@publishedAll
+@released
+*/
+const TReal KCalGEOMaxLatitude = 90;
+
+/** Minimum longitude in degrees.
+@see CCalGeoValue::SetLatLongL
+@publishedAll
+@released
+*/
+const TReal KCalGEOMinLongitude = -180;
+
+/** Maximum longitude in degrees.
+@see CCalGeoValue::SetLatLongL
+@publishedAll
+@released
+*/
+const TReal KCalGEOMaxLongitude = 180;
+
+/** Maximum number of decimal places for longitude and latitude values.
+The position specified to CCalGeoValue::SetLatLongL will be truncated
+to KGEOMaxDecimalPoint decimal places
+@see CCalGeoValue::SetLatLongL
+@publishedAll
+@released
+*/
+const TUint KCalGEOMaxDecimalPlaces = 6;
+
+class CCalAlarm;
+class CCalAttachment;
+class CCalAttendee;
+class CCalCategory;
+class CCalEntryImpl;
+class CCalGeoValue;
+class CCalUser;
+class CTzRules;
+class TCalRRule;
+class CCalEntryIdImpl;
+
+/** Class representing a calendar entry. This can be an appointment, to-do
+item, reminder, event or anniversary.
+
+CCalEntry contains information about a calendar entry, including
+a repeat definition, synchronisation information, and group scheduling data.
+
+A repeating calendar entry has more than one occurrence. Instances are
+represented by the CCalInstance class.
+
+Synchronisation information includes a record of the date/time the entry was
+last modified. This can be found by calling the LastModifiedDateL() function.
+
+@publishedAll
+@released
+*/
+NONSHARABLE_CLASS(CCalEntry) : public CBase
+ {
+public:
+ /** Defines the type of the calendar entry.
+ @publishedAll
+ @released
+ */
+ enum TType
+ {
+ /** An appointment, which has a start time and end time. */
+ EAppt,
+ /** A to-do, which can have a start time and end time (the end time is the due date), or can be undated. */
+ ETodo,
+ /** An event, which has a start time and end time. */
+ EEvent,
+ /** A reminder, which has a start time only. */
+ EReminder,
+ /** An anniversary, which has a start time and end time. */
+ EAnniv
+ };
+
+ /** Defines the possible status values of the entry.
+ There are values here to support both iCalendar (RFC 2445) and vCalendar v1.0 STATUS properties.
+ Enumerated values for vCalendar v1.0 contain the prefix 'EVCal'.
+ @publishedAll
+ @released
+ */
+ enum TStatus
+ {
+ /** Used to support iCalendar (RFC 2445) and vCalendar 1.0. The event is tentative. */
+ ETentative,
+ /** Used to support iCalendar (RFC 2445) and vCalendar 1.0. The event has been confirmed. */
+ EConfirmed,
+ /** Used to support iCalendar (RFC 2445). The event has been cancelled. */
+ ECancelled,
+ /** Used to support iCalendar (RFC 2445). The to-do entry needs action. */
+ ETodoNeedsAction,
+ /** Used to support iCalendar (RFC 2445) and vCalendar 1.0. The to-do entry has been completed. */
+ ETodoCompleted,
+ /** Used to support iCalendar (RFC 2445). The to-do entry is in progress. */
+ ETodoInProcess,
+ /** No status is set. */
+ ENullStatus,
+
+ /** Used to support vCalendar 1.0. The entry has been accepted. */
+ EVCalAccepted,
+ /** Used to support vCalendar 1.0. The entry needs action. */
+ EVCalNeedsAction,
+ /** Used to support vCalendar 1.0. The entry has been sent. */
+ EVCalSent,
+ /** Used to support vCalendar 1.0. The entry has been declined. */
+ EVCalDeclined,
+ /** Used to support vCalendar 1.0. The entry has been delegated. */
+ EVCalDelegated,
+ };
+
+ /** Replication status.
+ @publishedAll
+ @released
+ */
+ enum TReplicationStatus
+ {
+ /** No restriction on access. */
+ EOpen,
+ /** Data is private (no access). */
+ EPrivate,
+ /** Data is confidential (restricted access). */
+ ERestricted
+ };
+
+ /** The method property of a Group Scheduling entry.
+ @publishedAll
+ @released
+ */
+ enum TMethod
+ {
+ /** The RFC2445-defined method value 'None'. */
+ EMethodNone,
+ /** The RFC2445-defined method value 'Publish'. */
+ EMethodPublish,
+ /** The RFC2445-defined method value 'Request'. */
+ EMethodRequest,
+ /** The RFC2445-defined method value 'Reply'. */
+ EMethodReply,
+ /** The RFC2445-defined method value 'Add'. */
+ EMethodAdd,
+ /** The RFC2445-defined method value 'Cancel'. */
+ EMethodCancel,
+ /** The RFC2445-defined method value 'Refresh'. */
+ EMethodRefresh,
+ /** The RFC2445-defined method value 'Counter'. */
+ EMethodCounter,
+ /** The RFC2445-defined method value 'DeclineCounter'. */
+ EMethodDeclineCounter
+ };
+
+ /** Specify which entry details are to be copied in CCalEntry::CopyFromL functions.
+ @publishedAll
+ @released
+ */
+ enum TCopyType
+ {
+ /** Copy the ID of the entry */
+ ECopyAll,
+ /** Dont copy ID of the entry */
+ EDontCopyId
+ };
+
+ /** The busy status of an entry and corresponds to the TRANSP property in the iCalendar (RFC 2445) and vCalendar specifications.
+ In the vCalendar specification, the TRANSP property can be any positive integer value. 0 is opaque and blocks time, 1
+ is transparent and doesn't block time. Any higher values have an implementation-specific meaning.
+ In the iCalendar specification (RFC 2445), the TRANSP property can be either OPAQUE (blocks time) or TRANSPARENT (doesn't block time).
+ @publishedPartner
+ @released
+ */
+ enum TTransp
+ {
+ /** The entry blocks time. */
+ ETranspBusy,
+ /** The entry doesn't block time. */
+ ETranspFree,
+ /** The entry is tentative and blocks time. */
+ ETranspTentative,
+ /** The entry is an out-of-office calendar event and blocks time. */
+ ETranspOutOfOffice,
+ };
+
+ // Construction / Destruction
+ IMPORT_C static CCalEntry* NewL(TType aType, HBufC8* aUid, TMethod aMethod, TUint aSeqNum);
+ IMPORT_C static CCalEntry* NewL(TType aType, HBufC8* aUid, TMethod aMethod, TUint aSeqNum,
+ const TCalTime& aRecurrenceId, CalCommon::TRecurrenceRange aRange);
+
+ IMPORT_C ~CCalEntry();
+
+ // Date and Time
+ IMPORT_C TCalTime StartTimeL() const;
+ IMPORT_C TCalTime EndTimeL() const;
+ IMPORT_C void SetStartAndEndTimeL(const TCalTime& aStartTime, const TCalTime& aEndTime);
+
+ IMPORT_C void SetLastModifiedDateL();
+ IMPORT_C void SetLastModifiedDateL(const TCalTime& aModifiedTime);
+ IMPORT_C TCalTime LastModifiedDateL() const;
+
+ IMPORT_C void SetDTStampL(const TCalTime& aTime);
+ IMPORT_C TCalTime DTStampL() const;
+
+ IMPORT_C TCalTime CompletedTimeL() const;
+ IMPORT_C void SetCompletedL(TBool aCompleted, const TCalTime& aTime);
+
+ // Repeat rules / RDate / ExDate Methods
+ IMPORT_C void SetRRuleL(const TCalRRule& aRule);
+ IMPORT_C TBool GetRRuleL(TCalRRule& aRule) const;
+
+ IMPORT_C void SetRDatesL(const RArray<TCalTime>& aRDateList);
+ IMPORT_C void GetRDatesL(RArray<TCalTime>& aRDateList) const;
+
+ IMPORT_C void SetExceptionDatesL(const RArray<TCalTime>& aExDateList);
+ IMPORT_C void GetExceptionDatesL(RArray<TCalTime>& aExDateList) const;
+
+ IMPORT_C void ClearRepeatingPropertiesL();
+
+ // Entry alarm
+ IMPORT_C void SetAlarmL(CCalAlarm* aAlarm);
+ IMPORT_C CCalAlarm* AlarmL() const;
+
+ // Comparison
+ IMPORT_C TBool CompareL(const CCalEntry& aEntry) const;
+
+ // Copy
+ IMPORT_C void CopyFromL(const CCalEntry& aOther);
+ IMPORT_C void CopyFromL(const CCalEntry& aOther, TCopyType aCopyType);
+
+ // Text Fields
+ IMPORT_C void SetSummaryL(const TDesC& aSummary);
+ IMPORT_C const TDesC& SummaryL() const;
+ IMPORT_C void SetDescriptionL(const TDesC& aDescription);
+ IMPORT_C const TDesC& DescriptionL() const;
+ IMPORT_C void SetLocationL(const TDesC& aLocation);
+ IMPORT_C const TDesC& LocationL() const;
+
+ // Category list
+ IMPORT_C void AddCategoryL(CCalCategory* aCategory);
+ IMPORT_C void DeleteCategoryL(TInt aIndex);
+ IMPORT_C const RPointerArray<CCalCategory>& CategoryListL();
+
+ // Attendee Methods
+ IMPORT_C void AddAttendeeL(CCalAttendee* aAttendee);
+ IMPORT_C void DeleteAttendeeL(TInt aIndex);
+ IMPORT_C RPointerArray<CCalAttendee>& AttendeesL() const;
+ IMPORT_C void SetOrganizerL(CCalUser* aUser);
+ IMPORT_C CCalUser* OrganizerL() const;
+ IMPORT_C void SetPhoneOwnerL(const CCalUser* aOwner);
+ IMPORT_C CCalUser* PhoneOwnerL() const;
+
+ // Attachments
+ IMPORT_C void AddAttachmentL(CCalAttachment& aAttachment);
+ IMPORT_C void DeleteAttachmentL(const CCalAttachment& aAttachment);
+ IMPORT_C CCalAttachment* AttachmentL(TInt aIndex) const;
+ IMPORT_C TInt AttachmentCountL() const;
+ // Other Attributes
+ IMPORT_C TType EntryTypeL() const;
+ IMPORT_C void SetStatusL(TStatus aStatus);
+ IMPORT_C TStatus StatusL() const;
+
+ IMPORT_C void SetReplicationStatusL(TReplicationStatus aReplicationStatus);
+ IMPORT_C TReplicationStatus ReplicationStatusL() const;
+
+ IMPORT_C void SetPriorityL(TUint aPriority);
+ IMPORT_C TUint PriorityL() const;
+
+ IMPORT_C void SetMethodL(TMethod aMethod);
+ IMPORT_C TMethod MethodL() const;
+ IMPORT_C void SetSequenceNumberL(TInt aSeq);
+ IMPORT_C TInt SequenceNumberL() const;
+ IMPORT_C const TDesC8& UidL() const;
+ IMPORT_C TCalTime RecurrenceIdL() const;
+ IMPORT_C CalCommon::TRecurrenceRange RecurrenceRangeL() const;
+
+ IMPORT_C CTzRules* TzRulesL() const;
+ IMPORT_C void SetTzRulesL(const CTzRules& aTzRule);
+ IMPORT_C void SetTzRulesL();
+
+ IMPORT_C void SetLocalUidL(TCalLocalUid aLocalId);
+ IMPORT_C TCalLocalUid LocalUidL() const;
+
+ IMPORT_C TTransp TimeTransparencyL() const;
+ IMPORT_C void SetTimeTransparencyL(TTransp aBusyStatus);
+
+ IMPORT_C CCalGeoValue* GeoValueL() const;
+ IMPORT_C void SetGeoValueL(const CCalGeoValue& aGeoValue);
+ IMPORT_C void ClearGeoValueL();
+
+ IMPORT_C TCalTime NextInstanceForLocalUIDL(const TCalTime& aTime) const;
+ IMPORT_C TCalTime PreviousInstanceForLocalUIDL(const TCalTime& aTime) const;
+
+ IMPORT_C TCalTime FindRptUntilTimeL(TInt aCount);
+
+public:
+ // Internal APIs
+ static CCalEntry* NewL(CCalEntryImpl* aImpl);
+ CCalEntryImpl* Impl() const;
+ TUint8 ShortFileIdL();
+
+private:
+ void ConstructL(TType aType, HBufC8* aUid, TMethod aMethod, TUint aSeqNum, const TCalTime& aRecurrenceId, CalCommon::TRecurrenceRange aRange);
+ void ConstructL(TType aType, HBufC8* aUid, TMethod aMethod, TUint aSeqNum);
+ void ConstructL(CCalEntryImpl* aImpl);
+
+private: // member data
+ CCalEntryImpl* iImpl;
+ };
+
+
+/** Class representing a uniquely identifiable calendar entry in a calendar file.
+
+@publishedAll
+@released
+*/
+NONSHARABLE_CLASS(CCalEntryId) : public CBase
+ {
+public:
+ IMPORT_C static CCalEntryId* NewL(TDesC8* aFlatData);
+ IMPORT_C ~CCalEntryId();
+ IMPORT_C TPtrC8 IdL();
+ IMPORT_C TPtrC StoreFileNameL();
+ IMPORT_C TCalTime RecurrenceIdL();
+ IMPORT_C TCalTime InstanceTimeL() const;
+ IMPORT_C TCalLocalUid LocalUidL() const;
+private:
+ CCalEntryId();
+private:
+ CCalEntryIdImpl* iImpl;
+ };
+
+
+/** Class representing the geographical location of a calendar entry.
+This corresponds to the GEO property as defined in vCalendar / iCalendar (RFC 2445). It contains a latitude and a longitude.
+@publishedAll
+@released
+*/
+NONSHARABLE_CLASS(CCalGeoValue) : public CBase
+ {
+public:
+ IMPORT_C static CCalGeoValue* NewL();
+ IMPORT_C ~CCalGeoValue();
+ IMPORT_C void SetLatLongL(const TReal& aLatitude, const TReal& aLongitude);
+ IMPORT_C TBool GetLatLong(TReal& aLatitude, TReal& aLongitude) const;
+private:
+ CCalGeoValue();
+private:
+ TReal iLatitude;
+ TReal iLongitude;
+ };
+
+#endif // __CALENTRY_H__
+