msg_plat/messaging_center_ui_utilities_api/inc/MuiuMsvProgressReporterOperation.h
changeset 0 72b543305e3a
child 5 4697dfb2d7ad
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/msg_plat/messaging_center_ui_utilities_api/inc/MuiuMsvProgressReporterOperation.h	Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,283 @@
+/*
+* Copyright (c) 2002 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:  
+*     Operation progress reporting class.
+*
+*/
+
+
+
+#ifndef __MSVPROGRESSREPORTEROPERATION_H__
+#define __MSVPROGRESSREPORTEROPERATION_H__
+
+
+//  INCLUDES
+#include <msvapi.h>
+#include <msvprgreporter.h>
+
+
+// FORWARD DECLARATIONS
+class CBaseMtmUi;
+class CMsvWrappableProgressDialog;
+
+
+
+// CLASS DECLARATION
+
+/**
+* Progress reporter operation.
+*
+* A 'super-operation' implementing the abstract progress reporter mixin
+* interface. This class encapsulates the operation; which provides the progress;
+* and the dialog that displays it.
+*
+*/
+class CMsvProgressReporterOperation :
+    public CMsvOperation, 
+    public MMsvProgressReporter
+    {
+    public:
+        /**
+        * Creates new CMsvProgressReporterOperation operation
+        * @param aMsvSession: reference to object of CMsvSession
+        * @param aObserverRequestStatus: reference to TRequestStatus which is used when operation is completed
+        * @param aImageIndex: index of the icon from avkon.mbm to be displayed in the progress note
+        * @return: Object of class CMsvProgressReporterOperation.
+        */
+        IMPORT_C static CMsvProgressReporterOperation* NewL(
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus,
+            TInt aImageIndex );
+
+        /**
+        * @param aMsvSession: reference to object of CMsvSession
+        * @param aObserverRequestStatus: reference to TRequestStatus which is used when operation is completed
+        * @return: Object of class CMsvProgressReporterOperation.
+        */
+        IMPORT_C static CMsvProgressReporterOperation* NewL(
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus );
+
+        /**
+        * Destructor
+        */
+        IMPORT_C virtual ~CMsvProgressReporterOperation();
+
+        /**
+        * @return: progress
+        */
+        IMPORT_C virtual const TDesC8& ProgressL();
+
+        /**
+        * Make progress visible
+        */
+        IMPORT_C virtual void MakeProgressVisibleL( TBool aVisible );
+
+        /**
+        * Sets text to the dialog
+        */
+        IMPORT_C virtual void SetTitleL( const TDesC& aTitle );
+
+        /**
+        * Sets text to the dialog
+        */
+        IMPORT_C virtual void SetTitleL( TInt aTitleResourceId );
+
+        /**
+        * @return mtm store
+        */
+        IMPORT_C virtual CMtmStore& MtmStore();
+
+        /**
+        * Sets if operation can be cancelled by user or not
+        * @param aCanCancel: EFalse if operation cannot be cancelled by user,
+        *    ETrue otherwise
+        */
+        IMPORT_C virtual void SetCanCancelL( TBool aCanCancel );
+
+        /**
+        * Sets progress decoder.
+        */
+        IMPORT_C virtual void SetProgressDecoder( MMsvProgressDecoder& aDecoder );
+
+        /**
+        * Removes progress decoder.
+        */
+        IMPORT_C virtual void UnsetProgressDecoder();
+
+        /**
+        * Sets help context
+        */
+        IMPORT_C virtual void SetHelpContext( const TCoeHelpContext& aContext );
+
+        /**
+        * Sets animation
+        */
+        IMPORT_C virtual void SetAnimationL( TInt aResourceId );
+
+        /**
+        * Sets operations
+        * Takes ownership of the operation so this class will delete
+        * the operation.
+        */
+        IMPORT_C void SetOperationL( CMsvOperation* aOp );
+
+        /**
+        * Sets seeding
+        */
+        IMPORT_C void SetSeeding( TBool aSeed );
+
+        /**
+        * @return TRequestStatus
+        */
+        IMPORT_C TRequestStatus& RequestStatus();
+
+        /**
+        * @param aDelay, a boolean to set the delay on or off
+        */
+        IMPORT_C void SetProgressVisibilityDelay( TBool aDelay );
+
+        /**
+        * Creates new CMsvProgressReporterOperation operation
+        * @param aProgressVisibilityDelayOff: constructs progress dialog without visibility delay.
+        * @param aMsvSession: reference to object of CMsvSession
+        * @param aObserverRequestStatus: reference to TRequestStatus which is used when operation is completed
+        * @param aImageIndex: index of the icon from avkon.mbm to be displayed in the progress note
+        * @return: Object of class CMsvProgressReporterOperation.
+        */
+        IMPORT_C static CMsvProgressReporterOperation* NewL(
+            TBool aProgressVisibilityDelayOff,
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus,
+            TInt aImageIndex );
+
+        /**
+        * @param aProgressVisibilityDelayOff: constructs progress dialog without visibility delay.
+        * @param aMsvSession: reference to object of CMsvSession
+        * @param aObserverRequestStatus: reference to TRequestStatus which is used when operation is completed
+        * @return: Object of class CMsvProgressReporterOperation.
+        */
+        IMPORT_C static CMsvProgressReporterOperation* NewL(
+            TBool aProgressVisibilityDelayOff,
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus );
+
+        /**
+        * SetCompleteWithExit
+        * This function sets complete code
+        * @param aCompleteWithExit, boolean to set if EEikCmdExit
+        */
+        void SetCompleteWithExit( TBool aCompleteWithExit );
+
+        /**
+        * Creates new CMsvProgressReporterOperation operation. With this method it is possible
+        * to show note dialog with EWaitLayout(With wait note bar).
+        * @param aProgressVisibilityDelayOff: constructs progress dialog without visibility delay.
+        * @param aDisplayWaitAnimation if ETrue then shows note dialog with wait note bar
+        * @param aMsvSession: reference to object of CMsvSession
+        * @param aObserverRequestStatus: reference to TRequestStatus which is used when operation is completed
+        * @param aImageIndex: index of the icon from avkon.mbm to be displayed in the progress note
+        * @return: Object of class CMsvProgressReporterOperation.
+        */
+        IMPORT_C static CMsvProgressReporterOperation* NewL(
+            TBool aProgressVisibilityDelayOff,
+            TBool aDisplayWaitAnimation,
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus,
+            TInt aImageIndex );
+            
+        /**
+        * Creates new CMsvProgressReporterOperation operation.
+        * This method is used only when progress dialog is shown also in cover side.
+        * @param aMsvSession: reference to object of CMsvSession
+        * @param aObserverRequestStatus: reference to TRequestStatus which is used when operation is completed
+        * @param aDialogIndex unique index to identify a dialog within the category.
+        * @param aCategoryUid category uid
+        * @return: Object of class CMsvProgressReporterOperation.
+        */
+        IMPORT_C static CMsvProgressReporterOperation* NewL(
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus,
+            TInt aDialogIndex,
+            TUid aCategoryUid );
+
+        /**
+        * Publish new dialog on secondary display.
+        * This method first dismisses the original dialog both from primary and 
+        * secondary displays. After that a new dialog is created and it is 
+        * published on secondary display with given parameters.
+        * @param aDialogIndex unique index to identify a dialog within the category.
+        * @param aCategoryUid category uid
+        */
+        IMPORT_C void PublishNewDialogL( TInt aDialogIndex, TUid aCategoryUid );
+
+    protected:
+        /**
+        * from CActive
+        */
+        virtual void DoCancel();
+
+        /**
+        * from CActive
+        */
+        virtual void RunL();
+
+    private:
+        /**
+        * internal
+        * Completes observer with the aCode
+        */
+        void CompleteObserver( TInt aCode );
+
+    private:
+        /**
+        * C++ constructor
+        */
+        CMsvProgressReporterOperation(
+            CMsvSession& aMsvSession,
+            TRequestStatus& aObserverRequestStatus,
+            TInt aImageIndex );
+        /**
+        * Symbian OS constructor
+        */
+        void ConstructL( 
+        TBool aProgressVisibilityDelayOff = EFalse,
+        TBool aDisplayWaitAnimation = ETrue );
+        
+        /**
+        * Symbian OS constructor
+        * This method is used only when progress dialog 
+        * is shown also in cover side.
+        */
+        void ConstructL( 
+        TInt aDialogIndex,
+        TUid aCategoryUid,
+        TBool aProgressVisibilityDelayOff = EFalse,
+        TBool aDisplayWaitAnimation = ETrue );
+
+
+    private:
+        CMtmStore* iMtmStore;
+        CMsvWrappableProgressDialog* iDialog;
+        CMsvOperation* iOperation;
+        TBufC8<1> iDummyProgress;
+        TInt iImageIndex;
+        TBool iCompleteWithExit;
+        TBool iDisplayWaitAnimation;
+        HBufC* iProgressString;
+    };
+
+#endif // __MSVPROGRESSREPORTEROPERATION_H__
+
+// End of file