phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp
branchRCL_3
changeset 7 544e34b3255a
parent 3 8871b09be73b
child 10 ba54057fe027
--- a/phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp	Wed Mar 31 21:30:06 2010 +0300
+++ b/phoneapp/phoneuiview/src/cphonetoolbarcontroller.cpp	Wed Apr 14 15:56:42 2010 +0300
@@ -30,6 +30,7 @@
 #include <phoneappcommands.hrh>
 #include <phoneui.mbg>
 
+#include "tphonecmdparamincallindicatordata.h"
 #include "cphonetoolbarcontroller.h"
 #include "phoneui.hrh"
 #include "phonerssbase.h"
@@ -379,6 +380,61 @@
     }
 
 // ---------------------------------------------------------
+// CPhoneMenuController::SetWiredAccFlag
+// ---------------------------------------------------------
+//
+void CPhoneToolbarController::SetWiredAccFlag( TPhoneCommandParam* aCommandParam )
+    {
+    __LOGMETHODSTARTEND( EPhoneUIView, "CPhoneMenuController::SetWiredAccAvailableFlag()" );
+    // Check is the given parameter valid
+    if ( aCommandParam->ParamId() == TPhoneCommandParam::EPhoneParamIdBoolean )
+        {
+        TPhoneCmdParamBoolean* accFlag = 
+            static_cast<TPhoneCmdParamBoolean*>( aCommandParam );
+
+        iWiredAccFlag = accFlag->Boolean();        
+        if ( iCallInProgress ) 
+            {
+            SetToolbarButtonDimmed( EPhoneInCallCmdActivateIhf, iWiredAccFlag );
+            UpdateToolbar(); 
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CPhoneToolbarController::SetCallInProgressFlag
+// ---------------------------------------------------------
+// 
+void CPhoneToolbarController::SetCallInProgressFlag( TPhoneCommandParam* aCommandParam )
+    {
+    TPhoneCmdParamIncallIndicatorData* param =
+        static_cast<TPhoneCmdParamIncallIndicatorData*>( aCommandParam );
+    
+    TInt callState = param->CallState();  
+
+    __PHONELOG1( EBasic, EPhoneUIView,
+      "CPhoneToolbarController::SetCallInProgressFlag - Current CallState = (%d)",
+      callState );
+    
+    switch ( callState )
+        {
+        case EPSCTsyCallStateUninitialized:
+        case EPSCTsyCallStateNone:
+            {
+            // No active call in progress.
+            iCallInProgress = EFalse;
+            break;
+            }                 
+        default:
+            {
+            // Active call in progress.
+            iCallInProgress = ETrue;
+            break;
+            } 
+        }
+    }
+
+// ---------------------------------------------------------
 // CPhoneToolbarController::DimToolbar
 // ---------------------------------------------------------
 //
@@ -390,8 +446,12 @@
     iToolbar->SetItemDimmed( EPhoneInCallCmdMute, aDimmed, ETrue );
     iToolbar->SetItemDimmed( EPhoneInCallCmdUnmute, aDimmed, ETrue );
     iToolbar->SetItemDimmed( EPhoneInCallCmdActivatEPhonebook, aDimmed, ETrue );
-    iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, aDimmed, ETrue );
-    iToolbar->SetItemDimmed( EPhoneInCallCmdHandset, aDimmed, ETrue );        
+    iToolbar->SetItemDimmed( EPhoneInCallCmdHandset, aDimmed, ETrue );  
+    // Don't dim/undim iHF when complete toolbar dimming is changed. 
+    if ( !iWiredAccFlag )
+        {
+        iToolbar->SetItemDimmed( EPhoneInCallCmdActivateIhf, aDimmed, ETrue );
+        }
     }
 
 // ---------------------------------------------------------