textinput/peninputcommonctrls/src/peninputselectionlist/peninputcommonchoicelist.cpp
changeset 40 2cb9bae34d17
parent 31 f1bdd6b078d1
child 49 37f5d84451bd
--- a/textinput/peninputcommonctrls/src/peninputselectionlist/peninputcommonchoicelist.cpp	Tue Jul 06 14:38:41 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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:  Implement of touch input mode switch
-*
-*/
- 
-  
-#include <peninputlayoutchoicelist.h>
-#include <peninputlayout.h>
-#include <AknIconUtils.h>
-#include <AknLayoutDef.h>
-#include <AknsDrawUtils.h>
-#include <AknUtils.h>
-#include <aknlayoutscalable_avkon.cdl.h>
-#include <barsread.h>
-#include <AknsUtils.h>
-#include <bautils.h>
-#include <AknFepGlobalEnums.h> 
-#include <peninputcommonchoicelist.h>
-
-
-#define MIN_WORD_LENGTH  200 //temperarily added.
-const TInt KExtraMargine = 10;
-// ---------------------------------------------------------------------------
-// C++ constructor.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CPeninputCommonChoiceList::
-			 CPeninputCommonChoiceList( CFepUiLayout* aUiLayout, 
-	            						TInt aControlId,
-	            						TAknsItemID aItemSkinID,
-	    				  			    TAknsItemID aBackgroundSkinID,
-	    				  			    ECommonChoiceListStyle aListStyle ) 
-: CFepLayoutChoiceList( aUiLayout, aControlId )
-    { 
-    iItemSkinID =  aItemSkinID;
-    iBackgroundSkinID = aBackgroundSkinID;
-    iListStyle = aListStyle;
-#ifdef RD_TACTILE_FEEDBACK     
-    //Advanced Tactile feedback REQ417-47932
-    if(aUiLayout)
-    	{
-    	if (aUiLayout->PenInputType() == EPluginInputModeFSQ||
-    		aUiLayout->PenInputType() == EPluginInputModeVkb)
-    		{
-    		SetTactileFeedbackType(ETouchFeedbackBasicButton);
-    		aUiLayout->ChangeFeedbackType(reinterpret_cast<TInt>(this),ETouchFeedbackBasicButton);
-    		}
-    	else
-    		{
-    		SetTactileFeedbackType(ETouchFeedbackSensitiveKeypad);
-    		aUiLayout->ChangeFeedbackType(reinterpret_cast<TInt>(this),ETouchFeedbackSensitiveKeypad);
-    		}
-    	}       
-#endif //RD_TACTILE_FEEDBACK 
-    }
-
-// ---------------------------------------------------------------------------
-// Symbian Constructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CPeninputCommonChoiceList* CPeninputCommonChoiceList::
-								NewL( CFepUiLayout* aUiLayout,
-				    				  TInt aControlId, 
-									  TAknsItemID aItemSkinID,
-					  			      TAknsItemID aBackgroundSkinID,
-					  			      ECommonChoiceListStyle aListStyle ) 
-    {
-    CPeninputCommonChoiceList *self = new (ELeave) 
-        CPeninputCommonChoiceList( aUiLayout, 
-        						   aControlId, 
-        						   aItemSkinID,
-        						   aBackgroundSkinID,
-        						   aListStyle );
-    
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    CleanupStack::Pop();
-
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-EXPORT_C CPeninputCommonChoiceList::~CPeninputCommonChoiceList()
-    {
-    iItemRects.Close();
-    }
-
-EXPORT_C void CPeninputCommonChoiceList::AddItemRectL( const TRect& aRect )
-	{
-	iItemRects.AppendL( aRect );	
-	}
-	
-EXPORT_C void CPeninputCommonChoiceList::RemoveAllItemsRect()
-	{
-	iItemRects.Reset();	
-	}
-	
-EXPORT_C void CPeninputCommonChoiceList::
-								SetTextLayout( const TAknTextLineLayout& aTextLayout )
-	{
-	iTextLayout = aTextLayout;	
-	}
-	
-TInt CPeninputCommonChoiceList::MaxWidthOfListItem()
-	{
-	if( iTextLayout.FontId() == 0 )
-		return 0;
-	
-	TInt maxLength = 0;
-	const CFont* font = AknLayoutUtils::FontFromId(iTextLayout.FontId(), NULL);
-	ASSERT( font );
-	
-	for( TInt i = 0; i < ItemsCount(); i++ )
-		{
-		TInt length = font->TextWidthInPixels( ItemByIndex(i)->iText );
-		maxLength  = length > maxLength ? length : maxLength;
-		}
-    maxLength = maxLength > MIN_WORD_LENGTH ? maxLength : MIN_WORD_LENGTH;		
-	return maxLength;
-	}
-	
-EXPORT_C void CPeninputCommonChoiceList::ReCalcLayout()
-	{
-	if( iItemRects.Count() == 0 )
-	    {
-	    return;
-	    }
-	    
-	if( iListStyle == EAutoFitLength )
-		{
-		TInt itemLength = MaxWidthOfListItem() + iTextLayout.il + iTextLayout.ir;
-		TInt offsetLength = 0;
-		offsetLength = Rect().Width() - iItemRects[0].Width();	
-		
-		if( itemLength + offsetLength + KExtraMargine > UiLayout()->Rect().Width() )
-		    { 
-		    itemLength = UiLayout()->Rect().Width() - KExtraMargine - offsetLength;
-		    }
-		TRect rect;
-		for( TInt i = 0; i < iItemRects.Count(); i++ )
-			{
-			rect = iItemRects[i];
-			offsetLength = itemLength - rect.Width();	
-			rect.SetRect(rect.iTl, TSize( itemLength, rect.Height() ) ); 
-			iItemRects[i] = rect;
-			}
-		rect = Rect();
-		rect.Resize( offsetLength, 0 );
-		SetRect( rect );		
-		}
-	}
-	
-EXPORT_C void CPeninputCommonChoiceList::Draw()
-	{
-	if(!AbleToDraw())
-    	return;    
-    
-    DrawBackground(); 
-
-    //draw Item
-    for(int ii = 0; ii < ItemsCount(); ++ii)
-        {
-        DrawItem(ii, CurrentFocusedIndex() == ii);
-        }
-	}
-	
-void CPeninputCommonChoiceList::DrawBackground()
-	{
-    DrawOpaqueMaskBackground( Rect() );	
-	if( iBackgroundSkinID.iMajor != EAknsMajorNone && 
- 		iBackgroundSkinID.iMinor != EAknsMinorNone )
- 		{
-	    TRect rtInnerRect( Rect() );
-	    rtInnerRect.Shrink( 1, 1 );
-	    CFbsBitGc* gc = static_cast<CFbsBitGc*>(BitGc());
-	    
-	    gc->Activate( BitmapDevice() ); 
-	    gc->SetBrushColor( KRgbWhite );
-	    gc->Clear( Rect() ); 
-		AknsDrawUtils::DrawFrame( AknsUtils::SkinInstance(), 
-	                     *gc, 
-	                     Rect(), 
-	                     rtInnerRect,
-	                     iBackgroundSkinID,
-	                     KAknsIIDDefault );       
- 		}
-	}
-	
-void CPeninputCommonChoiceList::DrawItem( TInt aIndex, TBool aIsFocus )
-	{
-    TRect rtFocusRect(iItemRects[aIndex]);
-    rtFocusRect.Move( Rect().iTl );
-	
-	if( aIsFocus )
-		{
-        //draw focus bitmap
-        TRect rtInnerRect( rtFocusRect );
-        rtInnerRect.Shrink( 7, 7 );
-        
-       	if( iItemSkinID.iMajor != EAknsMajorNone && 
-       	    iItemSkinID.iMinor != EAknsMinorNone)
-       		{
-       		CFbsBitGc* gc = static_cast<CFbsBitGc*>(BitGc());
-       		gc->Activate( BitmapDevice() ); 
-			AknsDrawUtils::DrawFrame( AknsUtils::SkinInstance(), 
-                         *gc, 
-                         rtFocusRect, 
-                         rtInnerRect,
-                         iItemSkinID,
-                         KAknsIIDDefault );       	
-       		}	
-	    
-		}	
-	
-	// draw text
-    TAknLayoutText textLayout;
-    textLayout.LayoutText(rtFocusRect, iTextLayout);
-    TRgb color( KRgbBlack );  // sane default for nonskinned case
-    TAknsQsnTextColorsIndex clrIndex;
-    clrIndex = aIsFocus ? EAknsCIQsnTextColorsCG10 : EAknsCIQsnTextColorsCG20;
-
-    if ( AknsUtils::AvkonSkinEnabled() )
-        {
-        AknsUtils::GetCachedColor( AknsUtils::SkinInstance(),
-                               color, KAknsIIDQsnTextColors, clrIndex );
-        }
-
-    textLayout.DrawText(*BitGc(), ItemByIndex(aIndex)->iText, ETrue, color);
-	}
-
-EXPORT_C void CPeninputCommonChoiceList::SetListColumnNumWithLafL( TInt aMaxCount)
-	{
-	if( iLastColumnNum == aMaxCount )
-		return;
-	
-	iLastColumnNum  = aMaxCount;
-	RemoveAllItemsRect();	
-	
-    TAknWindowLineLayout appWnd = AknLayoutScalable_Avkon::application_window(0).LayoutLine();
-    TAknWindowLineLayout mainPane = AknLayoutScalable_Avkon::main_pane(4).LayoutLine();
-    TAknLayoutRect mainPaneRect;
-    mainPaneRect.LayoutRect(appWnd.Rect(), mainPane);
-    
-    TAknWindowLineLayout menuWnd = AknLayoutScalable_Avkon::
-    								popup_menu_window(13).LayoutLine();
-    TAknWindowLineLayout choiceWnd = AknLayoutScalable_Avkon::
-    								popup_submenu_window(aMaxCount - 1).LayoutLine();    								
-    TAknLayoutRect choiceRect;
-    choiceRect.LayoutRect(mainPaneRect.Rect(), choiceWnd);
-    
-	TRect rectChoiseList( 0, 0 , 
-						  choiceRect.Rect().Width(),
-						  choiceRect.Rect().Height());
-	// set list window rect						  						  
-	SetRect( rectChoiseList );
-	
-    TAknWindowLineLayout listPopupPane = AknLayoutScalable_Avkon::
-    								listscroll_popup_sub_pane(0).LayoutLine();	
-	TAknLayoutRect listPopupPaneRect; 
-	listPopupPaneRect.LayoutRect(rectChoiseList, listPopupPane);								
-    TAknWindowLineLayout listSubMenuPane = AknLayoutScalable_Avkon::
-    								list_submenu_pane(1).LayoutLine();
-    TAknLayoutRect listSubMenuPaneRect;
-    listSubMenuPaneRect.LayoutRect(listPopupPaneRect.Rect(), listSubMenuPane);
-    
-    TAknWindowLineLayout listSinglePane; 
-    TAknLayoutRect listSinglePaneRect;
-    
-    // set list item rect
-    for( TInt i = 0; i < aMaxCount; i++ )
-    	{
-    	listSinglePane = AknLayoutScalable_Avkon::
-    							list_single_popup_submenu_pane(i, 0, 0).LayoutLine();
-		listSinglePaneRect.LayoutRect( listSubMenuPaneRect.Rect(), listSinglePane );
-		iItemRects.AppendL(listSinglePaneRect.Rect());	
-    	}
-    
-    // set list text layout	
-   	SetTextLayout(AknLayoutScalable_Avkon::list_single_popup_submenu_pane_t1(0).LayoutLine());  	
-	}
-
-EXPORT_C void CPeninputCommonChoiceList::SetListSkinID( TAknsItemID aItemSkinID, 
-												        TAknsItemID aBackgroundSkinID )	
-	{
-	iItemSkinID = aItemSkinID;
-	iBackgroundSkinID = aBackgroundSkinID;
-	}
-EXPORT_C TInt CPeninputCommonChoiceList::HitTest(const TPoint& aPoint)
-    {
-    TPoint pPoint(aPoint.iX - Rect().iTl.iX,aPoint.iY - Rect().iTl.iY);
-    TInt arrayCount = iItemRects.Count();
-    TInt index = arrayCount;
-    for(TInt i = 0; i < arrayCount; i++)
-        {
-        if(iItemRects[i].Contains(pPoint))
-            {
-            index = i;
-            }
-        }
-    if( index >= arrayCount )
-        {
-        return EListOutside;
-        }
-    else
-        {
-        return index;
-        }    
-    }							 	
-// End Of File