phoneapp/phoneuiview/inc/cphonebuttonscontroller.h
branchRCL_3
changeset 62 5266b1f337bd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuiview/inc/cphonebuttonscontroller.h	Wed Sep 01 12:30:10 2010 +0100
@@ -0,0 +1,198 @@
+/*
+* Copyright (c) 2007 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:  Handles the updating of touch buttons
+*
+*/
+
+
+#ifndef CPHONEBUTTONSCONTROLLER_H
+#define CPHONEBUTTONSCONTROLLER_H
+
+#include <e32base.h>
+#include <bmtouchpaneinterface.h>
+#include "mphonebuttoncustomization.h"
+
+class TPhoneCommandParam;
+
+/**
+ *  Updates touch buttons
+ *
+ *  @lib PhoneUIView.lib
+ *  @since S60 v5.0
+ */
+NONSHARABLE_CLASS( CPhoneButtonsController ): 
+    public CBase, MBubbleTouchPaneIconProvider
+    {
+public:
+
+    static CPhoneButtonsController* NewL(
+        MBubbleTouchPaneInterface& aTouchPane );
+
+    virtual ~CPhoneButtonsController();
+    
+    /**
+     * Loads buttons form given resouce.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam Mute information
+     */
+    void SetButtonSet( TPhoneCommandParam* aCommandParam );
+    
+    /**
+     * SetMuteFlag
+     *
+     * @since S60 v5.0
+     * @param aCommandParam 
+     */
+    void SetMuteFlag( TPhoneCommandParam* aCommandParam );
+    
+    /**
+     * SetHoldFlag
+     *
+     * @since S60 v5.0
+     * @param aCommandParam 
+     */
+    void SetHoldFlag( TPhoneCommandParam* aCommandParam );
+   
+    /**
+     * Handles IHF change event.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam IHF information.
+     */
+    void SetIhfFlag( TPhoneCommandParam* aCommandParam );
+
+    /**
+     * Handles BT accessory output change event.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam BTA information.
+     */    
+    void SetBTAccFlag( TPhoneCommandParam* aCommandParam );
+
+    /**
+     * Handles Wired accessory output change event.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam wired information.
+     */    
+    void SetWiredAccFlag( TPhoneCommandParam* aCommandParam );
+    
+    /**
+     * Handles BT accessory availability change event.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam BTA availability 
+     */    
+    void SetBTAccAvailableFlag( TPhoneCommandParam* aCommandParam );
+
+    /**
+     * Handles switch to video change event.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam  
+     */    
+    void SetVideoCallFlag( TPhoneCommandParam* aCommandParam );
+    
+    /**
+     * Handles conference join availability change event.
+     *
+     * @since S60 v5.0
+     * @param aCommandParam Add to conference availability 
+     */    
+    void SetInCallJoinEnabled( TPhoneCommandParam* aCommandParam );
+ 
+    /**
+     * Replace Audio Button
+     *
+     * @since S60 v5.0
+     */
+    void ReplaceAudioButton(); 
+    
+    /**
+     * Sets buttons to correct states.
+     *
+     * @since S60 v5.0
+     */
+     void SetToggleButtons();
+     
+    /**
+     * Set button dimming.
+     *
+     * @since S60 v5.0
+     */
+    void SetButtonDimming();
+    
+    /**
+     * Set button enabled.
+     *
+     * @since S60 v5.0
+     */
+    void SetButtonEnabled( TPhoneCommandParam* aCommandParam );
+    
+    /**
+     * Set button disabled.
+     *
+     * @since S60 v5.0
+     */
+    void SetButtonDisabled( TPhoneCommandParam* aCommandParam );
+
+    /**
+     * Set customization.
+     *
+     * @since S60 v5.0
+     */
+    void SetCustomization( MPhoneButtonCustomization* aCustomization );
+
+private: // From MBubbleTouchPaneIconProvider
+    CGulIcon* GetIconForCommandL( TInt aCommandId );
+    
+    // From MBubbleTouchPaneIconProvider
+    TAknsItemID GetButtonForCommandL( TInt aCommandId );
+    
+
+private:
+
+    CPhoneButtonsController( MBubbleTouchPaneInterface& aTouchPane );
+    
+    void ConstructL();
+    
+private: // data
+    MBubbleTouchPaneInterface& iTouchPane;
+
+    // Tool bar button customization
+    MPhoneButtonCustomization* iCustomization;
+
+    // Flags
+    enum TPhoneButtonsFlags
+        {
+        EButtonsPhoneMuted = 1,
+        EButtonsCallOnHold = 2,
+        EButtonsIhfActive  = 4,
+        EButtonsWiredAcc   = 8,
+        EButtonsBTAcc      = 16,
+        EButtonsBTAccAvail = 32,
+        EButtonsBTAccTmpUn = 64,
+        EButtonsDimAnswer  = 128,
+        EButtonsDimPrivate = 256,
+        EButtonsDimJoin    = 512,
+        EButtonsVideoCallOngoing = 1024,
+        EButtonsDimSilence  = 2048,
+        EButtonsDimCreateConference = 4096,  
+        EButtonsDimHold = 8192
+        };
+    TInt iFlags;
+    };
+
+#endif // CPHONEBUTTONSCONTROLLER_H