diff -r 000000000000 -r f979ecb2b13e calendarui/controller/inc/calenservicesimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/calendarui/controller/inc/calenservicesimpl.h Tue Feb 02 10:12:19 2010 +0200 @@ -0,0 +1,280 @@ +/* +* Copyright (c) 2007 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: Provides services for native Calendar extensions +* +*/ + +#ifndef CALENSERVICESIMPL_H +#define CALENSERVICESIMPL_H + +#include +#include +#include +#include + +// Forward declarations +class CCalenGlobalData; // Calendar-wide accessors +class CCalenController; // Calendar controller +class CCalenIcons; +class CGulIcon; +class CCalenAttachmentModel; +class CCalCalendarInfo; +class MCalenPreview; + +/** + * Calendar Services External API implementation. + */ +NONSHARABLE_CLASS( CCalenServicesImpl ) : public CBase, + public MCalenServices + { +public: // Construction and destruction. + /** + * Two phased constructor. Use this in preference to the C++ + * constructor where possible. + * @param aCommandRangeStart start of the command range + * @param aCommandRangeEnd end of command range + */ + static CCalenServicesImpl* NewL( TInt aCommandRangeStart, + TInt aCommandRangeEnd ); + + /** + * Two phased constructor. Use this in preference to the C++ + * constructor where possible. + */ + static CCalenServicesImpl* NewL(); + + /** + * Completes construction of this object. + */ + void ConstructL(); + + /** + * Performs cleanup of this object. + */ + void Release(); + +public: // Functions from base classes. + /** + * Retrieve the calendar session currently in use by Calendar + * @return CCalSession& currently used by Calendar + */ + CCalSession& SessionL(); + + /** + * Retrieve the calendar session currently in use by Calendar + * @return CCalSession& currently used by Calendar + */ + CCalSession& SessionL( const TDesC& aCalendar ); + + /** + * Retrieve the calendar entry view currently in use by Calendar + * @return CCalEntryView* currently used by Calendar + */ + CCalEntryView* EntryViewL(); + + + /** + * Retrieve the calendar entry view currently in use by Calendar + * @return CCalEntryView* currently used by Calendar + */ + CCalEntryView* EntryViewL(const TCalCollectionId aCollectionId ); + + + /** + * Retrieve the calendar instance view currently in use by Calendar + * @return CCalInstanceView* currently used by Calendar + */ + CCalInstanceView* InstanceViewL(); + + /** + * Retrieve the calendar instance view currently in use by Calendar + * @return CCalInstanceView* currently used by Calendar + */ + CCalInstanceView* InstanceViewL( + const RArray& aCollectionIds ); + + /** + * Retrieve the InterimUtils + * @return CCalenInterimUtils2& + */ + CCalenInterimUtils2& InterimUtilsL(); + + TBool QueueKeyEvent( const TKeyEvent& aEvent, TEventCode aType ); + TBool GetQueuedKeyEvent( TKeyEvent& aEvent, TEventCode& aType ); + void ResetKeyEventQueue(); + /** + * Get calendar icon of specific type + * @return CGulIcon* + */ + CGulIcon* GetIconL( MCalenServices::TCalenIcons aIndex ); + + /** + * Register for notifications of Calendar events + * @param aHandler the MCalenNotificationHandler to notify + * @param aNotification single notification to be notified about + */ + virtual void RegisterForNotificationsL( MCalenNotificationHandler* aHandler, + TCalenNotification aNotification ); + + /** + * Register for notifications of Calendar events + * @param aHandler the MCalenNotificationHandler to notify + * @param aNotifications array of notifications to be notified about + */ + virtual void RegisterForNotificationsL( MCalenNotificationHandler* aHandler, + RArray& aNotifications ); + + /** + * Cancel notifications of Calendar events + * @param aHandler the MCalenNotificationHandler to stop notifying + */ + void CancelNotifications( MCalenNotificationHandler* aHandler ); + + /** + * Issue a command to be handled by Calendar or a customization + * All commands will be handled asynchronously. Calendar may reject + * @param aCommand the command to be handled + * @return ETrue, if Calendar will attempt to handle the command + * @return EFalse, if Calendar will not attempt to handle the command + */ + TBool IssueCommandL( TInt aCommand ); + + /** + * Issue a notification to Calendar, which will be broadcast + * synchronously to all registered notification handlers. + * Only one notification may be issued at once. + * @param aNotification the notification to broadcast + */ + void IssueNotificationL( TCalenNotification aNotification ); + + /** + * Returns the context. This includes information such + * as the currently focused date/instance. + */ + MCalenContext& Context(); + + /** + * Request activation of a specific view + * @param aViewId The view to be activated + */ + void RequestActivationL( const TVwsViewId& aViewId ); + + /** + * Notify Calendar that a specific view has been activated. + * Custom views must call this on activation + * @param aViewId The view that was activated + */ + void ActivationNotificationL( const TVwsViewId& aViewId ); + + /** + * Offers the menu pane for population, interested parties can + * add or remove menu items + * @param aMenuPane meu pane to be populated + * @param aResourceId resource id of menu pane + */ + void OfferMenuPaneL( TInt aResourceId, CEikMenuPane* aMenuPane ); + + /** + * Gets the command range that has been allocated to this MCalenServices + * instance + * + * @param aCommandRangeStart start of command range + * @param aCommandRangeEnd end of command range + */ + void GetCommandRange( TInt& aCommandRangeStart, + TInt& aCommandRangeEnd ) const; + + /** + * Offers a TRect to customisations for the creation of + * a control to be displayed in the infobar + * @return info bar control + */ + CCoeControl* Infobar( const TRect& aRect ); + + /** + * Customisation creates the text for display in infobar + * @return infobar Text + */ + const TDesC& Infobar( ); + + MCalenPreview* CustomPreviewPaneL( TRect& aRect ); + /** + * Offers a TRect to available customisations for the creation of a + * control to be displayed in the preview pane + * @return preview pane control + */ + CCoeControl* PreviewPane( TRect& aRect ); + + /** + * Get a pointer to the Calendar toolbar, or NULL if none is available. + * Ownership is not transferred. + * @return Calendar toolbar if available + */ + MCalenToolbar* ToolbarOrNull(); + + /** + * Get Missed alarm store + * @return reference to Missed alarm store + */ + CMissedAlarmStore* MissedAlarmStore(); + + /** + * Get missed alarms list + * @return an array of missed alarms + */ + void GetMissedAlarmsList(RArray& aMissedAlarmList); + + /** + * Get attachment model + * @return CCalenAttachmentModel* pointer to CCalenAttachmentModel + */ + CCalenAttachmentModel* GetAttachmentData(); + + /** + * @brief Get all available calendar info + * + * @param returns the list of available calendar info iterating + * through all calendars + */ + void GetAllCalendarInfoL( + RPointerArray& aCalendarInfoList ); + + /** + * @brief get calendar file name for the collection id + * + * @param aCalendarFile reference to the calendar file name + * @param aCollectionId collection id of the session for + * which calendar file name is required + */ + const TDesC& GetCalFileNameForCollectionId(const TCalCollectionId aCollectionId); + +private: + /** + * C++ constructor. + */ + CCalenServicesImpl( TInt aCommandRangeStart, + TInt aCommandRangeEnd ); + + private: // Data + CCalenGlobalData* iGlobalData; + CCalenController* iController; + + + TInt iCommandRangeStart; // start of the valid command range + TInt iCommandRangeEnd; // end of the valid command range + }; + +#endif // CALENSERVICESIMPL_H + +// End of file