diff -r 000000000000 -r d6fe6244b863 creator/inc/creator_calendar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/creator/inc/creator_calendar.h Tue Feb 02 00:17:27 2010 +0200 @@ -0,0 +1,235 @@ +/* +* Copyright (c) 2008 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 __CREATORCALENDARINTERIM_H__ +#define __CREATORCALENDARINTERIM_H__ + +#include "creator_model.h" +#include "creator_modulebase.h" +#include "creator_calendarbase.h" + +#include +#include + +//#include +#include +#include +#include +#include +#include +#include +#include +#include +#if(!defined __SERIES60_30__ && !defined __SERIES60_31__) +#include +#include +#include +class CVPbkContactManager; +#endif + +class CCreatorEngine; +class CCalenderInterimParameters; +class CAsyncWaiter; + +#if(!defined __SERIES60_30__ && !defined __SERIES60_31__) +class CCreatorInterimCalendar : public CCreatorCalendarBase, public MCalProgressCallBack, +public MVPbkSingleContactOperationObserver, public MVPbkContactStoreListObserver, public MVPbkContactFindObserver +#else +class CCreatorInterimCalendar : public CCreatorCalendarBase, public MCalProgressCallBack +#endif + { +public: + static CCreatorInterimCalendar* NewL(CCreatorEngine* aEngine); + static CCreatorInterimCalendar* NewLC(CCreatorEngine* aEngine); + ~CCreatorInterimCalendar(); + +private: + CCreatorInterimCalendar(); + void ConstructL(CCreatorEngine* aEngine); // from MCreatorModuleBase + void AddRepeatingRuleL(const TCalTime& aStartTime, CCalEntry& aCalEntry, CCalenderInterimParameters* parameters=0); + void SetRandomAlarmL(CCalEntry& aCalEntry); + void SetAlarmL(CCalEntry& aCalEntry, CCalenderInterimParameters* params); + void AddAttendeesL(CCalEntry& aCalEntry, CCalenderInterimParameters* parameters=0); + void SetPhoneOwnerL(CCalEntry& aCalEntry, const TDesC& aCN, const TDesC& aEmail, const TDesC& aSentBy ); + void SetOrganizerL(CCalEntry& aCalEntry, const TDesC& aCN, const TDesC& aEmail, const TDesC& aSentBy); + void SetOrganizerL(CCalEntry& aCalEntry, CCalenderInterimParameters* parameters ); + +public: + TBool AskDataFromUserL(TInt aCommand, TInt& aNumberOfEntries); // from MCreatorModuleBase + + TInt CreateAppointmentEntryL(CCreatorModuleBaseParameters *aParameters); + TInt CreateEventEntryL(CCreatorModuleBaseParameters *aParameters); + TInt CreateAnniversaryEntryL(CCreatorModuleBaseParameters *aParameters); + TInt CreateTodoEntryL(CCreatorModuleBaseParameters *aParameters); + TInt CreateReminderEntryL(CCreatorModuleBaseParameters *aParameters); + + void GenerateRandomId(TDes8& aText); + void DeleteAllL(); + void DeleteAllCreatedByCreatorL(); + +public: +#if(!defined __SERIES60_30__ && !defined __SERIES60_31__) + // From MVPbkSingleContactOperationObserver: + virtual void VPbkSingleContactOperationComplete( + MVPbkContactOperationBase& aOperation, + MVPbkStoreContact* aContact ); + + virtual void VPbkSingleContactOperationFailed( + MVPbkContactOperationBase& aOperation, + TInt aError ); + + // From MVPbkContactStoreListObserver + virtual void OpenComplete(); + virtual void StoreReady(MVPbkContactStore&); + virtual void StoreUnavailable(MVPbkContactStore&, TInt); + virtual void HandleStoreEventL(MVPbkContactStore&, TVPbkContactStoreEvent); + + // From MVPbkContactFindObserver + virtual void FindCompleteL( MVPbkContactLinkArray* aResults ); + virtual void FindFailed( TInt aError ); + void HandleSingleContactResultL(); +#endif + +private: + + CCalenderInterimParameters* iParameters; + TTime iRandomModeStartTime; + TTime iRandomModeEndTime; + TInt iNumberRepeatingEntries; + TInt iNumberOfAttendees; + CCalEntryView* iCalEntryView; + CCalSession* iCalSession; + TBool iSetAlarm; + CDesCArrayFlat* iSoundFileArray; + CAsyncWaiter* iWaiter; + HBufC* iTmpCN; + HBufC* iTmpEmail; + RArray iEntryIds; // TCalLocalUid ( == TUint32 ) CCalEntry::LocalUidL + +#if(!defined __SERIES60_30__ && !defined __SERIES60_31__) + CVPbkContactManager* iContactManager; + MVPbkContactLinkArray* iExistingContacts; + MVPbkStoreContact* iTempContact; +#endif +public: + + //Observer implementation for MCalProgressCallBack + void Progress(TInt aPercentageCompleted); + + void Completed(TInt aError); + + TBool NotifyProgress(); + + }; + +class CCreatorCalenderAttendee : public CBase +{ +public: + virtual ~CCreatorCalenderAttendee(); + static CCreatorCalenderAttendee* NewL(); + void SetCommonNameL(const TDesC& aName); + void SetEmailAddressL(const TDesC& aEmail); + void SetRole(CCalAttendee::TCalRole aRole); + void SetStatus(CCalAttendee::TCalStatus); + + const TDesC& CommonName() const; + const TDesC& EmailAddress() const; + CCalAttendee::TCalRole Role() const; + CCalAttendee::TCalStatus Status() const; + +private: + CCreatorCalenderAttendee(); + TPtrC iDummy; + HBufC* iCommonName; + HBufC* iEmailAddress; + CCalAttendee::TCalRole iRole; + CCalAttendee::TCalStatus iStatus; +}; + +class CCalenderInterimParameters : public CCreatorModuleBaseParameters + { +public: + + void ParseL(CCommandParser* parser, TParseParams aCase); + TBool IsAllowedEntryStatus(CCalEntry::TType aType, CCalEntry::TStatus aStatus); + + TCalRRule::TType iRecurrentFrequency; + TInt iRecurrentInterval; + TTime iRecurrentStartTime; + TTime iRecurrentEndTime; + TInt iRepeatingCount; // This is used when running a script... + TTime iAlarmTime; // NullTTime means no alarm + TBool iUseRandomAlarmTime; // ETrue if random alarm should be set. Overwrites the iAlarmTime. + + RPointerArray iAttendees; + RArray iAttendeeLinkIds; // For attendees. Stores the linked contact ids. + HBufC* iOrganizerName; + HBufC* iOrganizerEmail; + + HBufC* iDescription; + HBufC* iSummary; + HBufC* iLocation; + TTime iStartTime; + TTime iEndTime; + TInt iNumberRepeatingEntries; // This is used when user input is used... + TInt iNumberOfAttendees; // Number of randomly generated attendees + TInt iNumberOfExistingAttendees; // Number of attendees selected from existing contacts. + + //An appointment, which has a start time and end time. + TTime iAppointmentStartTime; + TTime iAppointmentEndTime; + HBufC* iAppointmentLocation; + HBufC* iAppointmentReason; + + //An event, which has a start time and end time. + + TTime iEventStartTime; + TTime iEventEndTime; + HBufC* iEventReason; + + //A reminder, which has a start time only. + TTime iReminderStartTime; + HBufC* iReminderReason; + + //An anniversary, which has a start time and end time. + TTime iAnniversaryStartTime; + TTime iAnniversaryEndTime; + HBufC* iAnniversaryReason; + + //A to-do, which can have a start time and end time (the end time is the due date), or can be undated. + TTime iTodoStartTime;//optional + TTime iTodoDueTime;//also end time (optional) + HBufC* iTodoTask; + TInt iTodoPriority; + + TTime iRandomModeStartTime; + TTime iRandomModeEndTime; + + CCalEntry::TStatus iStatus; + +public: + CCalenderInterimParameters(); + ~CCalenderInterimParameters(); + + }; + + + +#endif // __CREATORCALENDARINTERIM_H__