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@2: // 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 williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.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 __CALINSTANCEVIEW_H__ williamr@2: #define __CALINSTANCEVIEW_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: #include williamr@2: williamr@2: class CCalFindInstanceSettings; williamr@2: class CCalInstance; williamr@2: class CCalInstanceIterator; williamr@2: class CCalInstanceViewImpl; williamr@2: class CCalSession; williamr@2: class MCalProgressCallBack; williamr@2: class TCalTime; williamr@2: class CCalLiteEntry; williamr@2: class TAgnInstanceId; williamr@2: struct TASShdAlarmedInstanceParams; williamr@2: williamr@2: /** View class for accessing instances of calendar entries. williamr@2: williamr@2: Once a session to a calendar file has been created, a view to the session williamr@2: can be created. williamr@2: williamr@2: An instance is a calendar entry, a repeated instance of a calendar entry, williamr@2: or an RDate added to an entry. williamr@2: williamr@2: This view can be used to search for instances and also to delete instances. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: NONSHARABLE_CLASS(CCalInstanceView) : public CBase williamr@2: { williamr@2: public: williamr@2: williamr@2: /** Parameter struct for storing search data. williamr@2: This contains a descriptor to store search text and an enum to describe the text search behaviour. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class TCalSearchParams williamr@2: { williamr@2: public: williamr@2: IMPORT_C TCalSearchParams(const TDesC& aText, CalCommon::TCalSearchBehaviour aBehaviour); williamr@2: IMPORT_C const TDesC& Text() const; williamr@2: IMPORT_C CalCommon::TCalSearchBehaviour Behaviour() const; williamr@2: williamr@2: private: williamr@2: TPtrC iSearchText; williamr@2: CalCommon::TCalSearchBehaviour iSearchBehaviour; williamr@2: }; williamr@2: williamr@2: IMPORT_C static CCalInstanceView* NewL(CCalSession& aSession, MCalProgressCallBack& aProgressCallBack); williamr@2: IMPORT_C static CCalInstanceView* NewL(CCalSession& aSession); williamr@2: IMPORT_C ~CCalInstanceView(); williamr@2: williamr@2: IMPORT_C void FindInstanceL(RPointerArray& aInstanceList, williamr@2: CalCommon::TCalViewFilter aCalViewFilter, williamr@2: const CalCommon::TCalTimeRange& aTimeRange) const; williamr@2: williamr@2: IMPORT_C void FindInstanceL(RPointerArray& aMatchedInstanceList, williamr@2: CalCommon::TCalViewFilter aCalViewFilter, williamr@2: const CalCommon::TCalTimeRange& aTimeRange, williamr@2: const TCalSearchParams& aSearchParams) const; williamr@2: williamr@2: IMPORT_C CCalInstanceIterator* FindInstanceL(const CCalFindInstanceSettings& aSettings) const; williamr@2: williamr@2: IMPORT_C void FindAlarmedInstanceL(RPointerArray& aAlarmedInstanceList, williamr@2: TASShdAlarmedInstanceParams aAlarmedInstanceParams) const; williamr@2: williamr@2: IMPORT_C void DeleteL(CCalInstance* aInstance, CalCommon::TRecurrenceRange aWhichInstances); williamr@2: williamr@2: IMPORT_C TCalTime NextInstanceL(CalCommon::TCalViewFilter aCalViewFilter, const TCalTime& aStartDate) const; williamr@2: IMPORT_C TCalTime PreviousInstanceL(CalCommon::TCalViewFilter aCalViewFilter, const TCalTime& aStartDate) const; williamr@2: williamr@2: private: williamr@2: CCalInstanceView(); williamr@2: void ConstructL(CCalSession& aSession, MCalProgressCallBack* aProgressCallBack); williamr@2: williamr@2: private: williamr@2: CCalInstanceViewImpl* iImpl; williamr@2: }; williamr@2: williamr@2: /** Class for specifying the search criteria for use in @see CCalInstanceView::FindInstanceL. williamr@2: williamr@2: @publishedPartner williamr@2: @released williamr@2: */ williamr@2: NONSHARABLE_CLASS(CCalFindInstanceSettings) : public CBase williamr@2: { williamr@2: public: williamr@2: IMPORT_C static CCalFindInstanceSettings* NewL(CalCommon::TCalViewFilter aFilter, const CalCommon::TCalTimeRange& aTimeRange); williamr@2: IMPORT_C ~CCalFindInstanceSettings(); williamr@2: williamr@2: IMPORT_C void SetFilter(CalCommon::TCalViewFilter aFilter); williamr@2: IMPORT_C void SetTimeRange(const CalCommon::TCalTimeRange& aTimeRange); williamr@2: IMPORT_C void SetTextSearchL(const CCalInstanceView::TCalSearchParams& aSearchParams); williamr@2: williamr@2: CalCommon::TCalSearchBehaviour Behaviour() const; williamr@2: CalCommon::TCalViewFilter Filter() const; williamr@2: const CalCommon::TCalTimeRange TimeRange() const; williamr@2: const TDesC& Text() const; williamr@2: private: williamr@2: CCalFindInstanceSettings(CalCommon::TCalViewFilter aFilter, const CalCommon::TCalTimeRange& aTimeRange); williamr@2: williamr@2: private: williamr@2: CalCommon::TCalTimeRange iTimeRange; williamr@2: CalCommon::TCalViewFilter iFilter; williamr@2: HBufC* iSearchText; williamr@2: CalCommon::TCalSearchBehaviour iSearchBehaviour; williamr@2: }; williamr@2: williamr@2: #endif // __CALINSTANCEVIEW_H__