multimediacommsengine/tsrc/testdriver/testclient/ui/src/CTcContainer.h
changeset 0 1bce908db942
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/multimediacommsengine/tsrc/testdriver/testclient/ui/src/CTcContainer.h	Tue Feb 02 01:04:58 2010 +0200
@@ -0,0 +1,140 @@
+/*
+* Copyright (c) 2004 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:  See class definition below.
+*
+*/
+
+#ifndef __CTCCONTAINER_H__
+#define __CTCCONTAINER_H__
+
+// INCLUDES
+#include <coecntrl.h>
+
+#ifdef __SERIES60_
+#include <aknutils.h>
+#endif
+
+// FORWARD DECLARATIONS
+class CEikLabel;
+
+// CLASS DEFINITION
+/**
+ * CTcContainer implements the application main view control.
+ * It is responsible for displaying application state information
+ * (e.g. test case name and CTRL request).
+ */
+class CTcContainer
+	: public CCoeControl
+	{
+	public:	// Constructors and destructor
+
+		/**
+		 * Static constructor.
+		 *
+		 * @param aRect View area for this control.
+		 * @return An initialized instance of this class
+		 */
+		static CTcContainer* NewL( const TRect& aRect );
+
+		/// Destructor
+		~CTcContainer();
+
+	private: // Constructors
+
+		/// Default constructor
+		CTcContainer();
+
+		/**
+		 * 2nd phase constructor.
+		 *
+		 * @param aRect View area for this control.
+		 */
+		void ConstructL( const TRect& aRect );
+
+	public:  // from CCoeControl
+
+		void Draw( const TRect& aRect ) const;
+
+	protected: //  from CCoeControl
+
+		TInt CountComponentControls() const;
+		CCoeControl* ComponentControl( TInt aIndex ) const;
+		
+#ifdef __SERIES60_
+
+		void SizeChanged();
+		void HandleResourceChange( TInt aType );
+#endif
+
+	public: // New methods
+
+		/**
+		 * Query state of a TestRunner instance and update status
+		 * displays accordingly.
+		 * This is called from CTcAppUi::NotifyStatusChange()
+		 *
+		 * @param aRunner TestRunner reference
+		 */
+		void Update( CTcTestRunner& aRunner );
+
+		/**
+		 * Update the Status label with the given text
+		 * This is called from CTcAppUi::SetStatus()
+		 *
+		 * @param aStatus New status text
+		 */
+		void UpdateStatus( const TDesC8& aStatus );
+
+	private: // New methods
+
+		/**
+		 * This is an internal helper function for creating and laying out
+		 * CEikLabel controls.
+		 *
+		 * @param aRect View area for the created label
+		 * @param aText Default text for the label
+		 * @return An initialized label control.
+		 */
+		CEikLabel* CreateLabelL( const TRect& aRect, const TDesC& aText );
+
+		/**
+		 * Changes the text of one of the labels in the array
+		 *
+		 * @param aLabelId Label array index
+		 * @param aText new text for the label
+		 */
+		void SetLabelText( TInt aLabelId, const TDesC8& aText );
+		
+		void CreateLabelsL( const TRect& aRect );
+		
+#ifdef __SERIES60_
+	
+	    AknLayoutUtils::SAknLayoutTextMultiline GetLabelLayout( const TRect& aRect, 
+	                                                            TInt aLabelBase, 
+	                                                            TAknLogicalFontId aFontId ) const;
+	                                                            
+	    TInt FontTotalHeightInPixels( TAknLogicalFontId aFontId ) const;
+	    
+	    void ReLayoutAllLabels( const TRect& aRect );
+	    
+#endif
+
+	private: // Data
+
+		/// Label controls. Owned.
+		CArrayPtrSeg< CEikLabel > iLabels;
+
+	};
+
+#endif // __CTCCONTAINER_H__