videditor/VideoEditorUiComponents/inc/ExtProgressContainer.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* 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:       CExtProgressContainer.h
*   Created:    17-10-2005
*   Author:     
*               
*/

#ifndef EXTPROGRESSCONTAINER_H
#define EXTPROGRESSCONTAINER_H

// INCLUDES
#include <coecntrl.h>
#include <akncontrol.h>

// FORWARD DECLARATIONS
class CEikProgressInfo;
class CExtProgressAnimationControl;
class CFbsBitmap;
class CEikLabel;
class CAknsBasicBackgroundControlContext;

/*  CLASS: CExtProgressContainer
*
*
*/ 
NONSHARABLE_CLASS( CExtProgressContainer ) :	public CCoeControl, public MCoeControlObserver
{

public:

	/** NewL factory method, does not pop cleanupstack
	*
	*   @param -
	*	@return pointer to created CExtProgressContainer object
	*/
    static CExtProgressContainer * NewL (const TRect& aRect, 
                                          CCoeControl* aParent);

	/** Destructor
	*
	*	@param -
	*	@return -
	*/
	virtual ~CExtProgressContainer ();

	/*	Second phase constructor	
	*
	*	@param -
	*	@return -
	*/
    void ConstructL (const TRect& aRect, CCoeControl* aParent);

	/*	GetProgressInfoL	
	*
	*	@param -
	*	@return -
	*/
    CEikProgressInfo* GetProgressInfoL();

	/*	GetAnimationControlL	
	*
	*	@param -
	*	@return -
	*/
    CExtProgressAnimationControl* GetAnimationControlL();
    
	/*	SetTextL	
	*
	*	@param aText - label text
	*	@return -
	*/
    void SetTextL(const TDesC &aText);

    // Test function
    void Test();
   
 
    
protected:

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

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

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

    /** HandleControlEventL
    *  
    * @see CCoeControl
    *
    */
    void HandleControlEventL(CCoeControl* /*aControl*/,TCoeEvent aEventType);

    /** Draw
    * 
    * 
    * @see CCoeControl
    *
    */
    void Draw(const TRect& aRect) const;

	/**
	* From CoeControl, MopSupplyObject.
	*
	* @param aId  
	*/
	virtual TTypeUid::Ptr MopSupplyObject( TTypeUid aId );

    /** MinimumSize
    * 
    * 
    * @see CCoeControl
    *
    */
    TSize MinimumSize();

private:

    /** Default constructor, cannot leave.
	*
	*	@param -
	*	@return -
	*/
	CExtProgressContainer ();

private: // data

    CEikLabel*                      iLabel;
    CEikProgressInfo*               iProgressInfo;
    CExtProgressAnimationControl*   iAnimationControl;
    
	/** Background context. Skin stuff. */
	CAknsBasicBackgroundControlContext*	iBgContext;
};

#endif

// End of File