phoneapp/phoneuivoipextension/inc/cphonetransferdialercontroller.h
author Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Mon, 18 Jan 2010 20:18:27 +0200
changeset 0 5f000ab63145
child 9 8871b09be73b
permissions -rw-r--r--
Revision: 201001 Kit: 201003

/*
* 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"
* 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: 
*     Unattended transfer dialer customization
*     controller
*
*/


#ifndef CPHONETRANSFERDIALERCONTROLLER_H_
#define CPHONETRANSFERDIALERCONTROLLER_H_

// INCLUDES
#include <aknbutton.h>
#include "mphonedialercontroller.h"

// FORWARD DECLARATIONS
class CAknToolbar; 

/**
*  VoIP unattended transfer dialer customization
*/
NONSHARABLE_CLASS( CPhoneTransferDialerController ): public CBase,
                                       public MPhoneDialerController
    {
    public:      

        static CPhoneTransferDialerController* NewL();
        
        /**
        * Destructor.
        */
        virtual ~CPhoneTransferDialerController();

    public: // From MDialerController
    
        
        /**
        * Initializes the controller. 
        * @param    aToolbar    CAknToolbar instance.
        * @since    S60 v5.1
        */ 
        void InitializeL( CAknToolbar& aToolbar );
        
        /**
        * Returns Cba resource id
        * @return Resource Id of the softkeys
        * @since S60 v5.1
        */
        TInt CbaResourceId() const;
        
        /**
        * Returns Menu resource id
        * @return Id of the menu resource
        * @since S60 v5.1
        */
        TInt MenuResourceId() const;
        
        /**
        * Returns number entry prompt text
        * @return Reference to text to be shown on number entry
        * @since S60 v5.1
        */
        const TDesC& NumberEntryPromptTextL();
        
        /**
        * Handles the number entry empty event
        * @param aEmpty ETrue if numberentry is empty
        * @since S60 v5.1
        */
        void HandleNumberEntryIsEmpty( TBool aEmpty );
        
        /**
        * Sets visibility of buttons created by the implementation
        * @param aShow ETrue if numberentry is empty
        * @since S60 v5.1
        */
        void ShowButtons( TBool aShow );
        
    private:
    
        /**
         * Creates instance of CAKnButton
         * @param aNormalIconId Button normal icon id
         * @param aNormalMaskId Mask id
         * @param aTooltipText Reference to tooltip text
         * @param aSkinIconId Skin icon id
         * @return Pointer to created button instance
         */
        CAknButton* CreateButtonLC( TInt aNormalIconId,
                                    TInt aNormalMaskId,
                                    const TDesC& aTooltipText, 
                                    const TAknsItemID& aSkinIconId ) const; 
        
        /**
         * Returns tool tip for specific command
         * @param aCommandId Command id which the tooltip text 
         * is needed
         * @return Pointer to descriptor containing tooltip text
         */
        HBufC* GetTooltipTextL( TInt aCommandId ) const; 
        
        TAknsItemID SkinId( TInt aIconIndex ) const;

    protected:

        /**
        * By default EPOC constructor is private.
        */
        CPhoneTransferDialerController();
            
    private: // Data
    
        // Pointer to CAknToolbar, Not own
        CAknToolbar* iToolbar;
        
        // ETrue if number entry input field is empty
        TBool iNumberEntryIsEmpty;
        
        // Number entry prompt text ("Address:")
        HBufC* iNumberEntryPromptText;
        
        // ETrue if initialized 
        TBool iIsInitialized;
      
    };

#endif /*CPHONETRANSFERDIALERCONTROLLER_H_*/