internetradio2.0/uiinc/irnowplayingviewcontainer.h
changeset 0 09774dfdd46b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/uiinc/irnowplayingviewcontainer.h	Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,233 @@
+/*
+* Copyright (c) 2007-2008 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:  Base Alfred control for the now playing view
+*
+*/
+
+
+#ifndef C_CIRNOWPLAYINGVIEWCONTAINER_H
+#define C_CIRNOWPLAYINGVIEWCONTAINER_H
+
+#include "internetradioconfigurationflags.hrh"
+
+#ifdef MUL_USE_COMMON_COMPONENTS
+
+#include <gesturecontrol.h>
+#include <gestureobserver.h>
+
+#else
+
+#include <alf/alfcontrol.h>
+
+#endif
+
+class CAlfEnv;	
+class CAlfAnchorLayout;
+class CAlfDeckLayout;
+class CAlfImageVisual;
+class CAlfTextVisual;
+class TAlfImage;
+class CIRStationInformationDisplay;
+class CIRStationLogoControl;
+class CIRNowPlayingView;
+class MTouchFeedback;
+class CIRRadioIdle;
+
+#ifdef MUL_USE_COMMON_COMPONENTS
+using namespace GestureHelper;
+#endif
+
+/**
+ * Now playing container
+ *
+ * @since   S60 v3.2
+ */
+#ifdef MUL_USE_COMMON_COMPONENTS
+class CIRNowPlayingViewContainer : public CGestureControl, public MGestureObserver
+#else
+class CIRNowPlayingViewContainer : public CAlfControl
+#endif
+    {
+	public:
+	/**
+	* Two-phased constructor.
+	*
+	* Adds the control to the control group
+	*
+	* @param   aEnv    Alfred environment to use.
+	* @return  The created object. Ownership is not transferred.
+	*/
+	static CIRNowPlayingViewContainer* NewL( CAlfEnv& aEnv,CIRNowPlayingView* instance );
+
+   	/* Two-phased constructor.
+	*
+	* Adds the control to the control group
+	*
+	* @param   aEnv    Alfred environment to use.
+	* @return  The created object. Ownership is not transferred.
+	*/
+	static CIRNowPlayingViewContainer* NewLC( CAlfEnv& aEnv,CIRNowPlayingView* aInstance );
+
+	/**
+	* Destructor.
+	*/
+	~CIRNowPlayingViewContainer();
+
+	/**
+	* Returns a reference to the station logo control.
+	*
+	* @return  Reference to the station logo control.
+	*/
+	CIRStationLogoControl& StationLogoControl();
+	
+	/**
+     * Returns a reference to the radio idle control.
+     * 
+     * @return  Reference to the radio idle control.
+     */ 
+    CIRRadioIdle& RadioIdle();
+	/**
+	* Set the text in the visual.
+	*
+	* @param   aText   is the Bitrate Text
+	*/
+	void SetBitrateL( const TDesC& aText );
+	
+	/**
+	* Set the text in the visual.
+	*
+	* @param   aText   RDS text
+	*/
+
+	void SetByteCounterL( const TDesC& aText );
+	
+	/**
+	* StationInformationDisplay()
+	* reyurns the Instance of the StationInformationDisplay
+	*/
+	
+	CIRStationInformationDisplay& StationInformationDisplay();
+	
+	/**
+	* Layouts this control.
+	*
+	* TODO: Move this method to be private when CAlfControl is notified
+	* of portrait/landscape events.
+	*/
+	void LayoutControl();
+
+	
+	void SetLayoutAnchor( TInt aOrdinal, TInt aResourceId );
+	/**
+     * Draw()
+     * Function used to Draw the View
+     */
+	void DrawViewL(TBool aLogoStatus) ;
+	// from base class MGestureObserver
+
+	#ifdef MUL_USE_COMMON_COMPONENTS
+	// from base class MGestureObserver
+	    void HandleGestureL( const MGestureEvent& aEvent );
+	#else
+	// from base class CAlfControl
+	    TBool OfferEventL( const TAlfEvent& aEvent );
+	#endif
+
+private: // Methods
+
+	/**
+	* Constructor.
+	*/
+	CIRNowPlayingViewContainer(CAlfEnv& aEnv);
+
+	/**
+	* Second-phase constructor.
+	*
+	* @param   aEnv    Alfred environment to use.
+	*/
+	void ConstructL(CIRNowPlayingView* instance);
+
+	/**
+	*TriggerCommandL.()
+	*
+	* triggering the Commands to the view
+	*/
+	void TriggerCommandL(TInt iCommandId);
+    
+    /**
+	* KeyHitL()
+	*
+	* used for handling Key Events
+	*/
+	TBool KeyHitL( TInt aScanCode);
+    /**
+     * Touch feedback.
+     * Not owned.
+     */
+    MTouchFeedback* iFeedback;
+
+private: // Members
+    
+    /**
+     * The Alfred environment
+     */
+    CAlfEnv& iAlfEnv;
+	
+	/**
+	* Logo control.
+	* Not owned.
+	*/
+	CIRStationLogoControl* iLogoControl;
+	
+	/**
+	* The base layout to which all controls are layouted.
+	* Not owned.
+	*/
+	CAlfAnchorLayout* iLayout;
+
+	/**
+	* Station information display.
+	* Not owned.
+	*/
+	CIRStationInformationDisplay* iStationInformationDisplay;
+
+	/**
+	* RDS text visual.
+	* Not owned.
+	*/
+	CAlfTextVisual* iBitrate;
+
+	/**
+	* RDS text visual.
+	* Not owned.
+	*/
+	
+	CAlfTextVisual* iByteCounter;
+
+
+	/**
+	* iNowPlayingView1
+	* Used for Handling KeyEvents
+	*/
+	CIRNowPlayingView* iNowPlayingView;
+	
+	/**
+     * Radio Idle.
+     * Owned.
+     */
+    CIRRadioIdle* iRadioIdle;
+    };
+
+
+#endif // C_CIRNOWPLAYINGVIEWCONTAINER_H