diff -r 65a3ef1d5bd0 -r f742655b05bf voipplugins/accountcreationplugin/src/acpproviderspecificcontainer.cpp --- a/voipplugins/accountcreationplugin/src/acpproviderspecificcontainer.cpp Thu Aug 19 09:45:22 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,447 +0,0 @@ -/* -* Copyright (c) 2007-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: Implements CAcpProviderSpecificContainer methods -* -*/ - - -#include -#include -#include -// SKIN: includes -#include -#include -#include - -#include "acpproviderspecificcontainer.h" -#include "accountcreationpluginlogger.h" -#include "accountcreationpluginconstants.h" -#include "acpcontroller.h" - -const TInt KComponentControlCount = 6; -const TInt KScrollMin = -200; -const TInt KScrollMax = 10; -const TInt KEight = 8; -const TInt KPositionX = 10; -const TInt KScrollSpeed = 10; - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::CAcpProviderSpecificContainer -// --------------------------------------------------------------------------- -// -CAcpProviderSpecificContainer::CAcpProviderSpecificContainer( - CAcpController& aController ) - : iController( aController ), iScrollY( KScrollMax ) - { - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::ConstructL -// --------------------------------------------------------------------------- -// -void CAcpProviderSpecificContainer::ConstructL( const TRect& aRect ) - { - ACPLOG( "CAcpProviderSpecificContainer::ConstructL begin" ); - - CreateWindowL(); - - // Skin background. - //SKIN: create the skin context for our control - iBgContext = CAknsBasicBackgroundControlContext::NewL( - KAknsIIDQsnBgAreaMain, aRect, ETrue ); - - // Provider. - TInt index = iController.ActiveIndex(); - TPtrC providerName = iController.ProviderNameFromIndexL( index ); - TPtrC providerType = iController.ProviderTypeFromIndexL( index ); - TPtrC providerDescription = - iController.ProviderDescriptionFromIndexL( index ); - - // Name label. - iLabel = new (ELeave) CEikLabel; - iLabel->SetContainerWindowL( *this ); - HBufC* typeText; - typeText = StringLoader::LoadLC( R_SERVTAB_CD_DETAIL_NAME ); - iLabel->SetTextL( *typeText ); - CleanupStack::PopAndDestroy( typeText ); - - // Type label. - iLabel2 = new (ELeave) CEikLabel; - iLabel2->SetContainerWindowL( *this ); - HBufC* typeText2; - typeText2 = StringLoader::LoadLC( R_SERVTAB_CD_DETAIL_TYPE ); - iLabel2->SetTextL( *typeText2 ); - CleanupStack::PopAndDestroy( typeText2 ); - - // Description label - iLabel3 = new (ELeave) CEikLabel; - iLabel3->SetContainerWindowL( *this ); - HBufC* typeText3; - typeText3 = StringLoader::LoadLC( R_SERVTAB_CD_DETAIL_DESCRIPTION ); - iLabel3->SetTextL( *typeText3 ); - CleanupStack::PopAndDestroy( typeText3 ); - - // Edwin for name. - TResourceReader reader; - iCoeEnv->CreateResourceReaderLC( reader, R_ACP_TYPE ); - iEdwin = new (ELeave) CEikEdwin; - iEdwin->SetContainerWindowL( *this ); - iEdwin->ConstructFromResourceL( reader ); - CleanupStack::PopAndDestroy(); - if ( !providerName.Length() ) - { - HBufC* typeText6; - typeText6 = StringLoader::LoadLC( R_SERVTAB_CD_VALUE_UNDEFINED ); - iEdwin->SetTextL( typeText6 ); - CleanupStack::PopAndDestroy( typeText6 ); - } - else - { - iEdwin->SetTextL( &providerName ); - } - - // Edwin for type. - TResourceReader reader2; - iCoeEnv->CreateResourceReaderLC( reader2, R_ACP_TYPE ); - iEdwin2 = new (ELeave) CEikEdwin; - iEdwin2->SetContainerWindowL( *this ); - iEdwin2->ConstructFromResourceL( reader2 ); - CleanupStack::PopAndDestroy(); - if ( !providerType.Length() ) - { - HBufC* typeText7; - typeText7 = StringLoader::LoadLC( R_SERVTAB_CD_VALUE_UNDEFINED ); - iEdwin2->SetTextL( typeText7 ); - CleanupStack::PopAndDestroy( typeText7 ); - } - else - { - iEdwin2->SetTextL( &providerType ); - } - - // Edwin for description. - TResourceReader reader3; - iCoeEnv->CreateResourceReaderLC( reader3, R_ACP_TYPE ); - iEdwin3 = new (ELeave) CEikEdwin; - iEdwin3->SetContainerWindowL( *this ); - iEdwin3->ConstructFromResourceL( reader3 ); - CleanupStack::PopAndDestroy(); - if ( !providerDescription.Length() ) - { - HBufC* typeText8; - typeText8 = StringLoader::LoadLC( R_SERVTAB_CD_VALUE_UNDEFINED ); - iEdwin3->SetTextL( typeText8 ); - CleanupStack::PopAndDestroy( typeText8 ); - } - else - { - iEdwin3->SetTextL( &providerDescription ); - } - - // Get label colours from skin. - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - TRgb color( 0, 0, 0 ); - - AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors, - EAknsCIQsnTextColorsCG6 ); - iLabel->OverrideColorL( EColorLabelText, color ); - iLabel->SetEmphasis( CEikLabel::ENoEmphasis ); - iLabel2->OverrideColorL(EColorLabelText, color ); - iLabel2->SetEmphasis( CEikLabel::ENoEmphasis ); - iLabel3->OverrideColorL(EColorLabelText, color ); - iLabel3->SetEmphasis( CEikLabel::ENoEmphasis ); - - CCharFormatLayer* formatLayer = CEikonEnv::NewDefaultCharFormatLayerL(); - CleanupStack::PushL( formatLayer ); - - TCharFormat format; - TCharFormatMask formatMask; - formatLayer->Sense( format, formatMask ); - format.iFontPresentation.iTextColor = color; - formatMask.SetAttrib( EAttColor ); - formatLayer->SetL( format, formatMask ); - - iEdwin->SetCharFormatLayer( formatLayer->CloneL() ); - iEdwin2->SetCharFormatLayer( formatLayer->CloneL() ); - - CleanupStack::Pop( formatLayer ); - iEdwin3->SetCharFormatLayer( formatLayer ); - - SetRect( aRect ); - ActivateL(); - - ACPLOG( "CAcpProviderSpecificContainer::ConstructL end" ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::NewL -// --------------------------------------------------------------------------- -// -CAcpProviderSpecificContainer* CAcpProviderSpecificContainer::NewL( - CAcpController& aController, - const TRect& aRect ) - { - CAcpProviderSpecificContainer* self = - CAcpProviderSpecificContainer::NewLC( aController, aRect ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::NewLC -// --------------------------------------------------------------------------- -// -CAcpProviderSpecificContainer* CAcpProviderSpecificContainer::NewLC( - CAcpController& aController, - const TRect& aRect ) - { - CAcpProviderSpecificContainer* self = - new ( ELeave ) CAcpProviderSpecificContainer( aController ); - CleanupStack::PushL( self ); - self->ConstructL( aRect ); - return self; - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::~CAcpProviderSpecificContainer -// --------------------------------------------------------------------------- -// -CAcpProviderSpecificContainer::~CAcpProviderSpecificContainer() - { - ACPLOG( - "CAcpProviderSpecificContainer::~CAcpProviderSpecificContainer begin" ); - - delete iLabel; - delete iLabel2; - delete iLabel3; - delete iEdwin; - delete iEdwin2; - delete iEdwin3; - delete iBgContext; - - ACPLOG( - "CAcpProviderSpecificContainer::~CAcpProviderSpecificContainer end" ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::ComponentControl -// From class CoeControl. -// --------------------------------------------------------------------------- -// -CCoeControl* CAcpProviderSpecificContainer::ComponentControl( - TInt aIndex ) const - { - const TInt KZeroCase = 0; - const TInt KOneCase = 1; - const TInt KTwoCase = 2; - const TInt KThreeCase = 3; - const TInt KFourCase = 4; - const TInt KFiveCase = 5; - - switch ( aIndex ) - { - case KZeroCase: - return iLabel; - case KOneCase: - return iLabel2; - case KTwoCase: - return iLabel3; - case KThreeCase: - return iEdwin; - case KFourCase: - return iEdwin2; - case KFiveCase: - return iEdwin3; - default: - return NULL; - } - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::MopSupplyObject -// From class CCoeControl. -// SKIN: pass context to child controls. -// --------------------------------------------------------------------------- -// -TTypeUid::Ptr CAcpProviderSpecificContainer::MopSupplyObject( TTypeUid aId ) - { - if ( iBgContext ) - { - return MAknsControlContext::SupplyMopObject( aId, iBgContext ); - } - return CCoeControl::MopSupplyObject( aId ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::Draw -// From class CoeControl. -// --------------------------------------------------------------------------- -// -void CAcpProviderSpecificContainer::Draw( const TRect& aRect ) const - { - // Get the standard graphics context. - CWindowGc& gc = SystemGc(); - - // Draw skin backgound. - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); - AknsDrawUtils::Background( skin, cc, this, gc, aRect ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::CountComponentControls -// From class CoeControl. -// --------------------------------------------------------------------------- -// -TInt CAcpProviderSpecificContainer::CountComponentControls() const - { - return KComponentControlCount; - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::SizeChanged -// From class CoeControl. -// --------------------------------------------------------------------------- -// -void CAcpProviderSpecificContainer::SizeChanged() - { - RepositionLabels(); - - // Redraw the control. - DrawDeferred(); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::HandleResourceChange -// From class CCoeControl. -// Called by framework when layout is changed. -// --------------------------------------------------------------------------- -// -void CAcpProviderSpecificContainer::HandleResourceChange( TInt aType ) - { - CCoeControl::HandleResourceChange( aType ); - - // ***************************** - // ADDED FOR SCALABLE UI SUPPORT - // ***************************** - if ( KEikDynamicLayoutVariantSwitch == aType ) - { - TRect rect; - AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect ); - SetRect( rect ); - iBgContext->SetRect( rect ); - } - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::ScrollText -// Scrolls text labels up or down. -// --------------------------------------------------------------------------- -// -void CAcpProviderSpecificContainer::ScrollText( TInt aDelta ) - { - ACPLOG( "CAcpProviderSpecificContainer::ScrollText begin" ); - - iScrollY += aDelta; - if ( iScrollY > KScrollMax ) - { - iScrollY = KScrollMax; - } - else if ( iScrollY < KScrollMin ) - { - iScrollY = KScrollMin; - } - - RepositionLabels(); - - // Redraw the control. - DrawDeferred(); - - ACPLOG( "CAcpProviderSpecificContainer::ScrollText end" ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::RepositionLabels -// --------------------------------------------------------------------------- -// -void CAcpProviderSpecificContainer::RepositionLabels() - { - const TInt KWidthX = Rect().Width() - KPositionX; - const TInt KDeltaY = Rect().Height() / KEight; - - TInt yPos = iScrollY; - iLabel->SetExtent( TPoint( KPositionX, yPos ), - TSize( KWidthX, KDeltaY ) ); - yPos += KDeltaY; - - iEdwin->SetExtent( TPoint( KPositionX, yPos ), - TSize( KWidthX, KDeltaY ) ); - yPos += KDeltaY; - - iLabel2->SetExtent( TPoint( KPositionX, yPos ), - TSize( KWidthX, KDeltaY ) ); - yPos += KDeltaY; - - iEdwin2->SetExtent( TPoint( KPositionX, yPos ), - TSize( KWidthX, KDeltaY ) ); - yPos += KDeltaY; - - iLabel3->SetExtent( TPoint( KPositionX, yPos ), - TSize( KWidthX, KDeltaY ) ); - yPos += KDeltaY; - - iEdwin3->SetExtent( TPoint( KPositionX, yPos ), - TSize( KWidthX, Rect().Height() ) ); - } - -// --------------------------------------------------------------------------- -// CAcpProviderSpecificContainer::OfferKeyEventL -// Handles key events. -// --------------------------------------------------------------------------- -// -TKeyResponse CAcpProviderSpecificContainer::OfferKeyEventL( - const TKeyEvent& aKeyEvent, TEventCode aType ) - { - ACPLOG( "CAcpProviderSpecificContainer::OfferKeyEventL begin" ); - - TKeyResponse ret = EKeyWasNotConsumed; - - switch ( aKeyEvent.iScanCode ) - { - case EStdKeyUpArrow: - if ( aType != EEventKeyUp ) - { - ScrollText( KScrollSpeed ); - ret = EKeyWasConsumed; - } - break; - - case EStdKeyDownArrow: - if ( aType != EEventKeyUp ) - { - ScrollText( -KScrollSpeed ); - ret = EKeyWasConsumed; - } - break; - - default: - break; - } - - ACPLOG( "CAcpProviderSpecificContainer::OfferKeyEventL end" ); - return ret; - } - - -// End of file.