diff -r 48060abbbeaf -r b3cee849fa46 creator/engine/inc/creator_calendar.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/creator/engine/inc/creator_calendar.h Tue Aug 31 15:15:20 2010 +0300 @@ -0,0 +1,209 @@ +/* +* Copyright (c) 2010 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 "engine.h" +#include "creator_modulebase.h" +#include "creator_calendarbase.h" + +#include +#include + +//#include +#include +#include +#include +#include +#include +#include +#include +#include + + +class CCreatorEngine; +class CCalenderInterimParameters; +class CAsyncWaiter; + +class CCreatorInterimCalendar : public CCreatorCalendarBase, public MCalProgressCallBack + { +enum TCreatorCalendarStatus{ + ECreatorCalendarDelete = 0, + ECreatorCalendarStart, + ECreatorCalendarGetWeeklyEntries, + ECreatorCalendarGetAttendies, + ECreatorCalendarGetStartDate, + ECreatorCalendarGetEndDate, + ECreatorCalendarAddDefaultAlarm +}; + +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 ); // from MCreatorModuleBase + void QueryDialogClosedL(TBool aPositiveAction, TInt aUserData); //from MUIObserver + + 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(); + +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 + +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__