--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/calendarui/calenaiwprovider/inc/calenaiwprovider.h Tue Feb 02 10:12:19 2010 +0200
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2009 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 : Header file for calenaiwprovider class.
+ *
+ */
+
+#ifndef __CALENAIWPROVIDER_H__
+#define __CALENAIWPROVIDER_H__
+
+// System includes
+#include <AiwServiceIfMenu.h>
+#include <calprogresscallback.h>
+
+// User includes
+#include "calentry.h"
+
+// Forward declarations.
+class CCalSession;
+class CCalEntryView;
+class CCalenaiwprovidertest;
+class CCalenInterimUtils2;
+
+// Class declaration
+/**
+ * This class implements the CAiwServiceIfMenu. Adds a menu item to the menu
+ * pane of the client, which saves a given calendar entry to the selected
+ * calendar database.
+ *
+ * @lib calenaiwprovider.dll
+ * @since S60 v5.2.
+ */
+class CCalenAiwProvider : public CAiwServiceIfMenu,
+ public MCalProgressCallBack
+ {
+ public:
+ /**
+ * @brief Create a CCalenAiwProvider object. Performs the wrapper for
+ * phase of 2-phase construction.
+ *
+ */
+ static CCalenAiwProvider* NewL();
+
+ /**
+ * @brief Create a CCalenAiwProvider object. Performs the wrapper for
+ * phase of 2-phase construction.Keep the object pointer in cleanup stack.
+ */
+ static CCalenAiwProvider* NewLC();
+
+ /**
+ *
+ */
+ ~CCalenAiwProvider();
+
+ public:
+ /**
+ * From CAiwServiceIfBase.
+ *
+ * Called by the AIW framework to initialise provider with necessary
+ * information from the Service Handler. This method is called when the
+ * consumer makes the attach operation.
+ *
+ * @param aFrameworkCallback Framework provided callback for provider to
+ * send events to framework.
+ * @param aInterest List of criteria items which invoked the provider.
+ */
+ void InitialiseL( MAiwNotifyCallback& aFrameworkCallback,
+ const RCriteriaArray& aInterest );
+
+ /**
+ * From CAiwServiceIfBase.
+ *
+ * Executes generic service commands included in criteria.
+ *
+ * @param aCmdId Command to be executed.
+ * @param aInParamList Input parameters, can be an empty list.
+ * @param aOutParamList Output parameters, can be an empty list.
+ * @param aCmdOptions Options for command, see KAiwOpt* in AiwCommon.hrh.
+ * @param aCallback Callback for asynchronous command handling,
+ * parameter checking, etc.
+ * @leave KErrArgument Callback is missing when required.
+ * @leave KErrNotSupported No provider supports service.
+ */
+ void HandleServiceCmdL( const TInt& aCmdId,
+ const CAiwGenericParamList& aInParamList,
+ CAiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MAiwNotifyCallback* aCallback = NULL );
+
+ /**
+ * From CAiwServiceIfMenu.
+ *
+ * Provider should implement this method to initialise a menu pane by
+ * adding provider specific menu items. The AIW framework gives the
+ * parameters to be used in the addition process.
+ *
+ * @param aMenuPane Menu pane handle.
+ * @param aIndex The position of the item where to add menu items.
+ * @param aCascadeId ID of cascade menu item.
+ * @param aInParamList Input list for provider's parameter checking.
+ */
+ void InitializeMenuPaneL( CAiwMenuPane& aMenuPane,
+ TInt aIndex,
+ TInt aCascadeId,
+ const CAiwGenericParamList& aInParamList );
+
+ /**
+ * From CAiwServiceIfMenu.
+ *
+ * Provider should implement this method to handle a menu command. Called by the
+ * Service Handler when a consumer calls ExecuteMenuCmdL().
+ *
+ * @param aMenuCmdId Original provider specific ommand ID for the menu command.
+ * Defined in the provider's menu item resource.
+ * @param aInParamList Input parameters, can be an empty list.
+ * @param aOutParamList Output parameters, can be an empty list.
+ * @param aCmdOptions Options for the command, see KAiwCmdOpt* in AiwCommon.hrh.
+ * @param aCallback Callback if asynchronous command handling is wanted by consumer.
+ * The provider may or may not support this. A provider should
+ * leave with KErrNotSupported, if not.
+ * @leave KErrNotSupported Callback is not supported.
+ */
+ void HandleMenuCmdL( TInt aMenuCmdId,
+ const CAiwGenericParamList& aInParamList,
+ CAiwGenericParamList& aOutParamList,
+ TUint aCmdOptions = 0,
+ const MAiwNotifyCallback* aCallback = NULL );
+
+ private: // from MCalProgressCallBack
+ /**
+ * Progress callback.
+ * This calls the observing class with the percentage complete of the current operation.
+ * @param aPercentageCompleted The percentage complete.
+ */
+ void Progress( TInt aPercentageCompleted );
+
+ /**
+ * Progress callback.
+ * This calls the observing class when the current operation is finished.
+ * @param aError The error if the operation failed, or KErrNone if successful.
+ */
+ void Completed( TInt aError );
+
+ /**
+ * Asks the observing class whether progress callbacks are required.
+ * @return If the observing class returns EFalse, then the Progress() function will not be called.
+ */
+ TBool NotifyProgress();
+
+ private:
+ /**
+ * Resolve the file handle and return the entries after parsing the file.
+ * @ aFileHandle Filehandle for the vcs/ics file received from consumer.
+ */
+ void ImportVCalendarL( RFile& aFileHandle );
+
+ /**
+ * Check whether more than one calendar is present in device.
+ * @ return TBool True if more than one calendar present on device
+ * otherwise false.
+ */
+ TBool HasMorethanOneCalendarL();
+
+ /**
+ * Save the entries to calendar without launching the dialog if only one
+ * calnedar is there.
+ * @ return TInt Error value if any otherwiths KErrNone.
+ */
+ TInt SaveWithoutDialogL();
+
+ /**
+ * Save the entries to calendar after launching the dialog if more than one
+ * calnedar is there.
+ * @ return TInt Error value if any otherwiths KErrNone.
+ */
+ TInt SaveWithDialogL();
+
+ /**
+ * Create the copy of the entries with new GUID.
+ * @ aSrcDesEntryArray input/output paramenter which carry the entries.
+ */
+ void CreateCopyWithNewGuidL( RPointerArray<CCalEntry>& aSrcDesEntryArray );
+
+ private:
+ /**
+ * C++ default constructor. Performs the 1st phase of 2-phase construction.
+ * It must never leave.
+ */
+ CCalenAiwProvider();
+
+ /**
+ * Performs the 2nd phase of the 2-phase construction. It may leave.
+ */
+ void ConstructL();
+
+ private:
+ /*
+ * @var iCalEntryArray.
+ * @brief Stores the calendar entries.
+ */
+ RPointerArray<CCalEntry> iCalEntryArray;
+
+ /*
+ * @var iSesstion.
+ * @brief Carry the session for calendar.
+ */
+ CCalSession* iCalSession;
+
+ /*
+ * @var iCalEntryView.
+ * @brief Contain the object of entryview.
+ */
+ CCalEntryView* iCalEntryView;
+
+ /*
+ * @var iCalEntryViewInitErrno.
+ * @brief Contain the entry view intialization error if any.
+ */
+ TInt iCalEntryViewInitErrno;
+
+ /*
+ * @var iResourceFileName.
+ * @brief Carry the resource file for calenaiwprovider.rss.
+ */
+ TFileName iResourceFileName;
+
+ /*
+ * @var iResourceFileOffset.
+ * @brief Offset for the resource file.
+ */
+ TInt iResourceFileOffset;
+
+ /*
+ * @var iInterimUtils.
+ * @brief Object for interimutils class.
+ */
+ CCalenInterimUtils2* iInterimUtils;
+
+ friend class CCalenaiwprovidertest;
+ };
+
+#endif // __CALENAIWPROVIDER_H__
+
+// End of file --Don't delete this.