williamr@2: // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@4: // under the terms of "Eclipse Public License v1.0" williamr@2: // which accompanies this distribution, and is available williamr@4: // at the URL "http://www.eclipse.org/legal/epl-v10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __CALCATEGORY_H__ williamr@2: #define __CALCATEGORY_H__ williamr@2: williamr@2: #include williamr@2: williamr@2: class CCalCategoryImpl; williamr@2: williamr@2: /** Calendar categories can be associated with a calendar entry. williamr@2: williamr@2: There are 12 built in category types defined by TCalCategoryType. Additionally, williamr@2: it is possible to define extended category types which are held as a descriptor williamr@2: of any length. williamr@2: williamr@2: Any number of categories can be specified for an entry. CCalEntry provides member williamr@2: functions for adding, deleting and fetching categories for an entry. williamr@2: williamr@2: CCalCategoryManager functions enable the client to add\\delete\\fetch categories williamr@2: from a Calendar session and to get a list of entries filtered by their category. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: NONSHARABLE_CLASS(CCalCategory) : public CBase williamr@2: { williamr@2: public: williamr@2: /** Calendar category type. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: enum TCalCategoryType williamr@2: { williamr@2: /** Appointment */ williamr@2: ECalAppointment, williamr@2: /** Business */ williamr@2: ECalBusiness, williamr@2: /** Education */ williamr@2: ECalEducation, williamr@2: /** Holiday */ williamr@2: ECalHoliday, williamr@2: /** Meeting */ williamr@2: ECalMeeting, williamr@2: /** All other types */ williamr@2: ECalMiscellaneous, williamr@2: /** Personal */ williamr@2: ECalPersonal, williamr@2: /** Phone call */ williamr@2: ECalPhoneCall, williamr@2: /** Sick day */ williamr@2: ECalSickDay, williamr@2: /** Special occasion */ williamr@2: ECalSpecialOccasion, williamr@2: /** Travel */ williamr@2: ECalTravel, williamr@2: /** Vacation */ williamr@2: ECalVacation, williamr@2: /** Extended */ williamr@2: ECalExtended williamr@2: }; williamr@2: williamr@2: public: williamr@2: IMPORT_C static CCalCategory* NewL(TCalCategoryType aCategory); williamr@2: IMPORT_C static CCalCategory* NewL(const TDesC& aExtendedName); williamr@2: IMPORT_C ~CCalCategory(); williamr@2: williamr@2: IMPORT_C TCalCategoryType Category() const; williamr@2: IMPORT_C const TDesC& ExtendedCategoryName() const; williamr@2: williamr@2: public: williamr@2: CCalCategoryImpl* Impl() const; williamr@2: static CCalCategory* NewL(CCalCategoryImpl* aImpl); williamr@2: williamr@2: private: williamr@2: CCalCategory(); williamr@2: CCalCategory(CCalCategoryImpl* aImpl); williamr@2: void ConstructL(TCalCategoryType aCategory); williamr@2: void ConstructL(const TDesC& aExtendedName); williamr@2: williamr@2: private: // member data williamr@2: CCalCategoryImpl* iCalCategoryImpl; williamr@2: }; williamr@2: williamr@2: #endif // __CALCATEGORY_H__