diff -r 000000000000 -r 2e3d3ce01487 startupservices/startupanimation/sanimctrl/inc/sanimctrl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/startupservices/startupanimation/sanimctrl/inc/sanimctrl.h Tue Feb 02 10:12:00 2010 +0200 @@ -0,0 +1,217 @@ +/* +* 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: Declaration of CSAnimCtrl class +* +*/ + + +#ifndef SANIMCTRL_H +#define SANIMCTRL_H + +#include +#include "sanimobserver.h" + +class CFbsBitmap; +class CSAnimEngine; + +/** +* Start-up Animation UI control class. +* Draws animation centered to the control. +* +* @lib sanimctrl.lib +* @since S60 3.2 +*/ +class CSAnimCtrl : public CCoeControl, public MSAnimObserver + { + +public: + + /** + * Constructs a CSAnimCtrl object. + * + * @since S60 3.2 + * + * @param aRect Rectangle designated for the control. + * @param aContainer The compound control that is the container for this control. + * @return The new object + */ + IMPORT_C static CSAnimCtrl* NewL( + const TRect& aRect, + const CCoeControl& aContainer ); + + /** + * Destructor. + * + * @since S60 3.2 + */ + virtual ~CSAnimCtrl(); + + /** + * Load the parts of the show (image/animation and/or tone) from file(s). + * Completes immediately with KErrNone if the show has no parts. + * + * @since S60 3.2 + * + * @param aImageFileName Identifies the image file to use. + * @param aFrameDelay Frame delay to use. + * @param aScalingEnabled Identifies whether to try to scale the image to fit + * the screen size or just use the target size of the animation as it is. + * @param aAnimRepeatCount How many times to repeat the animation. + * Zero indicates infinite. + * @param aToneFileName Identifies the tone file to use. + * @param aVolume Volume level to use. + * @param aVolumeRamp Volume ramp: the period over which the volume level is + * to rise smoothly from nothing to the normal volume level. + * @param aToneRepeatCount How many times to repeat the tone. + * @param aStatus Request to complete when loading is complete. + */ + virtual void Load( + const TDesC& aImageFileName, + const TTimeIntervalMicroSeconds32& aFrameDelay, + const TBool aScalingEnabled, + const TInt aAnimRepeatCount, + const TDesC& aToneFileName, + const TInt aVolume, + const TTimeIntervalMicroSeconds& aVolumeRamp, + const TInt aToneRepeatCount, + TRequestStatus& aStatus ); + + /** + * Start the show (image/animation and/or tone). + * Completes immediately with KErrNone if the show has no parts. + * + * @since S60 3.2 + * + * @param aStatus Request to complete when all parts of the show have + * finished. + */ + virtual void Start( TRequestStatus& aStatus ); + + /** + * Cancel activity. + * + * @since S60 3.2 + */ + virtual void Cancel(); + + /** + * Clear drawing data. + * + * @since S60 3.2 + */ + virtual void Clear(); + +protected: + + /** + * From CCoeControl. + * + * @since S60 3.2 + * + * @return The number of controls contained in this control. + */ + virtual TInt CountComponentControls() const; + + /** + * From CCoeControl. + * + * @since S60 3.2 + * + * @param aIndex Identifies the component control to return. + * @return The component control at index given as parameter. + */ + virtual CCoeControl* ComponentControl( TInt aIndex ) const; + + /** + * From CCoeControl. + * + * @since S60 3.2 + * + * @param aRect The rectangle to draw into. + */ + virtual void Draw( const TRect& aRect ) const; + + /** + * Draw an animation frame on the screen with a mask. + * From MSAnimObserver. + * + * @since S60 3.2 + * + * @param aFrame Contains the animation frame to draw on the screen. + * @param aMask Contains mask for the animation frame to draw on the screen. + */ + virtual void UpdateScreen( const CFbsBitmap& aFrame, const CFbsBitmap& aMask ); + + /** + * Draw an animation frame on the screen without a mask. + * From MSAnimObserver. + * + * @since S60 3.2 + * + * @param aFrame Contains the animation frame to draw on the screen. + */ + virtual void UpdateScreen( const CFbsBitmap& aFrame ); + +protected: + + /** + * First phase constructor. + * + * @since S60 3.2 + */ + IMPORT_C CSAnimCtrl(); + + /** + * Second phase constructor for derived classes. + * + * @since S60 3.2 + * + * @param aRect Rectangle designated for the control. + * @param aContainer The compound control that is the container for this control. + */ + IMPORT_C void BaseConstructL( + const TRect& aRect, + const CCoeControl& aContainer ); + +private: + + /** Copy constructor. */ + CSAnimCtrl( const CSAnimCtrl& ); + /** Assignment operator. */ + CSAnimCtrl& operator=( const CSAnimCtrl& ); + +protected: // data + + /** Start-up Animation engine. Owned. May not be NULL. */ + CSAnimEngine* iEngine; + + /** Bitmap to draw next. Not owned. May be NULL. */ + const CFbsBitmap* iImage; + + /** Mask for the bitmap to draw next. Not owned. May be NULL. */ + const CFbsBitmap* iMask; + + /** Background colour to use when drawing. */ + TRgb iBackgroundColour; + +private: // data + + TAny* iReserved1; /** Reserved for future use. */ + TAny* iReserved2; /** Reserved for future use. */ + TInt iReserved3; /** Reserved for future use. */ + TInt iReserved4; /** Reserved for future use. */ + + }; + +#endif // SANIMCTRL_H