diff -r 000000000000 -r 5f000ab63145 phoneapp/phoneuiview/inc/cphonebuttonscontroller.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/phoneapp/phoneuiview/inc/cphonebuttonscontroller.h Mon Jan 18 20:18:27 2010 +0200 @@ -0,0 +1,197 @@ +/* +* 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 +#include +#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 + }; + TInt iFlags; + }; + +#endif // CPHONEBUTTONSCONTROLLER_H