diff -r 000000000000 -r 15bf7259bb7c uiacceltk/hitchcock/tsrc/alfperfapp/src/alfperfappsuitepeoplecontrol.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uiacceltk/hitchcock/tsrc/alfperfapp/src/alfperfappsuitepeoplecontrol.cpp Tue Feb 02 07:56:43 2010 +0200 @@ -0,0 +1,307 @@ +/* +* 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: +* +*/ + + +// INCLUDES +#include +#include +#include +#include +#include +#include +#include + +#include "AlfPerfAppSuitePeopleControl.h" +#include "AlfPerfAppSuiteHelper.h" +#include "AlfPerfAppSuiteTestCaseScroll.h" + +// MACROS +#define KRgbSelectionBlue TRgb(0xE99517) + +// ============================= MEMBER FUNCTIONS ============================== + +CAlfPerfAppSuitePeopleControl::CAlfPerfAppSuitePeopleControl(CAlfPerfAppSuiteTestCaseScroll* aScrollControl) + :iScrollControl(aScrollControl) + { + } + +CAlfPerfAppSuitePeopleControl::~CAlfPerfAppSuitePeopleControl() + { +#ifdef ENABLE_TEXTSTYLES + CAlfTextStyleManager& styleManager = Env().TextStyleManager(); + for( TInt i=0; iSetPadding( 4 ); + + // Add Header row + RArray rowHeights; + rowHeights.Append( 100 ); + + // Images + _LIT( KImage1, "people.png" ); + + CAlfTextureManager& textureManager = Env().TextureManager(); + aEnv.TextureManager().AddLoadObserverL( this ); + TAlfImage image( + textureManager.LoadTextureL( + KImage1, + EAlfTextureFlagRetainResolution, + KAlfAutoGeneratedTextureId ) ); + ConstructListHeaderL( gridLayout, image, _L("People"), rowHeights[rowHeights.Count()-1] ); + + // Add list items + rowHeights.Append( 120 ); // 1 + ConstructListItemL( gridLayout, _L("Top contacts"), _L("4 contacts"), rowHeights[rowHeights.Count()-1], ETrue ); + + rowHeights.Append( 100 ); // 2 + ConstructListItemL( gridLayout, _L("All contacts"), _L("247 contacts"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 3 + ConstructListItemL( gridLayout, _L("Communities"), _L("2 communities"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 4 + ConstructListItemL( gridLayout, _L("Work"), _L("40 contacts"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 5 + ConstructListItemL( gridLayout, _L("Friends"), _L("23 contacts"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 6 + ConstructListItemL( gridLayout, _L("Enemies"), _L("1 contact"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 7 + ConstructListItemL( gridLayout, _L("Fans"), _L("2 contacts"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 8 + ConstructListItemL( gridLayout, _L("Haters"), _L("1 contact"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 9 + ConstructListItemL( gridLayout, _L("Lovers"), _L("2 contacts"), rowHeights[rowHeights.Count()-1] ); + + rowHeights.Append( 80 ); // 10 + ConstructListItemL( gridLayout, _L("The Others"), _L("31"), rowHeights[rowHeights.Count()-1] ); + + // Apply rows + gridLayout->SetRows( rowHeights.Count() ); + gridLayout->SetRowsL( rowHeights ); + + // Set grid size + gridLayout->SetFlag( EAlfVisualFlagManualSize ); + TAlfRealSize size; + size.iWidth = iVisibleArea.iWidth; + for( TInt i=0; iSetSize( size, 0 ); + + // Cleanup + rowHeights.Close(); + } + +#ifdef ENABLE_TEXTSTYLES +void CAlfPerfAppSuitePeopleControl::CreateTextStylesL() + { + CAlfTextStyleManager& styleManager = Env().TextStyleManager(); + + // Create text styles + for( TInt i=0; iSetTextSizeInTwips( 180 ); + + style = styleManager.TextStyle( iTextStyles[ETextStyleBig] ); + style->SetTextSizeInTwips( 160 ); + + style = styleManager.TextStyle( iTextStyles[ETextStyleSmall] ); + style->SetTextSizeInTwips( 110 ); + } +#endif + +const TInt KNumberOfImages = 1; +// ----------------------------------------------------------------------------- +// Notify observers that all images have been loaded. +// ----------------------------------------------------------------------------- +// +void CAlfPerfAppSuitePeopleControl::TextureLoadingCompleted( + CAlfTexture& /*aTexture*/, TInt /*aTextureId*/, TInt aErrorCode) + { + // inform if there is any error + if( aErrorCode != KErrNone ) + { + iScrollControl->ImagesLoaded( aErrorCode ); + } + + iLoadedImages++; + if (iLoadedImages == KNumberOfImages) + { + iScrollControl->ImagesLoaded( KErrNone ); + } + } + +CAlfGridLayout* CAlfPerfAppSuitePeopleControl::ConstructListItemLayoutL( + CAlfLayout* aParentLayout, + TInt aHeight, + TBool aSelected, + TBool aBorders ) + { + // Define weights + RArray columnWeights; + columnWeights.Append( 2 ); + columnWeights.Append( 8 ); + + // Create a grid layout as a base + CAlfGridLayout* gridLayout = CAlfGridLayout::AddNewL( + *this, columnWeights.Count(), 1, aParentLayout ); + gridLayout->SetColumnsL( columnWeights ); + columnWeights.Close(); + + + // Set gradient brush if selected + if( aSelected ) + { + TAlfPerfAppSuiteHelper::AddGradientBrushL( gridLayout, KRgbSelectionBlue ); + } + + // Set borders + if( aBorders ) + { + TAlfPerfAppSuiteHelper::AddBorderBrushL( gridLayout, KRgbDarkGray, 0, 2 ); + } + + // Define the size manually + gridLayout->SetFlag( EAlfVisualFlagManualSize ); + TAlfRealSize size; + size.iWidth = iVisibleArea.iWidth; + size.iHeight = aHeight; + gridLayout->SetSize( size, 0 ); + + return gridLayout; + } + +CAlfGridLayout* CAlfPerfAppSuitePeopleControl::ConstructListItemTextLayoutL( + CAlfLayout* aParentLayout ) + { + // Define weights + RArray rowWeights; + rowWeights.Append( 1 ); + rowWeights.Append( 1 ); + + // Create a grid layout as a base + CAlfGridLayout* gridLayout = CAlfGridLayout::AddNewL( + *this, 1, rowWeights.Count(), aParentLayout ); + gridLayout->SetRowsL( rowWeights ); + rowWeights.Close(); + + return gridLayout; + } + +void CAlfPerfAppSuitePeopleControl::ConstructListHeaderL( + CAlfLayout* aParentLayout, + const TAlfImage& aImage, + const TDesC& aText, + TInt aHeight ) + { + // Create list item layout + CAlfGridLayout* listItemLayout = + ConstructListItemLayoutL( aParentLayout, aHeight, EFalse, EFalse ); + + // Add image visual to first cell of list item layout + CAlfImageVisual* imageVisual = CAlfImageVisual::AddNewL( *this, listItemLayout ); + imageVisual->SetImage( aImage ); + imageVisual->SetScaleMode( CAlfImageVisual::EScaleFitInside ); + + // Add text visual to second + CAlfTextVisual* textVisual = CAlfTextVisual::AddNewL( *this, listItemLayout ); + textVisual->SetTextL( aText ); + textVisual->SetAlign( EAlfAlignHLeft, EAlfAlignVCenter ); +#ifdef ENABLE_TEXTSTYLES + textVisual->SetTextStyle( iTextStyles[ETextStyleHeader] ); +#endif + textVisual->SetColor( KRgbWhite ); + } + +void CAlfPerfAppSuitePeopleControl::ConstructListItemL( + CAlfLayout* aParentLayout, + const TDesC& aName, + const TDesC& aDescription, + TInt aHeight, + TBool aSelected ) + { + // Create list item layout + CAlfGridLayout* listItemLayout = + ConstructListItemLayoutL( aParentLayout, aHeight, aSelected ); + + // Add blank placeholder to first cell + AppendVisualL( EAlfVisualTypeVisual, listItemLayout ); + + // Create a new layout for text + CAlfGridLayout* textLayout = ConstructListItemTextLayoutL( listItemLayout ); + + // Add name visual to text layout + CAlfTextVisual* nameVisual = CAlfTextVisual::AddNewL( *this, textLayout ); + nameVisual->SetTextL( aName ); + nameVisual->SetAlign( EAlfAlignHLeft, EAlfAlignVBottom ); +#ifdef ENABLE_TEXTSTYLES + nameVisual->SetTextStyle( iTextStyles[ETextStyleBig] ); +#endif + nameVisual->SetColor( KRgbWhite ); + + // Add description to text layout + CAlfTextVisual* descriptionVisual = CAlfTextVisual::AddNewL( *this, textLayout ); + descriptionVisual->SetTextL( aDescription ); + descriptionVisual->SetAlign( EAlfAlignHLeft, EAlfAlignVTop ); +#ifdef ENABLE_TEXTSTYLES + descriptionVisual->SetTextStyle( iTextStyles[ETextStyleSmall] ); +#endif + descriptionVisual->SetColor( KRgbGray ); + } + +// end of file