--- a/calendarui/controller/inc/calenservicesimpl.h Tue Feb 02 10:12:19 2010 +0200
+++ b/calendarui/controller/inc/calenservicesimpl.h Fri Apr 16 14:57:40 2010 +0300
@@ -19,258 +19,183 @@
#define CALENSERVICESIMPL_H
#include <e32base.h>
-#include <calennotificationhandler.h>
-#include <calsession.h>
-#include <calenservices.h>
+
+#include "calennotificationhandler.h" // TCalenNotification
+#include "calenservices.h"
// Forward declarations
-class CCalenGlobalData; // Calendar-wide accessors
class CCalenController; // Calendar controller
-class CCalenIcons;
-class CGulIcon;
-class CCalenAttachmentModel;
-class CCalCalendarInfo;
-class MCalenPreview;
+class HbMainWindow;
+class HbWidget;
+class QString;
+class HbMenu;
/**
* Calendar Services External API implementation.
*/
-NONSHARABLE_CLASS( CCalenServicesImpl ) : public CBase,
- public MCalenServices
+class CalenServicesImpl : 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();
+
+ 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 CalenServicesImpl* NewL( TInt aCommandRangeStart,
+ TInt aCommandRangeEnd );
+ /**
+ * Two phased constructor. Use this in preference to the C++
+ * constructor where possible.
+ */
+ static CalenServicesImpl* 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();
+ /**
+ * Performs cleanup of this object.
+ */
+ void Release();
-
- /**
- * 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();
+ public: // Functions from base classes.
+
+ /**
+ * Get MainWindow
+ * @return reference to HbMainWindow
+ */
+ HbMainWindow& MainWindow();
+
+ /**
+ * Retrieve the calendar session currently in use by Calendar
+ * @return CCalSession& currently used by Calendar
+ */
+ CCalSession& SessionL();
- /**
- * Retrieve the calendar instance view currently in use by Calendar
- * @return CCalInstanceView* currently used by Calendar
- */
- CCalInstanceView* InstanceViewL(
- const RArray<TInt>& aCollectionIds );
-
- /**
- * Retrieve the InterimUtils
- * @return CCalenInterimUtils2&
- */
- CCalenInterimUtils2& InterimUtilsL();
+ /**
+ * Retrieve the calendar entry view currently in use by Calendar
+ * @return CCalEntryView* currently used by Calendar
+ */
+ CCalEntryView* EntryViewL();
- 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 );
+ /**
+ * Retrieve the calendar instance view currently in use by Calendar
+ * @return CCalInstanceView* currently used by Calendar
+ */
+ CCalInstanceView* InstanceViewL();
+
- /**
- * 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<TCalenNotification>& aNotifications );
+
+ /**
+ * 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<TCalenNotification>& 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 );
+ /**
+ * Cancel notifications of Calendar events
+ * @param aHandler the MCalenNotificationHandler to stop notifying
+ */
+ void CancelNotifications( MCalenNotificationHandler* aHandler );
- /**
- * 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( );
+
+ /**
+ * 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 );
+
+ /**
+ * Request activation of a specific view
+ * @param aViewId The view to be activated
+ */
+ void RequestActivationL( const TVwsViewId& aViewId );
- 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<TCalenInstanceId>& 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<CCalCalendarInfo>& 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 );
+ /**
+ * 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 );
+
+
+ /**
+ * 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);
+
+ /**
+ * Returns the context. This includes information such
+ * as the currently focused date/instance.
+ */
+ MCalenContext& Context();
+ /**
+ * a control to be displayed in the infobar
+ * @return info bar control
+ */
+ HbWidget* Infobar();
+ /**
+ * Returns info bar text
+ */
+ QString* InfobarTextL();
+
+ /**
+ * 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;
+
+ /**
+ * Offer the menu to Plugins to customisation
+ * @param aMenu Where the customisation apply to
+ */
+ void OfferMenu(HbMenu* aHbMenu);
+
+ /**
+ * returns the interface to the agenda database
+ * @return reference to agendainterface
+ */
+ AgendaUtil* agendaInterface();
+
+ /**
+ * returns the first view with which calendar has been launched
+ * @return view Id
+ */
+ int getFirstView();
+
+ private:
+ /**
+ * C++ constructor.
+ */
+ CalenServicesImpl( 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
};