internetradio2.0/uiinc/irradioidle.h
changeset 3 ee64f059b8e1
parent 2 2e1adbfc62af
child 4 3f2d53f144fe
child 5 0930554dc389
--- a/internetradio2.0/uiinc/irradioidle.h	Mon May 03 12:25:23 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,447 +0,0 @@
-/*
-* Copyright (c) 2009 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: 
-*
-*/
-/*
-* ============================================================================
-*  Name               : vrradioidle.h
-*  Part of            : S60VisualRadio / UI
-*  Description        :
-*  Version    		  :
-*
-* ==============================================================================
-*/
-
-#ifndef IRRADIOIDLE_H_
-#define IRRADIOIDLE_H_
-
-// INCLUDES
-
-#include <AknUtils.h>
-#include <alf/alfenv.h>
-#include <alf/alfcontrol.h>
-#include <alf/alfanchorlayout.h>
-
-// FORWARD DECLARATIONS
-
-class CAlfGradientBrush;
-class CAlfViewportLayout;
-class CAlfEnv;
-
-// CONSTANTS
-
-/** Commands for radio idle. */
-enum TRadioIdleCommand
-	{
-	ESuspend = 0x4A,
-	EStartup,
-	EShutdown,
-	ERefresh,
-	EResetContent
-	};
-
-// CLASS DEFINITIONS
-
-class MIRRadioIdleCommandObserver
-	{
-	public:
-		/**
-		* Called when change to the state of radio idle is wanted
-		*/
-		virtual void HandleCommandL( TRadioIdleCommand aCommand ) = 0;
-	};
-
-/**
-* CVRRadioIdle class
-*
-* Class launches animated information in the defined subregion of the display after startup delay.
-* Launching and radio idle running can be suspended by giving ESuspend command via
-* MVRRadioIdleCommandObserver interface.  When suspended,
-* background bitmap will replace the animated information and startup delay is reset to zero.
-* The animation will start again after the delay.
-*/
-NONSHARABLE_CLASS(CIRRadioIdle) : public CAlfControl, public MIRRadioIdleCommandObserver
-	{
-public:		// Constructors and destructor
-
-		/** Display orientations. */
-		enum TOrientation
-			{
-			EPortrait = 0x4A,
-			ELandscape,
-			EOrientationNone
-			};
-
-		/**
-	    * Epoc two-phased constructor.
-	    * @param aAlfEnv The Alfred environment.
-	    * @param aControlGroupId The control group that this control is to be added to.
-	    * @param aParentLayout The parent layout for the visuals.
-	    */
-		static CIRRadioIdle* NewL( CAlfEnv& aEnv, TInt aControlGroupId, CAlfLayout* aParentLayout );
-		/**
-        * Destructor
-        */
-		virtual ~CIRRadioIdle();
-
-public: 	// Functions from base classes
-		/**
- 	    * From CAlfControl, takes care of alfred event handling.
- 	    */
-		TBool OfferEventL( const TAlfEvent& aEvent );
-
-public:		// New functions
-
-		/** States of radio idle. */
-		enum TRadioIdleState
-			{
-			ERunning = 0xA0,
-			ESuspended,
-			EStopped
-			};
-
-		/** Radio idle modes. */
-		enum TRadioIdleMode
-			{
-			EOnlyBackgroundText = 0xB0,
-			EBackgroundTextAndRadioIdleItems
-			};
-
-		/** Fade styles. */
-		enum TRadioIdleFadeStyle
-			{
-			EFadeLeft = 0xC0,
-			EFadeRight,
-			EFadeStyleNone
-			};
-
-		/**
- 	    * Adds radio idle item text to be used in the radio idle
- 	    * @param aRadioIdleItemText Text of the radio idle item
- 	    * @return Index of the added item
- 	    */
-		TInt AddRadioIdleContentL( const TDesC& aRadioIdleItemText );
-		/**
- 	    * Updates radio idle item text in specified index
- 	    * @param aRadioIdleItemText Text of the radio idle item
- 	    * @param aIndex Index of the radio idle item to be updated
- 	    */
-		void UpdateRadioIdleContent( const TDesC& aRadioIdleItemText, TInt aIndex );
-		/**
-	    * Removes all radio idle item texts
-		*/
-		void ResetRadioIdleContent();
-		/**
-	    * Returns number of radio idle content items
-	    * @return content count
-		*/
-		TInt RadioIdleContentCount() const;
-		/**
-		 * Sets the fade style for radio idle.
-		 * @param aFadeStyle  Fade style
-		 */
-		void SetIdleFadeStyle( TRadioIdleFadeStyle aFadeStyle );
-		/**
-	    * Sets the mode request for mode change. The mode
-	    * will be changed as soon as possible.
-	    * @param aRequestedMode Requested mode
-		*/
-		void SetModeChangeRequestL( TRadioIdleMode aRequestedMode );
-		/**
-	    * Retrieves the radio idle mode
-		*/
-		TRadioIdleMode Mode();
-		/**
-		 * Retrieves the radio idle state
-		 */
-		TRadioIdleState State();
-		/**
- 	    * Sets primary color for the radio idle
- 	    * @param aColor The color that is used as primary color of radio idle
- 	    */
-		void SetPrimaryColor( TRgb aColor );
-		/**
- 	    * Sets secondary color for the radio idle
- 	    * @param aColor The color that is used as secondary color of radio idle
- 	    */
-		void SetSecondaryColor( TRgb aColor );
-		/**
- 	    * Sets the background color of the radio idle
- 	    * @param aColor The color that is used as the background color of the radio idle
- 	    */
-		void SetBackgroundColor( TRgb aColor );
-		/**
- 	    * Return orientation of the display
- 	    */
-		TOrientation Orientation();
-		/**
- 	    * Set orientation of the display
- 	    * @param aOrientation The display orientation
- 	    */
-		void SetOrientation( TOrientation aOrientation );
-		/**
-		* Calculates display layout
-	    */
-		void UpdateLayout();
-		/**
- 	    * From MIRRadioIdleCommandObserver, takes care of radio idle command handling.
- 	    * @param aCommand Radio idle command
- 	    */
-        void HandleCommandL( TRadioIdleCommand aCommand );
-     
-private:
-		/**
-		* C++ default constructor
-		*/
-		CIRRadioIdle();
-		/**
-	    * EPOC second phase constructor.
-	    * @param aEnv  Reference to the Hitchcock environment instance.
-	    * @param aControlGroupId  Id of the control group to which radio idle belongs.
-	    * @param aParentLayout  Pointer to parent layout.
-	    */
-		void ConstructL( CAlfEnv& aEnv, TInt aControlGroupId, CAlfLayout* aParentLayout );
-
-private:	// New functions
-
-		/** Scroll directions for the radio idle item. */
-		enum TRadioIdleItemScrollDirection
-			{
-			EScrollLeftToRight = 0xA0,
-			EScrollRightToLeft,
-			EScrollNone
-			};
-
-		/** Custom events for the radio idle. */
-		enum TRadioIdleCustomEvent
-			{
-			ERadioIdleItemTransformationEnd = 0x5B,
-			ERadioIdleBackgroundTextScrollEnd,
-			EAfterStartupDelay,
-			ERadioIdleChangeMode,
-			ERadioIdleEventNone,
-			ERadioIdleFadeOutCompleted
-			};
-
-		/**
- 	    * Suspends radio idle and starts it again after startup delay
- 	    */
-		void SuspendRadioIdle();
-		/**
- 	    * Stops radio idle. Radio idle is set to stopped state.
- 	    */
-		void ShutdownRadioIdle();
-		/**
- 	    * Launches radio idle immediately.
- 	    * The background bitmap fades out and at the same time radio idle fades in
- 	    */
-		void StartRadioIdleL();
-		/**
-		 * Starts radio idle again without reseting radio idle items.
-		 */
-		void RefreshL();
-		/**
- 	    * Creates radio idle with passed number of the radio idle items
- 	    * @param aNumberOfRadioIdleItems Number of the radio idle items
- 	    */
-		void AddRadioIdleL( const TInt aNumberOfRadioIdleItems );
-		/**
- 	    * Creates the radio idle item to the passed radio idle view port.
- 	    * @param aRadioIdle The view port of the radio idle, ownership now transferred
- 	    * @param aRadioIdleItemText Text of the radio idle item
- 	    * @param aRadioIdleItemHasBackground TBool to indicate background visibility
- 	    * @param aBackgroundColor The background color of the radio idle item
- 	    * @param aBackgroundOpacity The background opacity of the radio idle item
- 	    */
-		CAlfTextVisual* AddRadioIdleItemL( CAlfLayout* aRadioIdle,
-										   const TDesC& aRadioIdleItemText,
-										   const TDesC8& aTag,
-									       TBool aRadioIdleItemHasBackground = EFalse,
-										   const TRgb& aBackgroundColor = KRgbWhite,
-										   const TReal32 aBackgroundOpacity = 0.5f );
-		/**
- 	    * Creates, initializes and animates the radio idle background text visual
- 	    */
-		void CreateBacgroundTextVisualL();
-		/**
- 	    * Initializes the radio idle items
- 	    * @param aNumberOfRadioIdleItems Number of the radio idle items
- 	    */
-		void InitializeRadioIdleItemsL( const TInt aNumberOfRadioIdleItems );
-		/**
- 	    * Sets defined animation to the created radio idle items
- 	    */
-		void AnimateRadioIdleItems();
-		/**
- 	    * Retrieves text from randomly chosen radio idle item.
- 	    * Transfers ownership.
- 	    */
-		HBufC* GetRandomRadioIdleContentL();
-		/**
- 	    * Sets color, opacity and scaling settings to the radio idle item
- 	    * @param aRadioIdleItem The radio idle item, ownership not transferred
- 	    * @param aRadioIdleItemText Text of the radio idle item
- 	    * @param aTextStyleId Text style for text of the radio idle item
- 	    */
-		void SetRadioIdleItemSettingsL( CAlfTextVisual* aRadioIdleItem, const TDesC& aRadioIdleItemText,
-										const TInt aTextStyleId );
-		/**
- 	    * Sets translating animations to the radio idle item
- 	    * @param aRadioIdleItem The radio idle item, ownership not transferred
- 	    * @param aRandomSeed
- 	    */
-		void SetRadioIdleItemAnimation( CAlfTextVisual* aRadioIdleItem );
-
-		/**
-	    * Sets the radio idle mode
-		*/
-		void SetMode( TRadioIdleMode aMode );
-		/**
-	    * Fades in radio idle
-	    * @param aNow If ETrue shows radio idle immediately otherwise
-	    * fades with defined fading duration
-		*/
-		void RadioIdleFadeIn( TBool aNow = EFalse );
-		/**
-	    * Fades out radio idle
-	    * @param aNow If ETrue hides radio idle immediately otherwise
-	    * fades with defined fading duration
-		*/
-		void RadioIdleFadeOut( TBool aNow = EFalse );
-		/**
- 	    * Sets and starts scrolling animation to CAlfTextVisual.
- 	    * The visual object is scrolled from current position to
- 	    * right side of the display
- 	    * @param aVisual a pointer to the visual object, ownership not transferred
- 	    */
-		void ScrollToRight( CAlfTextVisual* aVisual ) const;
-		/**
- 	    * Sets and starts scrolling animation to CAlfTextVisual.
- 	    * The visual object is scrolled from current position to
- 	    * left side of the display
- 	    * @param aVisual a pointer to the visual object, ownership not transferred
- 	    */
-		void ScrollToLeft( CAlfTextVisual* aVisual ) const;
-		/**
-	    * todo
- 	    * @param aVisual a pointer to the visual object, ownership not transferred
- 	    * @param aTransitionTime Duration for reaching the target.
- 	    * @param aEventAfterScrollingEnd todo custom even that will be sent when transition time is end
- 	    */
-		void SetScrollingToBackgroundText( CAlfTextVisual* aVisual,
-							    TInt aTransitionTime,
-							    TRadioIdleCustomEvent aEventAfterScrollingEnd = ERadioIdleEventNone ) ;
-		/**
-	    * Sets fade-in animation to the CAlfVisual.
-	    * @param aVisual a pointer to the visual object, ownership not transferred
-	    * @param aTime Time duration after the visual object has been faded in. Fading duration in milliseconds
-	    * @param aOpacity Target opacity value
-	    */
-		void FadeIn( CAlfVisual* aVisual, TInt aFadingTime, TReal32 aOpacity = 1.0f ) const;
-		/**
-	    * Sets fade-out animation to the CAlfVisual.
-	    * @param aVisual a pointer to the visual object, ownership not transferred
-	    * @param aTime Time duration after the visual object has been faded out. Fading duration in milliseconds
-	    * @param aOpacity Target opacity value
-	    */
-		void FadeOut( CAlfVisual* aVisual, TInt aFadingTime, TReal32 aOpacity = 0.0f ) const;
-		/**
- 	    * Translates the visual object with passed arguments
- 	    * @param aVisual a pointer to the visual object, ownership not transferred
- 	    * @param aX Translation value in the horizontal direction
- 	    * @param aY Translation value in the vertical direction
- 	    */
-		void Translate( CAlfTextVisual* aTextVisual, const TAlfTimedValue& aX, 
-						const TAlfTimedValue& aY );
-		/**
- 	    * Scales the visual object with passed arguments
- 	    * @param aVisual a pointer to the visual object, ownership not transferred
- 	    * @param aX Scaling value in the horizontal direction
- 	    * @param aY Scaling value in the vertical direction
- 	    */
-		void Scale( CAlfTextVisual* aTextVisual, const TAlfTimedValue& aX, const TAlfTimedValue& aY );
-		/**
- 	    * Removes all transformations of the visual object such as the scaling and translating.
- 	    * @param aVisual a pointer to the visual object, ownership not transferred
- 	    */
-		void LoadTextVisualIdentity( CAlfTextVisual* aTextVisual );
-	    /**
-	     * Converts CAlfVisual reference to pointer
-	     */
-	    CAlfVisual* GetPointer( CAlfVisual& aRef );	    
-        /**
-         * Callback for radio idle item transformation end.
-         */
-		void HandleRadioIdleItemTransformationEndEventL( const TAlfEvent& aEvent );
-		/**
-		 * Callback for background text transformation end.
-		 */
-        void HandleBackgroundTextScrollEndEventL( const TAlfEvent& aEvent );
-		/**
-		 * Randomly modifies a component of a radio idle text color.
-		 */
-        TInt DeviateColorComponent( TInt aBaseValue );
-        
-private:	// Data
-
-		/** Display orientation */
-	    TOrientation iOrientation;
-
-	    /** Visual of radio idle content. Not owned. */
-	    CAlfViewportLayout* iViewport;
-	    /** Parent layout. Not owned. */
-	    CAlfLayout* iParentLayout;
-	    /** Layout for radio idle */
-	    TAknLayoutRect iRadioIdleLayout;
-
-	    /** Fade style for radio idle */
-	    TRadioIdleFadeStyle iFadeStyle;
-	    /** States of radio idle */
-		TRadioIdleState iRadioIdleState;
-		/** Keeps track of the current radio idle mode */
-		TRadioIdleMode  iRadioIdleMode;
-		/** Keeps track of the requested mode */
-		TRadioIdleMode  iRadioIdleRequestedMode;
-	    /** Counts the items that have finished their transformations for mode change */
-		TInt iItemsTransformationEndEventCounter;
-
-	    /** Color to be used for the radio idle items */
-	    TRgb iRadioIdlePrimaryColor;
-	    /** Color to be used for the radio idle items */
-	    TRgb iRadioIdleSecondaryColor;
-	    /** Scroll direction for the radio idle item */
-	    TRadioIdleItemScrollDirection iScrollDirection;
-
-		/** Array for the strings of the radio idle items. Owned. */
-        CDesCArrayFlat* iRadioIdleItemArray;
-		/** Array for the text styles of the radio idle items */
-        RArray<TInt> iTextStyleIdArray;
-
-        /** Background of radio idle. Not owned.*/
-		CAlfGradientBrush* iRadioIdleBackgroundGradientBrush;
-        /** Text style id of the radio idle background text */
-        TInt iRadioIdleItemBackgroundTextStyleId;
-        /** Color that is used as the background color of radio idle */
-	    TRgb iRadioIdleBackgroundColor;
-	    /** Scroll direction for the radio idle background text */
-	    TRadioIdleItemScrollDirection iBackgroundTextScrollDirection;
-	    /** Indicates whether fading is ongoing */
-	    TBool iFading;
-	    /** Indicates whether there was a startup try when fading out radio idle */
-	    TBool iDelayedStartup;
-
-	};
-
-#endif /*VRRADIOIDLE_H_*/