sorry for the late replying as i was busy in other things.
yes i have used other containers too. i have created 4 tabs but only the one tab is showing while i am running it. and attached is the screen-shot how it looks like.
this time i have commented the images in custom tab.
below is the Appui file:
Code:
#include "CustomTabControl.h";
void CCustomTabTestingAppUi::CreateAndShowTabsL()
{
///// custom tab construction
TRect tabRect(ClientRect());
//tabRect.iTl.iY+=40;
tabRect.iBr.iY=tabRect.iTl.iY+55;
iTabGroup=CCustomTabControl::NewL(tabRect,NULL);
//iTabGroup->SetContainerWindowL(*this);
iTabGroup->MakeVisible(ETrue);
iTabGroup->SetFocus(ETrue);
// CFbsBitmap* bitmap = iEikonEnv->CreateBitmapL( KTabBackgroundFileName, EMbmTabgroupGlobalnav_active );
// iTabGroup->SetFocusedBackgroundImage(bitmap);
// CFbsBitmap* bitmap1 = iEikonEnv->CreateBitmapL( KTabBackgroundFileName, EMbmTabgroupGlobalnav_inactive );
// iTabGroup->SetDeFocusedBackgroundImage(bitmap1);
/* CArrayPtr<CGulIcon>* tabiconArray = new( ELeave ) CAknIconArray(40);
CleanupStack::PushL( tabiconArray );
tabiconArray->AppendL( iEikonEnv->CreateIconL( KTabsFileName,EMbmTabsGlobalnav_contacts) );
tabiconArray->AppendL( iEikonEnv->CreateIconL( KTabsFileName,EMbmTabsGlobalnav_settings) );
tabiconArray->AppendL( iEikonEnv->CreateIconL( KTabsFileName,EMbmTabsGlobalnav_home)) ;
tabiconArray->AppendL( iEikonEnv->CreateIconL( KTabsFileName,EMbmTabsGlobalnav_communicate));
tabiconArray->AppendL( iEikonEnv->CreateIconL( KTabsFileName,EMbmTabsGlobalnav_convos));
CleanupStack::Pop();
*/
// Transfers the ownership
// iTabGroup->SetIconArray(tabiconArray);
CDesCArrayFlat* array = new (ELeave) CDesCArrayFlat(4);
CleanupStack::PushL(array);
array->AppendL(_L("First"));
array->AppendL(_L("Second"));
array->AppendL(_L("Third"));
array->AppendL(_L("Fourth"));
CleanupStack::Pop();
// Transfers the ownership
iTabGroup->SetTabTitleArray(array);
iTabGroup->SetDefaultTabByIndex(0);
AddToStackL(iTabGroup);
iTabGroup->DrawNow();
}
void CCustomTabTestingAppUi::InitializeContainersL()
{
CEikStatusPane *sp = ((CAknAppUi*)iEikonEnv->EikAppUi())->StatusPane();
sp->MakeVisible(EFalse);
CreateAndShowTabsL();
iIRHomeScreenView = CIRHomeScreenView::NewL();
AddViewL( iIRHomeScreenView );
SetDefaultViewL( *iIRHomeScreenView );
iFirstScreenContainerView = CFirstScreenContainerView::NewL();
CleanupStack::PushL( iFirstScreenContainerView );
AddViewL( iFirstScreenContainerView );
CleanupStack::Pop( iFirstScreenContainerView );
iFirstId = iFirstScreenContainerView->Id();
// SetActiveTabByViewId( iFirstScreenContainerView->Id() );
iSecondScreenContainerView = CSecondScreenContainerView::NewL();
CleanupStack::PushL( iSecondScreenContainerView );
AddViewL( iSecondScreenContainerView );
CleanupStack::Pop( iSecondScreenContainerView );
iSecondId = iSecondScreenContainerView->Id();
iThirdScreenContainerView = CThirdScreenContainerView::NewL();
CleanupStack::PushL( iThirdScreenContainerView );
AddViewL( iThirdScreenContainerView );
CleanupStack::Pop( iThirdScreenContainerView );
iThirdId = iThirdScreenContainerView->Id();
iFourthScreenContainerView = CFourthScreenContainerView::NewL();
CleanupStack::PushL( iFourthScreenContainerView );
AddViewL( iFourthScreenContainerView );
CleanupStack::Pop( iFourthScreenContainerView );
iFourthId = iFourthScreenContainerView->Id();
}
void CCustomTabTestingAppUi::HandleResourceChangeL( TInt aType )
{
CAknViewAppUi::HandleResourceChangeL( aType );
if ( aType==KEikDynamicLayoutVariantSwitch )
{
((CFirstScreenContainerView*) View( iFirstId))->HandleClientRectChange( );
((CSecondScreenContainerView*) View( iSecondId) )->HandleClientRectChange( );
((CFourthScreenContainerView*) View( iFourthId) )->HandleClientRectChange( );
((CThirdScreenContainerView*) View( iThirdId) )->HandleClientRectChange( );
}
}
TKeyResponse CCustomTabTestingAppUi::HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType )
{
if ( iTabGroup == NULL )
{
return EKeyWasNotConsumed;
}
if(iTabGroup->IsFocused())
{
TInt active = iTabGroup->ActiveTabIndex();
TInt count = iTabGroup->TabCount();
switch ( aKeyEvent.iCode )
{
case EKeyLeftArrow:
if ( active > 0 )
{
active--;
ActivateLocalViewL(TUid::Uid(iTabGroup->TabIdFromIndex(active)+1));
}
else
{
active=count-1;
ActivateLocalViewL(TUid::Uid(iTabGroup->TabIdFromIndex(active)+1));
}
return EKeyWasConsumed;
case EKeyRightArrow:
if( (active + 1) < count )
{
active++;
ActivateLocalViewL(TUid::Uid(iTabGroup->TabIdFromIndex(active)+1));
}
else
{
active=0;
ActivateLocalViewL(TUid::Uid(iTabGroup->TabIdFromIndex(active)+1));
}
return EKeyWasConsumed;
default:
return EKeyWasNotConsumed;
}
}
return EKeyWasNotConsumed;
}
void CCustomTabTestingAppUi::HandleViewDeactivation( const TVwsViewId& aViewIdToBeDeactivated,const TVwsViewId& aNewlyActivatedViewId )
{
CAknViewAppUi::HandleViewDeactivation(aViewIdToBeDeactivated,aNewlyActivatedViewId );
// [[[ begin generated region: do not modify [Generated Contents]
if ( aNewlyActivatedViewId.iAppUid == KUidMultiThreaded_SplashScreenApplication )
{
SetActiveTabByViewId( aNewlyActivatedViewId.iViewUid );
}
}
sshot.JPG