omads/omadsappui/AspSyncUtil/inc/AspProgressDialog.h
changeset 0 dab8a81a92de
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/omads/omadsappui/AspSyncUtil/inc/AspProgressDialog.h	Mon Nov 23 14:46:41 2009 +0200
@@ -0,0 +1,261 @@
+/*
+* Copyright (c) 2005 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: sync progress indication 
+*
+*/
+
+
+#ifndef ASPPROGRESSDIALOG_H
+#define ASPPROGRESSDIALOG_H
+
+
+//  INCLUDES
+#include    <e32base.h>
+#include    <AknWaitDialog.h>
+#include    <AknProgressDialog.h>
+
+#include    "AspDefines.h"
+#include    "AspResHandler.h"
+
+
+// CLASS DECLARATIONS
+
+
+/**
+* MAspProgressDialogObserver
+* 
+* Observer interface function for observing progress dialog.
+*/
+NONSHARABLE_CLASS (MAspProgressDialogObserver)
+    {
+    public:
+        /**
+        * Callback method
+        * Get's called when a dialog is dismissed.
+        */
+        virtual void HandleDialogEventL(TInt aButtonId) = 0;
+    };
+
+
+
+/**
+* CAspProgressDialog2
+*
+* CAspProgressDialog2 is needed to modify CAknProgressDialog::OkToExitL. 
+*/
+NONSHARABLE_CLASS (CAspProgressDialog2) : public CAknProgressDialog
+    {
+	public:
+        /**
+        * C++ default constructor.
+        */
+		CAspProgressDialog2(CEikDialog** aSelfPtr, TInt aApplicationId);
+
+        /**
+        * Destructor.
+        */
+        virtual ~CAspProgressDialog2();
+        
+        /**
+        * From the base class.
+		* Called by framework before exiting the dialog.
+        * @param Button id.
+		* @return ETrue to exit\ EFalse to not to exit.
+        */
+        TBool OkToExitL(TInt aButtonId);
+        
+        /**
+        * From the base class.
+		* Called by framework for key event handling.
+        * @param aKeyEvent.
+		* @param TEventCode.
+		* @return Return code.
+        */
+		TKeyResponse OfferKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType);
+		
+	private:
+   		// has dialog received close event (eg. end key) 
+		TBool iCloseEventReceived;
+
+		// has cancel key been pressed 
+		TBool iCancelEventReceived;
+
+        // has sync been closed
+        TBool iClosed;
+        
+        // has sync been canceled
+        TBool iCanceled;
+		
+  		// id of the calling application
+		TInt iApplicationId;
+    };
+
+
+
+/**
+* CAspProgressDialog
+*  
+* CAspProgressDialog show sync progress dialog.
+*/
+NONSHARABLE_CLASS (CAspProgressDialog) : public CBase, public MProgressDialogCallback
+    {
+
+    public:// Constructors and destructor
+
+        /**
+        * Two-phased constructor.
+        */
+        static CAspProgressDialog* NewL(MAspProgressDialogObserver* aObserver);
+        
+        /**
+        * Destructor.
+        */
+        virtual ~CAspProgressDialog();
+    
+    private:
+
+        /**
+        * C++ default constructor.
+        */
+        CAspProgressDialog(MAspProgressDialogObserver* aObserverPtr);
+	
+        /**
+        * By default Symbian OS constructor is private.
+        */
+        void ConstructL();
+        
+		/**
+		* From MProgressDialogCallback.
+        * Called by the framework when dialog is dismissed.
+        * @param aButtonId
+        * @return None
+        */
+        void DialogDismissedL(TInt aButtonId);
+
+    public:        
+        
+        /**
+        * Launches progress dialog with custom bitmap.
+        * @param aLabel.
+        * @param aId.
+        * @param aFileName.
+        * @param aFileBitmapId.
+        * @param aFileMaskId.
+        * @return None.
+        */
+        void LaunchProgressDialogL(const TDesC& aLabel, TAknsItemID aId, const TDesC& aFileName, TInt aFileBitmapId, TInt aFileMaskId);
+
+        
+        /**
+        * Closes progress dialog.
+        * @param None
+        * @return None
+        */
+        void CancelProgressDialogL();
+        
+        /**
+        * Update dialog label text.
+        * @param aText.
+        * @return None.
+        */
+        void UpdateTextL(const TDesC& aText);
+
+        /**
+        * Set progress bar state.
+        * @param aValue.
+        * @return None
+        */
+        void SetProgress(TInt aValue);
+
+        /**
+        * Set progress bar state.
+        * @param aFinalValue.
+        * @return None
+        */
+        void SetFinalProgress(TInt aFinalValue);
+
+        /**
+        * Gets CAknNoteControl from CAknProgressDialog.
+        * @param None
+        * @return CAknNoteControl.
+        */
+		CAknNoteControl* NoteControl();
+
+       /**
+        * Cancels animation.
+        * @param None.
+        * @return None.
+        */
+		void CancelAnimation();
+        
+		/**
+        * Starts animation.
+        * @param None
+        * @return None.
+        */
+		void StartAnimationL();
+		
+		/**
+        * Hides cancel button.
+        * @param None
+        * @return None.
+        */
+		void HideButtonL();
+
+		/**
+        * Set application id.
+        * @param aApplicationId
+        * @return None.
+        */
+		void SetApplicationId(TInt aApplicationId);
+
+		/**
+        * Returns progress dialog
+        * @param None
+        * @return CAspProgressDialog2*
+        */
+		CAspProgressDialog2* ProgressDialog();
+
+    private:
+ 		// id of the calling application
+		TInt iApplicationId;
+    
+        // progress dialog
+		CAspProgressDialog2*	iProgressDialog;
+		
+		// is dialog running
+		TBool iProgressDialogRunning;
+
+        // progress dialog info
+        CEikProgressInfo* iProgressInfo;
+
+		// last label text
+		TBuf<KBufSize> iLastText;
+
+		// animation state
+		TBool iAnimation;
+
+		// resource handler
+		CAspResHandler* iResHandler;
+
+		// dialog observer
+        MAspProgressDialogObserver*	iObserver;
+    };
+
+
+
+
+#endif      // ASPPROGRESSDIALOG_H
+            
+// End of File