videditor/VideoEditorUiComponents/inc/ExtProgressAnimationControl.h
author Stefan Karlsson <stefan.karlsson@nokia.com>
Sat, 10 Apr 2010 13:40:32 +0100
branchCompilerCompatibility
changeset 8 1c7b0f9777f7
parent 0 951a5db380a0
permissions -rw-r--r--
Got rid of some trivial warnings (nested comments and tokens after #endif).

/*
* Copyright (c) 2010 Ixonos Plc.
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the "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:
* Ixonos Plc
*
* Description:  
*
*/


/*
*   File:       ExtProgressAnimationControl.h
*   Created:    17-10-2005
*   Author:     
*               
*/

#ifndef EXTPROGRESSANIMATIONCONTROL_H
#define EXTPROGRESSANIMATIONCONTROL_H

// INCLUDES
#include <coecntrl.h>
   
// FORWARD DECLARATIONS
class CAknBitmapAnimation;
class CAknsBasicBackgroundControlContext;

// CLASS DECLARATION

/**	CLASS: CExtProgressAnimationControl
*
*	CExtProgressAnimationControl represent animated transition using two 
*	thumbnail images. The thumbnails and transition type can be set
*	to the control. 
*/
NONSHARABLE_CLASS( CExtProgressAnimationControl ) : public CCoeControl, public MCoeControlObserver
{

public:

/** @name Methods:*/
//@{
	/** NewL factory method, pops cleanup stack
	*
	*	@param aRect - control rectangle
	*	@param aParent - pointer to window owning control
	*	@return pointer to created CExtProgressAnimationControl object
	*/
	static CExtProgressAnimationControl * NewL (
		const TRect &		aRect,
		const CCoeControl *	aParent
		);

    /**	Destructor
	*
    *	@param -
	*	@return -
    */
    ~CExtProgressAnimationControl();

    /**	StartAnimationL
	*
	*	Starts animation routine.
	*
    *	@param - 
	*	@return -
    */
    void StartAnimationL( TInt aFrameIntervalInMilliSeconds=-1 );

    /**	SetAnimationResourceId
	*
    *	@param -
	*	@return -
    */
	void SetAnimationResourceId(const TInt &aResourceId);

    /**	MinimumSize
	*
    *	@param -
	*	@return -
    */
    //TSize MinimumSize();

    /**	SetAnimationResourceId
	*
    *	@param -
	*	@return -
    */
    void HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent /*aEventType*/);

    /**	StopAnimation
	*
    *	@param -
	*	@return -
    */
	void StopAnimation(); 

    /**	SetFrameIntervalL
	*
    *	@param -
	*	@return -
    */
	void SetFrameIntervalL(TInt aFrameIntervalInMilliSeconds);

//@}


private:

/** @name Methods:*/
//@{

    /**	Default constructor
	*
    *	@param -
	*	@return -
    */
    CExtProgressAnimationControl();

    /**	ConstructL
	*
	*	Second phase constructor
	*
	*	@param aRect - control rectangle
	*	@param aParent - pointer to window owning control
	*	@param aLeft - left icon
	*	@param aRight - right icon
	*	@return -
    */
    void ConstructL (
		const TRect &		aRect,
		const CCoeControl *	aParent
		);

	/**	SizeChanged
	*
    *	@see CCoeControl
    */
    void SizeChanged();

	/**	CountComponentControls
	*
    *	@see CCoeControl
    */
    //TInt CountComponentControls() const;

	/**	ComponentControl
	*
    *	@see CCoeControl
    */
    //CCoeControl * ComponentControl (TInt aIndex) const;

	/**	Draw
	*
    *	@see CCoeControl
    */
    void Draw (const TRect& aRect) const;
    
	/**
	* From CoeControl, MopSupplyObject.
	*
	* @param aId  
	*/
	virtual TTypeUid::Ptr MopSupplyObject( TTypeUid aId );

//@}
    
/** @name Members:*/
//@{

//@}
        
/** @name Members:*/
//@{

	TBool					iAnimationOn;        
	CAknBitmapAnimation*	iAnimation;
	TInt					iAnimationSpeedInMilliSeconds;
	TInt					iBorderWidth;
	
	TInt 					iAnimationResourceId;
	
	/** Background context. Skin stuff. */
	CAknsBasicBackgroundControlContext*	iBgContext;

//@}

};

#endif

// End of File