uiacceltk/hitchcock/tsrc/alfperfapp/inc/alfperfappsuiteepgcontrol.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiacceltk/hitchcock/tsrc/alfperfapp/inc/alfperfappsuiteepgcontrol.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,160 @@
+/*
+* Copyright (c) 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:  
+*
+*/
+
+#ifndef __ALFPERFAPPSUITEEPGCONTROL_H__
+#define __ALFPERFAPPSUITEEPGCONTROL_H__
+
+// INCLUDES
+#include <alf/alfcontrol.h>
+#include "alfperfappsuiteflags.h"
+
+// FORWARD DECLARATIONS
+class CAlfLayout;
+class CAlfPerfAppSuiteTestCaseScroll;
+
+// CLASS DECLARATIONS
+class TProgram
+	{
+	public:
+		/**
+		 * C++ constructor.
+		 */		
+		TProgram();
+		
+		/**
+		 * C++ constructor.
+		 * @param aName Name of the program.
+		 * @param aStart Start time of the program.
+		 * @param aEnd End time of the program.
+		 */		
+		TProgram( const TDesC& aName, const TDesC& aStart, const TDesC& aEnd );
+		
+	public:
+		
+		/**
+		 * Calculates the duration of the program.
+		 * @return duration of the program.
+		 */
+		TInt DurationInMinutes();
+		
+	public:
+		/**
+		 * Name of the program.
+		 */
+		TBuf<100> iName;
+		
+		/**
+		 * Start time.
+		 */
+		TTime iStart;
+		
+		/**
+		 * End time.
+		 */
+		TTime iEnd;
+	};
+
+class CAlfPerfAppSuiteEPGControl : public CAlfControl, public MAlfTextureLoadingCompletedObserver
+    {
+	private: // Enums
+		
+		/**
+		 * Textstyles used in EGP.
+		 */
+		enum TTextStyle
+			{
+			ETextStyleTitle = 0,
+			ETextStyleTime,
+			ETextStyleProgram,
+			ENumberOfTextStyles
+			};
+	
+	public: // Construction and desctruction
+		
+		/**
+		 * C++ constuctor.
+		 * @param aScrollControl is used as observer
+		 */ 
+		CAlfPerfAppSuiteEPGControl(CAlfPerfAppSuiteTestCaseScroll* aScrollControl);
+		
+		/**
+		 * Destructor.
+		 */
+		~CAlfPerfAppSuiteEPGControl();
+		
+		/**
+		 * Second-phase constructor.
+		 * @param aEnv Alf environment.
+		 * @param aVisibleArea Visible screen area.
+		 * @param aParentLayout Parent layout.
+		 */		
+	    virtual void ConstructL( 
+	        CAlfEnv& aEnv, 
+	        const TSize& aVisibleArea,
+	        CAlfLayout* aParentLayout );
+	    
+	private: // New functions
+#ifdef ENABLE_TEXTSTYLES		
+		void CreateTextStylesL();
+#endif
+		void AddRowL( 
+				CAlfLayout* aParentLayout,
+				TAlfImage& aChannelImage,
+				RArray<TProgram>& aPrograms,
+				const TTime& aTimeWindowStart,
+				const TTime& aTimeWindowEnd,
+				TInt aTextStyle,
+				TBool aSetBorders = ETrue
+				);
+		
+		void AddProgramsL( 
+				CAlfLayout* aParentLayout,
+				RArray<TProgram>& aPrograms,
+				const TTime& aTimeWindowStart,
+				const TTime& aTimeWindowEnd,
+				TInt aTextStyle,
+				TBool aSetBorders
+				);		
+	   
+	    // From base class MAlfTextureLoadingCompletedObserver
+	    void TextureLoadingCompleted(
+	            CAlfTexture& aTexture,
+	            TInt aTextureId,
+	            TInt aErrorCode );
+	    
+	private:
+		TSize iVisibleArea;
+
+		/**
+		 * count of the number of loaded textures
+		 */
+		TInt iLoadedImages;
+		
+		/**
+		 * Used for callback.
+		 * Not owned.
+		 */
+		CAlfPerfAppSuiteTestCaseScroll* iScrollControl;
+		
+#ifdef ENABLE_TEXTSTYLES		
+		RArray<TInt> iTextStyles;
+#endif
+    };
+
+#endif // __ALFPERFAPPSUITEEPGCONTROL_H__
+
+// end of file