--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/classicui_pub/tsrc/bc/apps/S60_SDK3.0/bctestlist/src/bctestlistcolumnbasecase.cpp Wed Sep 01 12:16:19 2010 +0100
@@ -0,0 +1,442 @@
+/*
+* Copyright (c) 2006-2009 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: test case for list view and item drawer classes
+*
+*/
+
+
+
+
+
+
+
+
+
+#include <w32std.h>
+#include <eikenv.h>
+#include <aknlists.h>
+#include <barsread.h>
+#include <akndef.h>
+#include <AknsConstants.h>
+#include <eiktxlbm.h>
+#include <eikclbd.h>
+
+#include "bctestlistcolumnbasecase.h"
+#include "bctestlistcontainer.h"
+#include "bctestlist.hrh"
+#include <bctestlist.rsg>
+
+_LIT( KColumnBaseCreate, "Create CEikColumnListBox" );
+
+_LIT( KColumnListTest1, "CEikColumnListBox::EditItemL" );
+_LIT( KColumnListTest2, "CEikColumnListBox::GetColorUseListL" );
+_LIT( KColumnListTest3, "CEikColumnListBox::HandleResourceChange" );
+_LIT( KColumnListTest4, "CEikColumnListBox::FocusChanged" );
+_LIT( KColumnListTest5, "CAknColumnListBox::MakeViewClassInstanceL" );
+_LIT( KColumnListTest6, "CEikColumnListBox::MakeViewClassInstanceL" );
+
+_LIT( KColumnItemDrawerTest1, "CColumnListBoxItemDrawer::ClearAllPropertiesL" );
+_LIT( KColumnItemDrawerTest2, "CColumnListBoxItemDrawer::SetPropertiesL" );
+_LIT( KColumnItemDrawerTest3, "CColumnListBoxItemDrawer::ItemWidthInPixels" );
+_LIT( KColumnItemDrawerTest4, "CColumnListBoxItemDrawer::DrawItemMark" );
+
+_LIT( KColumnEditorTest1, "CEikColumnListBoxEditor::ConstructL" );
+_LIT( KColumnEditorTest2, "CEikColumnListBoxEditor::ItemText" );
+_LIT( KColumnEditorTest3, "CEikColumnListBoxEditor::UpdateModelL" );
+_LIT( KColumnEditorTest4, "CEikColumnListBoxEditor::Column" );
+_LIT( KColumnEditorTest5, "CEikColumnListBoxEditor::HandlePointerEventL" );
+
+_LIT( KColumnDataTest1, "CColumnListBoxData::SetSkinEnabledL" );
+_LIT( KColumnDataTest2, "CColumnListBoxData::SetSkinHighlightFrame" );
+_LIT( KColumnDataTest3, "CColumnListBoxData::EnableMarqueeL" );
+_LIT( KColumnDataTest4, "CColumnListBoxData::SetColumnHorizontalGapL" );
+_LIT( KColumnDataTest5, "CColumnListBoxData::SetColumnHorizontalGapL" );
+_LIT( KColumnDataTest6, "CColumnListBoxData::MakeColumnRect" );
+_LIT( KColumnDataTest7, "CColumnListBoxData::SetColumnFontForRowL" );
+_LIT( KColumnDataTest8, "CColumnListBoxData::SetMarqueeParams" );
+_LIT( KColumnDataTest9, "CColumnListBoxData::SetColumnUnderlined" );
+_LIT( KColumnDataTest10, "CColumnListBoxData::HighlightAnim" );
+_LIT( KColumnDataTest11, "CColumnListBoxData::SetHighlightAnimBackgroundDrawer" );
+_LIT( KColumnDataTest12, "CColumnListBoxData::AboutToDrawHighlightAnim" );
+_LIT( KColumnDataTest13, "CColumnListBoxData::ConstructLD" );
+_LIT( KColumnDataTest14, "CColumnListBoxData::DrawText" );
+_LIT( KColumnDataText, "Test text for DrawText" );
+_LIT( KClippedText, "Test text" );
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd static Constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestListColumnBaseCase* CBCTestListColumnBaseCase::NewL(
+ CBCTestListContainer* aContainer, CEikonEnv* aEikEnv )
+ {
+ CBCTestListColumnBaseCase* self = new( ELeave ) CBCTestListColumnBaseCase(
+ aContainer, aEikEnv );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// C++ default constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestListColumnBaseCase::CBCTestListColumnBaseCase( CBCTestListContainer* aContainer,
+ CEikonEnv* aEikEnv )
+ : CBCTestListBaseCase( aContainer, aEikEnv )
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CBCTestListColumnBaseCase::~CBCTestListColumnBaseCase()
+ {
+ delete iBCData;
+ }
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd Constructor
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::ConstructL()
+ {
+ BuildScriptL();
+
+ iBCData = new( ELeave ) CBCTestColumnListBoxData();
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::BuildScriptL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::BuildScriptL()
+ {
+ for ( TInt i=0; i <= EBCTestCmdOutline47 - EBCTestCmdOutline45; i++ )
+ {
+ AddTestL( LeftCBA, REP( Down, 6 ), KeyOK, TEND );
+ AddTestL( REP( Down, i ), KeyOK, TEND );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::RunL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::RunL( TInt aCmd )
+ {
+ if ( aCmd < EBCTestCmdOutline45 || aCmd > EBCTestCmdOutline47 )
+ {
+ return;
+ }
+ ReleaseCase();
+ PrepareCaseL( aCmd );
+ switch ( aCmd )
+ {
+ case EBCTestCmdOutline45:
+ TestColumnListL();
+ break;
+ case EBCTestCmdOutline46:
+ TestColumnItemDrawerAndEditorL();
+ break;
+ case EBCTestCmdOutline47:
+ TestColumnListDataL();
+ break;
+ default:
+ break;
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::PrepareCaseL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::PrepareCaseL( TInt )
+ {
+ iListBox = new( ELeave ) CAknSingleStyleListBox();
+ AssertNotNullL( iListBox, KColumnBaseCreate );
+ TInt resourceId = R_BCTESTLIST_SINGLE_1_ADD_RM;
+ SetListBoxFromResourceL( iListBox, resourceId );
+
+ iContainer->SetControl( iListBox );
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::ReleaseCaseL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::ReleaseCase()
+ {
+ iContainer->ResetControl();
+ iListBox = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::TestColumnListL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::TestColumnListL()
+ {
+ TInt maxLength = 3;
+ iListBox->EditItemL( 0, maxLength );
+ iListBox->StopEditingL( 0 );
+ AssertTrueL( ETrue, KColumnListTest1 );
+
+ TInt granularity = 4;
+ CArrayFixFlat<TCoeColorUse>* colorUseList = new( ELeave )
+ CArrayFixFlat<TCoeColorUse>( granularity );
+ CleanupStack::PushL( colorUseList );
+ iListBox->GetColorUseListL( *colorUseList );
+ AssertTrueL( ( colorUseList->Count() > 0 ), KColumnListTest2 );
+ colorUseList->Reset();
+ CleanupStack::PopAndDestroy( colorUseList );
+
+ iListBox->HandleResourceChange( KAknsMessageSkinChange );
+ iListBox->HandleResourceChange( KEikDynamicLayoutVariantSwitch );
+ AssertTrueL( ETrue, KColumnListTest3 );
+
+ iListBox->FocusChanged( EDrawNow );
+ iListBox->FocusChanged( ENoDrawNow );
+ AssertTrueL( ETrue, KColumnListTest4 );
+
+ CListBoxView* view = iListBox->MakeViewClassInstanceL();
+ AssertNotNullL( view, KColumnListTest5 );
+ delete view;
+
+ CEikColumnListBox* columnList = new( ELeave ) CEikColumnListBox();
+ CleanupStack::PushL( columnList );
+ TInt resourceId = R_BCTESTLIST_SINGLE_1_ADD_RM;
+ SetListBoxFromResourceL( columnList, resourceId );
+ view = columnList->MakeViewClassInstanceL();
+ AssertNotNullL( view, KColumnListTest6 );
+ delete view;
+ columnList->EditItemL( 0, 1 );
+ columnList->StopEditingL( EFalse );
+ CleanupStack::PopAndDestroy( columnList );
+
+ CEikColumnListBox* listBox = new( ELeave ) CEikColumnListBox();
+ CleanupStack::PushL( listBox );
+ listBox->ConstructL( iContainer );
+ view = listBox->MakeViewClassInstanceL();
+ delete view;
+ CleanupStack::PopAndDestroy( listBox );
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::TestColumnItemDrawerAndEditorL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::TestColumnItemDrawerAndEditorL()
+ {
+ // for column item drawer
+ CColumnListBoxItemDrawer* itemDrawer = iListBox->ItemDrawer();
+
+ itemDrawer->ClearAllPropertiesL();
+ AssertTrueL( ETrue, KColumnItemDrawerTest1 );
+
+ TListItemProperties itemProp;
+ itemProp.SetBold( ETrue );
+ itemProp.SetItalics( ETrue );
+ itemProp.SetUnderlined( ETrue );
+ itemProp.SetDimmed( ETrue );
+ itemProp.SetColor( KRgbGray );
+ itemProp.SetSeparatorAfter( ETrue );
+ itemDrawer->SetPropertiesL( 0, itemProp );
+ AssertTrueL( ETrue, KColumnItemDrawerTest2 );
+
+ TInt width = itemDrawer->ItemWidthInPixels( 0 );
+ AssertTrueL( ETrue, KColumnItemDrawerTest3 );
+
+ TPoint pt( 0, 0 );
+ itemDrawer->DrawItemMark( ETrue, EFalse, pt );
+ AssertTrueL( ETrue, KColumnItemDrawerTest4 );
+
+ // for column list editor
+ CBCTestColumnListBoxEditor* editor = new( ELeave )
+ CBCTestColumnListBoxEditor( iListBox->Model() );
+ CleanupStack::PushL( editor );
+
+ editor->ConstructL( 0 );
+ AssertTrueL( ETrue, KColumnEditorTest1 );
+
+ TPtrC text = editor->ItemText();
+ AssertTrueL( ETrue, KColumnEditorTest2 );
+
+ TBool update = editor->UpdateModelL();
+ AssertTrueL( ETrue, KColumnEditorTest3 );
+
+ TInt column = editor->Column();
+ AssertTrueL( ETrue, KColumnEditorTest4 );
+
+ TPointerEvent event;
+ event.iType = TPointerEvent::EButton1Down;
+ event.iModifiers = 0;
+ TPoint eventPos(0, 30);
+ event.iPosition = eventPos;
+ event.iParentPosition = eventPos;
+ editor->HandlePointerEventL( event );
+ AssertTrueL( ETrue, KColumnEditorTest5 );
+
+ CleanupStack::PopAndDestroy( editor );
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestListColumnBaseCase::TestColumnListDataL
+// ---------------------------------------------------------------------------
+//
+void CBCTestListColumnBaseCase::TestColumnListDataL()
+ {
+ CColumnListBoxData* data = iListBox->ItemDrawer()->ColumnData();
+ data->SetSkinEnabledL( ETrue );
+ AssertTrueL( ETrue, KColumnDataTest1 );
+
+ TAknsItemID id;
+ id.Set( KAknsIIDDefault );
+ data->SetSkinHighlightFrame( &id, &id );
+ AssertTrueL( ETrue, KColumnDataTest2 );
+
+ data->EnableMarqueeL( ETrue );
+ AssertTrueL( ETrue, KColumnDataTest3 );
+#ifdef __S60_32__
+ iListBox->SetCurrentItemIndex( 0 );//item 1
+
+ TUint32 tInt = data->CurrentItemTextWasClipped();
+ _LIT( KColumnDataTest35, "Test CurrentItemTextWasClipped() at long item" );
+ AssertTrueL( ETrue, KColumnDataTest35 );
+ iListBox->SetCurrentItemIndex( 1 );//item 2
+ tInt = data->CurrentItemTextWasClipped();
+ _LIT( KColumnDataTest36, "Test CurrentItemTextWasClipped() at short item" );
+ AssertTrueL( ETrue, KColumnDataTest36 );
+ iListBox->DrawNow();
+#endif //__S60_32__
+ TInt setGap = 5;
+ data->SetColumnHorizontalGapL( 0, setGap );
+ AssertTrueL( ETrue, KColumnDataTest4 );
+
+ TInt gap = data->ColumnHorizontalGap( 0 );
+ AssertIntL( setGap, gap, KColumnDataTest5 );
+
+ TRect rect = iContainer->Rect();
+ rect.iBr.iX /= 2;
+ TBool setRect = data->MakeColumnRect( 0, rect );
+ AssertTrueL( setRect, KColumnDataTest6 );
+
+ data->SetColumnFontForRowL( 0, 0, iEikEnv->NormalFont() );
+ AssertTrueL( setRect, KColumnDataTest7 );
+
+ data->SetMarqueeParams( 1, 6, 1000000 );
+ data->SetMarqueeParams( 2, 8, 1000000, 100000 );
+ AssertTrueL( setRect, KColumnDataTest8 );
+
+ TBitFlags32 flags;
+ data->SetColumnUnderlined( flags );
+ AssertTrueL( setRect, KColumnDataTest9 );
+
+ data->HighlightAnim();
+ AssertTrueL( setRect, KColumnDataTest10 );
+
+ data->SetHighlightAnimBackgroundDrawer( &iDrawer );
+ AssertTrueL( setRect, KColumnDataTest11 );
+
+ data->AboutToDrawHighlightAnim();
+ AssertTrueL( setRect, KColumnDataTest12 );
+
+ iBCData->TestConstructLD( id );
+ AssertTrueL( setRect, KColumnDataTest13 );
+
+ iContainer->ActivateGc();
+ CWindowGc& gc = iContainer->SystemGc();
+ gc.UseFont( iEikEnv->NormalFont() );
+
+ rect = iContainer->Rect();
+ rect.iBr.iX = rect.iTl.iX +
+ iListBox->ItemDrawer()->ItemCellSize().iWidth;
+ rect.iBr.iY = rect.iTl.iY +
+ iListBox->ItemDrawer()->ItemCellSize().iHeight;
+ iBCData->TestDrawText( gc, rect, KColumnDataText, KClippedText,
+ 0, CGraphicsContext::ELeft, *iEikEnv->NormalFont(), ETrue, EFalse );
+ AssertTrueL( ETrue, KColumnDataTest14 );
+
+ iContainer->DeactivateGc();
+ }
+
+// ======== MEMBER FUNCTIONS ========
+// CBCTestColumnListBoxData
+
+// ---------------------------------------------------------------------------
+// Constructor
+// ---------------------------------------------------------------------------
+//
+CBCTestColumnListBoxData::CBCTestColumnListBoxData()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CBCTestColumnListBoxData::~CBCTestColumnListBoxData()
+ {
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestColumnListBoxData::ConstructLD
+// ---------------------------------------------------------------------------
+//
+void CBCTestColumnListBoxData::TestConstructLD(
+ const TAknsItemID& aAnimationIID )
+ {
+ CColumnListBoxData::ConstructLD( aAnimationIID );
+ }
+
+// ---------------------------------------------------------------------------
+// CBCTestColumnListBoxData::TestDrawText
+// ---------------------------------------------------------------------------
+//
+void CBCTestColumnListBoxData::TestDrawText(
+ CWindowGc& aGc, const TRect& aTextRect,
+ const TDesC& aText, const TDesC& aClippedText, const TInt aBaselineOffset,
+ const CGraphicsContext::TTextAlign aAlign, const CFont& aFont,
+ const TBool aHighlight, const TBool aIsTextClipped )
+ {
+ DrawText( aGc, aTextRect, aText, aClippedText,
+ aBaselineOffset, aAlign, aFont, aHighlight, aIsTextClipped );
+ }
+
+// ======== MEMBER FUNCTIONS ========
+// TBCTestListBoxAnimBgDrawer
+
+// ---------------------------------------------------------------------------
+// TBCTestListBoxAnimBgDrawer::DrawHighlightAnimBackground
+// ---------------------------------------------------------------------------
+//
+TBool TBCTestListBoxAnimBgDrawer::
+ DrawHighlightAnimBackground( CFbsBitGc& ) const
+ {
+ return ETrue;
+ }
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CBCTestListBoxAnimBgDrawer::DrawHighlightAnimBackground
+// ---------------------------------------------------------------------------
+//
+CBCTestColumnListBoxEditor::CBCTestColumnListBoxEditor(
+ MListBoxModel* aModel ): CEikColumnListBoxEditor( aModel )
+ {
+ }