phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp
branchRCL_3
changeset 62 5266b1f337bd
child 81 c26cc2a7c548
equal deleted inserted replaced
61:41a7f70b3818 62:5266b1f337bd
       
     1 /*
       
     2 * Copyright (c) 2007 - 2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Handles the updating of toolbar buttons
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 #include <eikappui.h>
       
    20 #include <eikenv.h>
       
    21 #include <eikapp.h>
       
    22 #include <eikcolib.h>
       
    23 #include <gulicon.h>
       
    24 #include <akntoolbar.h>
       
    25 #include <aknbutton.h>
       
    26 #include <StringLoader.h>
       
    27 #include <phoneui.rsg>
       
    28 #include <pevirtualengine.h>
       
    29 #include <data_caging_path_literals.hrh>
       
    30 #include <phoneappcommands.hrh>
       
    31 #include <phoneui.mbg>
       
    32 
       
    33 #include "tphonecmdparamincallindicatordata.h"
       
    34 #include "cphonetoolbarcontroller.h"
       
    35 #include "phoneui.hrh"
       
    36 #include "phonerssbase.h"
       
    37 #include "tphonecmdparaminteger.h"
       
    38 #include "tphonecmdparamboolean.h"
       
    39 #include "phonelogger.h"
       
    40 
       
    41 
       
    42 _LIT ( KPhoneMifFileName, "phoneui.mif" );
       
    43 _LIT( KToolbarButtonEmptyStr, "" );
       
    44 
       
    45 const TInt KNumberOfButtons = 6;
       
    46 struct SPhoneToolbarButton
       
    47     {
       
    48     TInt iIconIndex;
       
    49     TInt iMaskIndex;
       
    50     TInt iCommandId;
       
    51     };
       
    52 
       
    53 const SPhoneToolbarButton bArray[KNumberOfButtons] =
       
    54         { 
       
    55             {  EMbmPhoneuiQgn_indi_dialer_contacts,
       
    56                EMbmPhoneuiQgn_indi_dialer_contacts_mask,
       
    57                EPhoneInCallCmdActivatEPhonebook
       
    58             },
       
    59             {  EMbmPhoneuiQgn_indi_tb_microphone_mute,
       
    60 	           EMbmPhoneuiQgn_indi_tb_microphone_mute_mask,
       
    61 	           EPhoneInCallCmdMute
       
    62 	        }, 
       
    63 	        {  EMbmPhoneuiQgn_indi_tb_microphone_unmute,
       
    64 	           EMbmPhoneuiQgn_indi_tb_microphone_unmute_mask,
       
    65 	           EPhoneInCallCmdUnmute
       
    66 	        },
       
    67 	        {  EMbmPhoneuiQgn_indi_tb_ihf_on,
       
    68 	           EMbmPhoneuiQgn_indi_tb_ihf_on_mask,
       
    69 	           EPhoneInCallCmdActivateIhf
       
    70 	        },
       
    71 	        {  EMbmPhoneuiQgn_indi_tb_handset,
       
    72 	           EMbmPhoneuiQgn_indi_tb_handset_mask,
       
    73 	           EPhoneInCallCmdHandset
       
    74 	        },
       
    75 	        {  EMbmPhoneuiQgn_indi_tb_bthf,
       
    76                EMbmPhoneuiQgn_indi_tb_bthf,
       
    77                EPhoneInCallCmdBtHandsfree
       
    78            }
       
    79         }; 
       
    80 
       
    81 
       
    82 // ======== MEMBER FUNCTIONS ========
       
    83 
       
    84 // ---------------------------------------------------------------------------
       
    85 // Constructor
       
    86 // ---------------------------------------------------------------------------
       
    87 //
       
    88 CPhoneToolbarController::CPhoneToolbarController( CCoeEnv& aCoeEnv ):
       
    89     iCoeEnv ( aCoeEnv )   
       
    90     {
       
    91     }
       
    92 
       
    93 // ---------------------------------------------------------------------------
       
    94 // Second phase constructor
       
    95 // ---------------------------------------------------------------------------
       
    96 //
       
    97 void CPhoneToolbarController::ConstructL()
       
    98     {
       
    99     if ( !iToolbar )
       
   100         {
       
   101         iToolbar = CAknToolbar::NewL( R_PHONEUI_TOOLBAR );
       
   102         }
       
   103   
       
   104     CEikAppUiFactory* appUiFactory =
       
   105         static_cast<CEikAppUiFactory*>( CEikonEnv::Static()->AppUiFactory() );  
       
   106     appUiFactory->SetViewFixedToolbar( iToolbar );
       
   107     
       
   108     if( iToolbar )
       
   109         {
       
   110         iToolbar->SetToolbarObserver( 
       
   111                         static_cast<MAknToolbarObserver*>( this ));  
       
   112         iToolbar->SetWithSliding( EFalse );
       
   113         iToolbar->SetCloseOnAllCommands( EFalse );
       
   114         iToolbar->SetFocusing( EFalse );
       
   115         
       
   116         CAknButton* button( NULL );
       
   117 
       
   118         for( TInt i = 0; i < KNumberOfButtons; i++ )
       
   119             {
       
   120             TAknsItemID skinId = GetSkinIdL( bArray[i].iCommandId );
       
   121             // Load tooltip text.
       
   122             HBufC* tooltipText;
       
   123             GetTooltipTextL ( bArray[i].iCommandId, tooltipText );  
       
   124             CleanupStack::PushL( tooltipText );      
       
   125          
       
   126             button = CreateButtonLC(
       
   127                 bArray[i].iIconIndex, 
       
   128                 bArray[i].iMaskIndex, 
       
   129                 *tooltipText, 
       
   130                 skinId,
       
   131                 bArray[i].iCommandId );
       
   132             // Takes ownership of the button                    
       
   133             iToolbar->AddItemL( button, EAknCtButton, bArray[i].iCommandId,0 );
       
   134            
       
   135             CleanupStack::Pop( button );
       
   136             CleanupStack::PopAndDestroy( tooltipText );
       
   137             }
       
   138         }
       
   139     }
       
   140     
       
   141 // ---------------------------------------------------------------------------
       
   142 // CreateButtonL
       
   143 // ---------------------------------------------------------------------------
       
   144 //
       
   145 CAknButton* CPhoneToolbarController::CreateButtonLC( 
       
   146     TInt aNormalIconId,
       
   147     TInt aNormalMaskId,
       
   148     const TDesC& aTooltipText,
       
   149     const TAknsItemID& aSkinIconId,
       
   150     TInt /*aCommand*/ )
       
   151     {
       
   152     TFileName mifPath( KDriveZ );
       
   153     mifPath.Append( KDC_APP_BITMAP_DIR );
       
   154     mifPath.Append( KPhoneMifFileName );
       
   155 
       
   156    
       
   157     CAknButton* button = CAknButton::NewLC( 
       
   158         mifPath,
       
   159         aNormalIconId,
       
   160         aNormalMaskId,
       
   161         -1, -1, // dimmed
       
   162         -1, -1, // pressed
       
   163         -1, -1, // hover
       
   164         KToolbarButtonEmptyStr(),
       
   165         aTooltipText, // help
       
   166         0, // flags
       
   167         0, // state flags
       
   168         aSkinIconId );
       
   169                                      
       
   170     button->SetFocusing( EFalse );
       
   171     button->SetBackground( iToolbar );
       
   172 
       
   173     return button;
       
   174     }
       
   175     
       
   176 // ---------------------------------------------------------------------------
       
   177 // Static constructor
       
   178 // ---------------------------------------------------------------------------
       
   179 //
       
   180 CPhoneToolbarController* CPhoneToolbarController::NewL( CCoeEnv& aCoeEnv )
       
   181     {
       
   182     CPhoneToolbarController* self =  new (ELeave) CPhoneToolbarController( aCoeEnv);
       
   183     CleanupStack::PushL( self );
       
   184     self->ConstructL();
       
   185     CleanupStack::Pop( self );
       
   186     return self;
       
   187     }
       
   188 
       
   189 // ---------------------------------------------------------------------------
       
   190 // Destructor
       
   191 // ---------------------------------------------------------------------------
       
   192 //
       
   193 CPhoneToolbarController::~CPhoneToolbarController()
       
   194     {
       
   195     delete iToolbar;
       
   196     }
       
   197 
       
   198 // ---------------------------------------------------------------------------
       
   199 // UpdateToolbar
       
   200 // ---------------------------------------------------------------------------
       
   201 //
       
   202 void CPhoneToolbarController::UpdateToolbar()
       
   203     {
       
   204     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::UpdateToolbar()" );
       
   205     // Show 'Mute'/'Unmute' icon
       
   206     iToolbar->HideItem( EPhoneInCallCmdMute, iMuteFlag, EFalse );
       
   207     iToolbar->HideItem( EPhoneInCallCmdUnmute, !iMuteFlag, ETrue );   
       
   208 
       
   209     // Show 'Handset'/'Ihf' icon
       
   210      if ( iWiredAccFlag )
       
   211          {    
       
   212          __PHONELOG( EBasic, EPhoneUIView, "CPhoneToolbarController::UpdateToolbar(), wired ");
       
   213          iToolbar->HideItem( EPhoneInCallCmdHandset, ETrue, EFalse );
       
   214          iToolbar->HideItem( EPhoneInCallCmdBtHandsfree, ETrue, EFalse );
       
   215          iToolbar->HideItem( EPhoneInCallCmdActivateIhf, EFalse, ETrue );
       
   216          }
       
   217      else if ( iBTAccAvailableFlag && !iBTAccFlag )
       
   218          {    
       
   219          __PHONELOG( EBasic, EPhoneUIView, "CPhoneToolbarController::UpdateToolbar(), BT ");
       
   220          iToolbar->HideItem( EPhoneInCallCmdActivateIhf, ETrue, EFalse );
       
   221          iToolbar->HideItem( EPhoneInCallCmdHandset, ETrue, EFalse );
       
   222          iToolbar->HideItem( EPhoneInCallCmdBtHandsfree, EFalse, ETrue );
       
   223          }
       
   224      else
       
   225          {
       
   226          __PHONELOG( EBasic, EPhoneUIView, "CPhoneToolbarController::UpdateToolbar(), else ");
       
   227          iToolbar->HideItem( EPhoneInCallCmdHandset, !iIhfFlag, EFalse );
       
   228          iToolbar->HideItem( EPhoneInCallCmdActivateIhf, iIhfFlag, EFalse );
       
   229          iToolbar->HideItem( EPhoneInCallCmdBtHandsfree, ETrue, ETrue );
       
   230          }
       
   231     }   
       
   232 
       
   233 // ---------------------------------------------------------------------------
       
   234 // OfferToolbarEventL
       
   235 // ---------------------------------------------------------------------------
       
   236 //
       
   237 void CPhoneToolbarController::OfferToolbarEventL( TInt aCommand )
       
   238     {
       
   239     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::OfferToolbarEventL()" );
       
   240     // Forward pressed toolbar button to the framework 
       
   241     // so that we can handle it in active state            
       
   242     static_cast<MEikCommandObserver*>( CEikonEnv::Static()->EikAppUi() )
       
   243        ->ProcessCommandL( aCommand );            
       
   244     } 
       
   245    
       
   246 // ---------------------------------------------------------------------------
       
   247 // DynInitToolbarL
       
   248 // ---------------------------------------------------------------------------
       
   249 //
       
   250 void CPhoneToolbarController::DynInitToolbarL( TInt aResourceId, 
       
   251                                               CAknToolbar* /*aToolbar*/ )
       
   252     { 
       
   253     if ( aResourceId == R_PHONEUI_TOOLBAR )
       
   254         {
       
   255         UpdateToolbar();
       
   256         }     
       
   257     }
       
   258 
       
   259 // ---------------------------------------------------------------------------
       
   260 // GetTooltipText
       
   261 //
       
   262 // Tooltip texts for toolbar buttons
       
   263 // ---------------------------------------------------------------------------
       
   264 //
       
   265 void  CPhoneToolbarController::GetTooltipTextL( TInt aCommandId, HBufC*& aText ) 
       
   266     {
       
   267     TInt resourceId = 0;
       
   268     switch( aCommandId )
       
   269         {                     
       
   270         case EPhoneInCallCmdActivatEPhonebook:
       
   271             resourceId = R_PHONEUI_TOOLTIP_CONTACTS;
       
   272             break; 
       
   273             
       
   274         case EPhoneInCallCmdMute:
       
   275             resourceId = R_PHONEUI_TOOLTIP_MUTE;
       
   276             break;
       
   277             
       
   278         case EPhoneInCallCmdActivateIhf:
       
   279             resourceId = R_PHONEUI_TOOLTIP_LOUDSPEAKER;
       
   280             break;
       
   281             
       
   282         case EPhoneInCallCmdUnmute:
       
   283             resourceId = R_PHONEUI_TOOLTIP_UNMUTE;
       
   284             break;
       
   285             
       
   286         case EPhoneInCallCmdHandset:
       
   287             resourceId = R_PHONEUI_TOOLTIP_HANDSET;
       
   288             break;
       
   289             
       
   290         case EPhoneInCallCmdBtHandsfree:
       
   291             resourceId = R_PHONEUI_TOOLTIP_BT_HANDSFREE;
       
   292             break;
       
   293             
       
   294         default:
       
   295             aText = KNullDesC().Alloc();
       
   296             break;
       
   297         }
       
   298         
       
   299     if( resourceId )
       
   300         {
       
   301         aText = StringLoader::LoadL( resourceId, &iCoeEnv );
       
   302         }
       
   303         
       
   304     }
       
   305 
       
   306 // ---------------------------------------------------------------------------
       
   307 TAknsItemID CPhoneToolbarController::GetSkinIdL( TInt aCommandId ) 
       
   308     {
       
   309     TAknsItemID skinId = KAknsIIDNone;
       
   310     switch( aCommandId )
       
   311         {                       
       
   312         case EPhoneInCallCmdActivatEPhonebook:
       
   313             skinId = KAknsIIDQgnIndiDialerContacts;
       
   314             break; 
       
   315         case EPhoneInCallCmdMute:
       
   316             skinId = KAknsIIDQgnIndiButtonMuteMic;
       
   317             break;
       
   318         case EPhoneInCallCmdActivateIhf:
       
   319             skinId = KAknsIIDQgnIndiButtonLoudspeaker;
       
   320             break;
       
   321         case EPhoneInCallCmdUnmute:
       
   322             skinId = KAknsIIDQgnIndiButtonUnmuteMic;
       
   323             break;
       
   324         case EPhoneInCallCmdHandset:
       
   325             skinId = KAknsIIDQgnIndiButtonHandset;
       
   326             break;
       
   327         case EPhoneInCallCmdBtHandsfree:
       
   328             skinId = KAknsIIDQgnIndiButtonBluetooth;
       
   329             break;
       
   330         default:
       
   331             skinId = KAknsIIDNone;
       
   332             break;
       
   333         }
       
   334     return skinId;        
       
   335     }
       
   336 
       
   337 // ---------------------------------------------------------------------------
       
   338 // ShowToolbar
       
   339 //
       
   340 // ---------------------------------------------------------------------------
       
   341 //
       
   342 void CPhoneToolbarController::ShowToolbar()
       
   343     {
       
   344     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::ShowToolbar()" );
       
   345 
       
   346     if ( iToolbar )
       
   347         {
       
   348         if ( iToolbar->IsToolbarDisabled() )
       
   349             {
       
   350             TRAP_IGNORE(iToolbar->DisableToolbarL( EFalse ));
       
   351             }
       
   352         UpdateToolbar();
       
   353         iToolbar->SetToolbarVisibility( ETrue, EFalse );
       
   354         }
       
   355     }
       
   356 
       
   357 // ---------------------------------------------------------------------------
       
   358 // HideToolbar
       
   359 //
       
   360 // ---------------------------------------------------------------------------
       
   361 //
       
   362 void CPhoneToolbarController::HideToolbar()
       
   363     {
       
   364     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::HideToolbar()" );
       
   365     if ( iToolbar )
       
   366         {
       
   367         if ( iToolbar->IsToolbarDisabled() )
       
   368             {
       
   369             TRAP_IGNORE(iToolbar->DisableToolbarL( EFalse ));
       
   370             }
       
   371         iToolbar->SetToolbarVisibility( EFalse, EFalse );
       
   372         }
       
   373     }
       
   374 
       
   375 // ---------------------------------------------------------
       
   376 // CPhoneToolbarController::SetMuteFlag
       
   377 // ---------------------------------------------------------
       
   378 //
       
   379 void CPhoneToolbarController::SetMuteFlag( TPhoneCommandParam* aCommandParam )
       
   380     {
       
   381     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::SetMuteFlag()" );
       
   382     // Check is the given parameter valid
       
   383     if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
       
   384         {
       
   385         TPhoneCmdParamBoolean* muteFlag = 
       
   386             static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   387 
       
   388         iMuteFlag = muteFlag->Boolean();
       
   389         UpdateToolbar();
       
   390         }
       
   391     }
       
   392 
       
   393 // ---------------------------------------------------------
       
   394 // CPhoneToolbarController::SetIhfFlag
       
   395 // ---------------------------------------------------------
       
   396 //
       
   397 void CPhoneToolbarController::SetIhfFlag( TPhoneCommandParam* aCommandParam )
       
   398     {
       
   399     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::SetIhfFlag()" );
       
   400     // Check is the given parameter valid
       
   401     if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
       
   402         {
       
   403         TPhoneCmdParamBoolean* ihfFlag = 
       
   404             static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   405 
       
   406         iIhfFlag = ihfFlag->Boolean();
       
   407         UpdateToolbar();
       
   408         }
       
   409     }
       
   410 
       
   411 // ---------------------------------------------------------
       
   412 // CPhoneMenuController::SetWiredAccFlag
       
   413 // ---------------------------------------------------------
       
   414 //
       
   415 void CPhoneToolbarController::SetWiredAccFlag( TPhoneCommandParam* aCommandParam )
       
   416     {
       
   417     __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneMenuController::SetWiredAccAvailableFlag()" );
       
   418     // Check is the given parameter valid
       
   419     if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
       
   420         {
       
   421         TPhoneCmdParamBoolean* accFlag = 
       
   422             static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   423 
       
   424         iWiredAccFlag = accFlag->Boolean();        
       
   425         if ( iCallInProgress ) 
       
   426             {
       
   427             if ( iWiredAccFlag )
       
   428                 {
       
   429                 // Dim toolbar button 
       
   430                 iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, ETrue, ETrue );
       
   431                 }
       
   432             else if ( !iDimActivateIhf )
       
   433                 {
       
   434                 // Don't undim ActivateIhf button, if it was intended to be dimmed all the time
       
   435                 iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, EFalse, ETrue );
       
   436                 }
       
   437             
       
   438             UpdateToolbar(); 
       
   439             }
       
   440         }
       
   441     }
       
   442 // ---------------------------------------------------------
       
   443 // CPhoneToolbarController::SetBTAccFlag
       
   444 // ---------------------------------------------------------
       
   445 //
       
   446 void CPhoneToolbarController::SetBTAccFlag( TPhoneCommandParam* aCommandParam )
       
   447     {
       
   448     if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
       
   449         {
       
   450         TPhoneCmdParamBoolean* booleanParam = 
       
   451             static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   452         iBTAccFlag = booleanParam->Boolean();
       
   453         UpdateToolbar(); 
       
   454         }     
       
   455     }
       
   456 
       
   457 // ---------------------------------------------------------
       
   458 // CPhoneToolbarController::SetBTAccAvailableFlag
       
   459 // ---------------------------------------------------------
       
   460 //
       
   461 void CPhoneToolbarController::SetBTAccAvailableFlag( TPhoneCommandParam* aCommandParam )
       
   462     {
       
   463     // Check is the given parameter valid
       
   464     if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
       
   465         {
       
   466         TPhoneCmdParamBoolean* accFlag = 
       
   467             static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
       
   468 
       
   469         iBTAccAvailableFlag = accFlag->Boolean();
       
   470         UpdateToolbar();
       
   471         }
       
   472     }
       
   473 
       
   474 
       
   475 // ---------------------------------------------------------
       
   476 // CPhoneToolbarController::SetCallInProgressFlag
       
   477 // ---------------------------------------------------------
       
   478 // 
       
   479 void CPhoneToolbarController::SetCallInProgressFlag( TPhoneCommandParam* aCommandParam )
       
   480     {
       
   481     TPhoneCmdParamIncallIndicatorData* param =
       
   482         static_cast<TPhoneCmdParamIncallIndicatorData*>( aCommandParam );
       
   483     
       
   484     TInt callState = param->CallState();  
       
   485 
       
   486     __PHONELOG1( EBasic, EPhoneUIView,
       
   487       "CPhoneToolbarController::SetCallInProgressFlag - Current CallState = (%d)",
       
   488       callState );
       
   489     
       
   490     switch ( callState )
       
   491         {
       
   492         case EPSCTsyCallStateUninitialized:
       
   493         case EPSCTsyCallStateNone:
       
   494             {
       
   495             // No active call in progress.
       
   496             iCallInProgress = EFalse;
       
   497             break;
       
   498             }                 
       
   499         default:
       
   500             {
       
   501             // Active call in progress.
       
   502             iCallInProgress = ETrue;
       
   503             break;
       
   504             } 
       
   505         }
       
   506     }
       
   507 
       
   508 // ---------------------------------------------------------
       
   509 // CPhoneToolbarController::DimToolbar
       
   510 // ---------------------------------------------------------
       
   511 //
       
   512 void CPhoneToolbarController::DimToolbar( const TBool aDimmed )
       
   513     {
       
   514  //   __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::DimToolbar()" );
       
   515 
       
   516     // Dim/Undim all toolbar buttons 
       
   517     iToolbar->SetItemDimmed( EPhoneInCallCmdMute, aDimmed, ETrue );
       
   518     iToolbar->SetItemDimmed( EPhoneInCallCmdUnmute, aDimmed, ETrue );
       
   519     iToolbar->SetItemDimmed( EPhoneInCallCmdActivatEPhonebook, aDimmed, ETrue );
       
   520     iToolbar->SetItemDimmed( EPhoneInCallCmdHandset, aDimmed, ETrue );  
       
   521     iToolbar->SetItemDimmed( EPhoneInCallCmdBtHandsfree, aDimmed, ETrue );
       
   522     // Don't dim/undim iHF when complete toolbar dimming is changed. 
       
   523     if ( !iWiredAccFlag )
       
   524         {
       
   525         iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, aDimmed, ETrue );
       
   526         }
       
   527     iDimActivateIhf = aDimmed;
       
   528     }
       
   529 
       
   530 // ---------------------------------------------------------
       
   531 // CPhoneToolbarController::SetToolbarButtonDimmed
       
   532 // ---------------------------------------------------------
       
   533 //
       
   534 void CPhoneToolbarController::SetToolbarButtonDimmed( const TInt aCommandId, const TBool aDimmed )
       
   535     {
       
   536  // __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneToolbarController::SetToolbarButtonDimmed()" );
       
   537 
       
   538     if ( aCommandId == EPhoneInCallCmdActivateIhf ) 
       
   539         {
       
   540         if ( aDimmed )
       
   541             {
       
   542             // Dim toolbar button 
       
   543             iToolbar->SetItemDimmed( aCommandId, aDimmed, ETrue );
       
   544             }
       
   545         else
       
   546             {
       
   547             // Don't undim IHF if wired acc is connected. 
       
   548             if ( !iWiredAccFlag )
       
   549                 {
       
   550                 iToolbar->SetItemDimmed( aCommandId, aDimmed, ETrue );
       
   551                 }
       
   552             }
       
   553         iDimActivateIhf = aDimmed;
       
   554         }
       
   555     else
       
   556         {
       
   557         // Dim/undim toolbar button 
       
   558         iToolbar->SetItemDimmed( aCommandId, aDimmed, ETrue );
       
   559         }
       
   560     }
       
   561 
       
   562 // END
       
   563