diff -r 40a3f856b14d -r 41a7f70b3818 phoneapp/phoneuivoipextension/src/cphonetransferdialercontroller.cpp --- a/phoneapp/phoneuivoipextension/src/cphonetransferdialercontroller.cpp Thu Aug 19 09:54:27 2010 +0300 +++ b/phoneapp/phoneuivoipextension/src/cphonetransferdialercontroller.cpp Tue Aug 31 15:14:29 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2008, 2009 Nokia Corporation and/or its subsidiary(-ies). +* 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" @@ -19,17 +19,13 @@ // INCLUDES #include +#include #include -#include #include - -#include -#include -#include -#include // For KDC_APP_BITMAP_DIR - +#include "phoneresourceids.h" #include "phoneui.pan" #include "phonelogger.h" +#include #include "cphonetransferdialercontroller.h" #include "cphonemainresourceresolver.h" #include "phonerssvoip.h" @@ -40,36 +36,12 @@ // CONSTANTS _LIT ( KPhoneMifFileName, "phoneui.mif" ); -// Number of buttons -const TInt KButtonCount = 2; - -class TPhoneDialerToolbarButton - { -public: - TInt iIconIndex; - TInt iMaskIndex; - TInt iCommandId; - }; - -const TPhoneDialerToolbarButton bArray[KButtonCount] = - { - { EMbmPhoneuiQgn_indi_button_send_dtmf, - EMbmPhoneuiQgn_indi_button_send_dtmf_mask, - EPhoneCmdTransferDialerOk - }, - { EMbmPhoneuiQgn_indi_dialer_contacts, - EMbmPhoneuiQgn_indi_dialer_contacts_mask, - EPhoneCmdTransferDialerSearch - } - }; - // ================= MEMBER FUNCTIONS ======================= // C++ default constructor can NOT contain any code, that // might leave. // CPhoneTransferDialerController::CPhoneTransferDialerController() - : CPhoneDialerController( NULL, *CCoeEnv::Static() ) { } @@ -99,6 +71,29 @@ } // ----------------------------------------------------------- +// CPhoneTransferDialerController::Initialize +// ----------------------------------------------------------- +// +void CPhoneTransferDialerController::InitializeL( CAknToolbar& aToolbar ) + { + __LOGMETHODSTARTEND( PhoneUIVoIPExtension, + "CPhoneTransferDialerController::InitializeL()"); + + if ( !iIsInitialized ) + { + __PHONELOG1( + EAll, + PhoneUIVoIPExtension, + "Toolbar control count:=%d", + aToolbar.CountComponentControls()); + iToolbar = &aToolbar; + iIsInitialized = ETrue; + } + + iNumberEntryIsEmpty = ETrue; + } + +// ----------------------------------------------------------- // CPhoneTransferDialerController::CbaResourceId // ----------------------------------------------------------- // @@ -113,7 +108,7 @@ // TInt CPhoneTransferDialerController::MenuResourceId() const { - if ( !iNumberAvailable ) + if ( iNumberEntryIsEmpty ) { return EPhoneVoIPTransferDialerNumberEntryEmptyMenubar; } @@ -135,138 +130,77 @@ { iNumberEntryPromptText = StringLoader::LoadL( CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( EPhoneVoIPTransferAddress ), &iCoeEnv ); + ResolveResourceID( EPhoneVoIPTransferAddress ) ); } return *iNumberEntryPromptText; } -// --------------------------------------------------------------------------- -// GetButtonData -// --------------------------------------------------------------------------- +// ----------------------------------------------------------- +// CPhoneTransferDialerController::HandleNumberEntryIsEmpty +// ----------------------------------------------------------- // -TInt CPhoneTransferDialerController::GetButtonData( TButtonIndex aIndex, RPointerArray& aData ) const +void CPhoneTransferDialerController::HandleNumberEntryIsEmpty( TBool aIsEmpty ) { - TInt err = KErrNone; - - TInt arrayIdx = KErrNotFound; - if ( aIndex == ECallButton ) - { - arrayIdx = 0; - } - else if ( aIndex == EPhonebookButton ) - { - arrayIdx = 1; - } - - if ( arrayIdx >= 0 ) - { - const TPhoneDialerToolbarButton& arrItem = bArray[ arrayIdx ]; - CButtonData* btn = NULL; - TRAP( err, btn = CreateButtonDataL( arrItem.iCommandId, - arrItem.iIconIndex, - arrItem.iMaskIndex ) ); - if ( !err ) - { - err = aData.Append( btn ); - if ( err ) - { - delete btn; - } - } - } - else - { - // Trust base class on other buttons (i.e. the clear button) - err = CPhoneDialerController::GetButtonData( aIndex, aData ); - } - - return err; + __LOGMETHODSTARTEND( PhoneUIVoIPExtension, + "CPhoneTransferDialerController::HandleNumberEntryIsEmpty()"); + __ASSERT_DEBUG( iToolbar, Panic( EPhoneCtrlInvariant ) ); + iToolbar->SetItemDimmed( EPhoneCmdTransferDialerOk, aIsEmpty, EFalse ); + iToolbar->SetItemDimmed( EPhoneCmdTransferDialerSearch, !aIsEmpty, EFalse ); + iToolbar->SetItemDimmed( EPhoneDialerCmdClear, aIsEmpty, EFalse ); + iNumberEntryIsEmpty = aIsEmpty; } -// --------------------------------------------------------------------------- -// ButtonState -// --------------------------------------------------------------------------- +// ----------------------------------------------------------- +// CPhoneTransferDialerController::ShowButtons +// ----------------------------------------------------------- // -TInt CPhoneTransferDialerController::ButtonState( TButtonIndex aIndex ) const +void CPhoneTransferDialerController::ShowButtons( TBool aShow ) { - // Out button have only one state. Trust base class on clear button - if ( aIndex == ECallButton || aIndex == EPhonebookButton ) + __LOGMETHODSTARTEND( PhoneUIVoIPExtension, + "CPhoneTransferDialerController::ShowButtons()"); + __ASSERT_DEBUG( iToolbar, Panic( EPhoneCtrlInvariant ) ); + if ( aShow ) { - return 0; - } - else - { - return CPhoneDialerController::ButtonState( aIndex ); + iToolbar->SetItemDimmed( EPhoneCmdTransferDialerOk, ETrue, EFalse ); + iToolbar->SetItemDimmed( EPhoneCmdTransferDialerSearch, EFalse, EFalse ); + iToolbar->SetItemDimmed( EPhoneDialerCmdClear, ETrue, EFalse ); } } // --------------------------------------------------------------------------- -// ButtonDimmed +// PhoneTransferDialerController::CreateButtonLC // --------------------------------------------------------------------------- // -TBool CPhoneTransferDialerController::ButtonDimmed( TButtonIndex aIndex ) const - { - TBool dimmed = EFalse; - - // Ok is dimmed when there's no number. Search is dimmed when there is - // a number. Trust base class on clear button. - if ( aIndex == ECallButton ) - { - dimmed = !iNumberAvailable; - } - else if ( aIndex == EPhonebookButton ) - { - dimmed = iNumberAvailable; - } - else - { - dimmed = CPhoneDialerController::ButtonDimmed( aIndex ); - } - return dimmed; - } - -// --------------------------------------------------------------------------- -// EasyDialingAllowed -// --------------------------------------------------------------------------- -// -TBool CPhoneTransferDialerController::EasyDialingAllowed() const - { - return EFalse; - } - -// --------------------------------------------------------------------------- -// PhoneTransferDialerController::CreateButtonDataL -// --------------------------------------------------------------------------- -// -MPhoneDialerController::CButtonData* CPhoneTransferDialerController::CreateButtonDataL( - TInt aCommandId, - TInt aNormalIconId, - TInt aNormalMaskId ) const - { +CAknButton* CPhoneTransferDialerController::CreateButtonLC( + TInt aNormalIconId, + TInt aNormalMaskId, + const TDesC& aTooltipText, + const TAknsItemID& aSkinIconId ) const + { __LOGMETHODSTARTEND( PhoneUIVoIPExtension, - "CPhoneTransferDialerController::CreateButtonDataL()"); - - // Load tooltip text. - HBufC* tooltipText = GetTooltipTextL( aCommandId ); - CleanupStack::PushL( tooltipText ); - - // Load icon + "CPhoneTransferDialerController::CreateButtonLC()"); TFileName mifPath( KDriveZ ); mifPath.Append( KDC_APP_BITMAP_DIR ); mifPath.Append( KPhoneMifFileName ); - - TAknsItemID skinId = SkinId( aNormalIconId ); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - CGulIcon* icon = AknsUtils::CreateGulIconL( skin, skinId, mifPath, - aNormalIconId, aNormalMaskId ); - CleanupStack::PushL( icon ); - - CButtonData* btnData = new (ELeave) CButtonData( aCommandId, icon, tooltipText ); - CleanupStack::Pop( icon ); - CleanupStack::Pop( tooltipText ); - - return btnData; + + CAknButton* button = CAknButton::NewLC( + mifPath, + aNormalIconId, + aNormalMaskId, + -1, -1, // dimmed + -1, -1, // pressed + -1, -1, // hover + KNullDesC, + aTooltipText, // help + 0, // flags + 0, // state flags + aSkinIconId ); + + button->SetFocusing( EFalse ); + button->SetBackground( iToolbar ); + + return button; } // --------------------------------------------------------------------------- @@ -290,16 +224,13 @@ resourceId = R_VOIP_DIALER_TOOLTIP_SEARCH; break; default: + tooltip = KNullDesC().Alloc(); break; } if ( resourceId ) { - tooltip = StringLoader::LoadL( resourceId, &iCoeEnv ); - } - else - { - tooltip = KNullDesC().AllocL(); + tooltip = StringLoader::LoadL( resourceId, CCoeEnv::Static() ); } return tooltip; } @@ -308,22 +239,9 @@ // CPhoneTransferDialerController::SkinId // --------------------------------------------------------------------------- // -TAknsItemID CPhoneTransferDialerController::SkinId( TInt aIconIndex ) const +TAknsItemID CPhoneTransferDialerController::SkinId( TInt /*aIconIndex*/ ) const { TAknsItemID skinId; - - switch ( aIconIndex ) - { - case EMbmPhoneuiQgn_indi_button_send_dtmf: - skinId = KAknsIIDQgnIndiButtonSendDtmf; - break; - case EMbmPhoneuiQgn_indi_dialer_contacts: - skinId = KAknsIIDQgnIndiDialerContacts; - break; - default: - skinId = KAknsIIDNone; - break; - } - + skinId = KAknsIIDNone; return skinId; }