textinput/peninputcommonctrls/inc/peninputselectionlist/peninputcommonchoicelist.h
changeset 0 eb1f2e154e89
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/textinput/peninputcommonctrls/inc/peninputselectionlist/peninputcommonchoicelist.h	Tue Feb 02 01:02:04 2010 +0200
@@ -0,0 +1,190 @@
+/*
+* Copyright (c) 2005-2006 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:  header file of choice list window
+*
+*/
+
+#ifndef C_PENINPUTCOMMONCHOICELIST_H
+#define C_PENINPUTCOMMONCHOICELIST_H
+
+// INCLUDES
+#include <w32std.h>
+#include <e32base.h>
+#include <peninputlayoutchoicelist.h>
+#include <AknsConstants.h>
+
+/** class forward decalaration */
+class CFepUiLayout;
+
+enum ECommonChoiceListStyle
+	{
+	EFixedLength,
+	EAutoFitLength
+	};
+	
+/**
+ *  CPeninputCommonChoiceList class 
+ *
+ *  This class for touch input common choice list. The prop. of 
+ *  this control is depend on laf data.
+ *
+ *  @lib 
+ *  @since S60 v5.0
+ */
+class CPeninputCommonChoiceList : public CFepLayoutChoiceList
+    {
+public: 
+
+    /**
+     * Symbian Constructor
+     *
+     * @since S60 v5.0
+     * @param aUiLayout 		Pointer to uilayout
+     * @param aControlId 		Choice list id
+     * @param aItemSkinID 		Item skin id
+     * @param aBackgroundSkinID Background skin id
+     * @return Pointer to created CPeninputCommonChoiceList object
+     */
+    IMPORT_C static CPeninputCommonChoiceList* NewL( CFepUiLayout* aUiLayout, 
+    											     TInt aControlId,
+    											     TAknsItemID aItemSkinID,
+    											     TAknsItemID aBackgroundSkinID,
+    											     ECommonChoiceListStyle aListStyle = EAutoFitLength);
+
+    /**
+     * Destructor
+     *
+     * @since S60 v5.0
+     * @return None
+     */
+    IMPORT_C virtual ~CPeninputCommonChoiceList();
+    
+    /**
+     * Add rect of item to the end of list
+     *
+     * @param aRect 	The rect of the item
+     * @since S60 v5.0
+     * @return None
+     */    
+    IMPORT_C void AddItemRectL( const TRect& aRect );
+    
+    /**
+     * Remove all the rects of item
+     *
+     * @since S60 v5.0
+     * @return None
+     */    
+    IMPORT_C void RemoveAllItemsRect();
+    
+    /**
+     * Set text layout data
+     *
+     * @param aTextLayout 	Text layout from laf data
+     * @since S60 v5.0
+     * @return None
+     */    
+    IMPORT_C void SetTextLayout( const TAknTextLineLayout& aTextLayout );
+    
+    /**
+     * Set list column count. The maxium column of the control is based on the laf
+     * Any number exceeds the maxium will be ignored.
+     *
+     * @param aMaxCount 
+     * @since S60 v5.0
+     * @return None
+     */   
+    IMPORT_C void SetListColumnNumWithLafL( TInt aMaxCount);
+    
+    /**
+     * Set skin ID
+     *
+     * @param aItemSkinID  			item skin ID
+     * @param aBackgroundSkinID  	background skin ID
+     * @since S60 v5.0
+     * @return None
+     */   
+    IMPORT_C void SetListSkinID( TAknsItemID aItemSkinID, TAknsItemID aBackgroundSkinID );
+    /**
+     * Hit Test
+     *
+     * @param aPoint  			touched point
+     * @return Index of list.
+     */       
+    IMPORT_C TInt HitTest(const TPoint& aPoint);    							 
+protected:
+    /**
+     * Constructor.        
+     *
+     * @since S60 V4.0        
+     * @param aUiLayout Ui layout who contains this control.Ownership not transferred
+     * @param aControlId control Id
+     * @param aItemSkinID 		Item skin id
+     * @param aBackgroundSkinID Background skin id
+     */  
+	IMPORT_C CPeninputCommonChoiceList( CFepUiLayout* aUiLayout, 
+							   TInt aControlId,
+							   TAknsItemID aItemSkinID,
+							   TAknsItemID aBackgroundSkinID,
+							   ECommonChoiceListStyle aListStyle );
+
+	TInt MaxWidthOfListItem();
+private:
+	/**
+     * Choice list draw function
+     *
+     * @since S60 V4.0
+     * @return None.     
+     */
+    IMPORT_C virtual void Draw();
+    
+	/**
+     * Calculate rect based on item count. (only length, suppose the count is fixed)
+     *
+     * @since S60 V4.0
+     * @return None.     
+     */
+    IMPORT_C virtual void ReCalcLayout();  
+     
+    void DrawBackground();
+    void DrawItem( TInt aIndex, TBool aIsFocus );
+private: // data
+    /**
+     * Item rect array.
+     */
+	RArray<TRect> iItemRects;
+	
+    /**
+     * Item text layout
+     */	
+	TAknTextLineLayout iTextLayout;
+	
+    /**
+     * The skin ID of sub item and background
+     */
+    TAknsItemID iItemSkinID;
+    TAknsItemID iBackgroundSkinID;
+    
+    /**
+     * The style of the list
+     */
+	ECommonChoiceListStyle iListStyle;
+	
+    /**
+     * The last column number of the list
+     */
+	TInt iLastColumnNum;
+    };
+
+#endif //C_PENINPUTCOMMONCHOICELIST_H
+//End Of File