profilesservices/MediaFileList/Inc/mediafilewaitnote.h
author Pat Downey <patd@symbian.org>
Wed, 01 Sep 2010 12:20:44 +0100
branchRCL_3
changeset 25 7e0eff37aedb
parent 0 8c5d936e5675
permissions -rw-r--r--
Revert incorrect RCL_3 drop: Revision: 201033 Kit: 201035

/*
* 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:   Waiting note for query
*
*/



#ifndef MEDIAFILEWAITNOTE_H
#define MEDIAFILEWAITNOTE_H


//  INCLUDES
#include "mediafiledialogutils.h"

#include <e32base.h>
#include <AknWaitDialog.h>
#include <AknProgressDialog.h>
#include <AknsItemID.h>


// CLASS DECLARATIONS


/**
* MMediaFileWaitNoteObserver
* 
* Observer interface function for observing wait note.
*/
NONSHARABLE_CLASS (MMediaFileWaitNoteObserver)
    {
    public:
        /**
        * Callback method
        * Get's called when a dialog is dismissed.
        */
        virtual void HandleWaitNoteL( TInt aButtonId ) = 0;
    };




/**
* MMediaFileWaitNote
*  
* MMediaFileWaitNote shows progress dialog.
*/
NONSHARABLE_CLASS (CMediaFileWaitNote) : public CBase,
                                         public MProgressDialogCallback
    {

    public:// Constructors and destructor

        /**
        * Two-phased constructor.
        */
        static CMediaFileWaitNote* NewL( MMediaFileWaitNoteObserver* aObserver );
        
        /**
        * Destructor.
        */
        virtual ~CMediaFileWaitNote();
    
    private:

        /**
        * C++ default constructor.
        */
        CMediaFileWaitNote( MMediaFileWaitNoteObserver* aObserver );
	
        /**
        * 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.
        * @return None.
        */
        void LaunchL( const TDesC& aLabel );

        
        /**
        * Closes progress dialog.
        * @param None
        * @return None
        */
        void CancelProgressDialogL();
        
        /**
        * Set dialog label text.
        * @param aText.
        * @return None.
        */
        void SetTextL( const TDesC& aText );
        
        /**
        * Set image data.
        * @param aId.
        * @param aFileName.
        * @param aFileBitmapId.
        * @param aFileMaskId.
        * @return None.
        */
        void SetImageL( TAknsItemID aId, const TDesC& aImageFile,
                        TInt aBitmapId, TInt aBitmapMaskId );

        /**
        * 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();


    private:
    
        // progress dialog
        CAknProgressDialog* iProgressDialog;

        // progress dialog info
        CEikProgressInfo* iProgressInfo;

		// last label text
		TBuf<KBufSize128> iLastText;

		// animation state
		TBool iAnimation;

		// dialog observer
		MMediaFileWaitNoteObserver*	iObserver;
			    
		TFileName iImageFile;
		TAknsItemID iImageId;
	    TInt iBitmapId;
	    TInt iBitmapMaskId;
	    
	    // is observer call needed
	    TBool iObserverCallNeeded;
        
	    // has dialog's DialogDismissedL called (ie has it been closed)
	    TBool iDialogDismissed;
    };




#endif      // MEDIAFILEWAITNOTE_H
            
// End of File