diff -r f15ac8e65a02 -r 779871d1e4f4 vtuis/videotelui/inc/features/dialer/cvtuidialercontainer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vtuis/videotelui/inc/features/dialer/cvtuidialercontainer.h Wed Sep 01 12:29:12 2010 +0100 @@ -0,0 +1,263 @@ +/* +* 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: Dialer container class. +* +*/ + + +#ifndef C_VTUIDIALERCONTAINER_H +#define C_VTUIDIALERCONTAINER_H + +#include +#include "CVtUiAppUi.h" +#include "mvtuicomponent.h" +#include "mvtuiresourcechangeobserver.h" +#include "mvtuikeyeventobserver.h" +#include "mvtuinumbersource.h" +#include "tvtuicomponentstate.h" + +// FORWARD DECLARATIONS +class MVtUiVideoWindow; +class MVtUiComponentManager; +class CVtUiBitmapManager; +class CVtUiDialerVideoControl; +class CVideoDTMFDialer; +class TVtUiStates; +class CVtUiDialerSKModifier; +class CVtUiFeatureManager; +class CVtUiDTMFBuffer; +class CAknsBasicBackgroundControlContext; + +// CONSTANTS +const TInt KVtUiDigitBufferSize = 128; + +/** + * TVtUiMiniDialerComponentState + * + * Mini dialer component state definition. + * + * @since S60 v5.0 + */ +class TVtUiDialerComponentState : public TVtUiComponentState + { + +public: + + /** + * Constructor + */ + TVtUiDialerComponentState( MVtUiComponent& aComponent ); + + }; + +/** + * CVtUiDialerContainer + * + * Mini dialer UI feature definition. + * + * @since S60 v5.0 + */ +class CVtUiDialerContainer : public CCoeControl, + public MVtUiResourceChangeObserver, public MVtUiComponent, + public MVtUiNumberSource, public MVtUiKeyEventObserver + { + +public: + + /** + * Static constructor + * @param aFeatureManager Reference to feature manager. + * @param aComponentManager Reference to component manager. + * @param aBitmapManager Reference to bitmap manager. + * @return Newly created instance of CVtUiDialerContainer. + */ + static CVtUiDialerContainer* + NewL( CVtUiFeatureManager& aFeatureManager ); + + /** + * Destructor + */ + ~CVtUiDialerContainer(); + + /** + * Registers component to component manager's event handling mechanism. + * @exception May leave with error KErrAlreadyExists, if the component + * has already been registered. + */ + void RegisterComponentL(); + + /** + * Unregisters component from component manager's event handling mechanism. + */ + void UnregisterComponent(); + + /** + * Returns video window. + * @return Pointer to video window. + */ + MVtUiVideoWindow* ComponentAsVideoWindow(); + + /** + * @see CCoeControl::MopSupplyObject + */ + TTypeUid::Ptr MopSupplyObject( TTypeUid aId ); + +private: // from MVtUiResourceChangeObserver + + /** + * @see MVtUiResourceChangeObserver::HandleResourceChangeL + */ + void HandleResourceChangeL( TInt aType ); + + +private: // from MVtUiComponent + + /** + * @see MVtUiComponent::ComponentId + */ + TComponentId ComponentId() const; + + /** + * @see MVtUiComponent::ComponentAsControl + */ + CCoeControl* ComponentAsControl(); + + /** + * @see MVtUiComponent::DoActivateL + */ + void DoActivateL(); + + /** + * @see MVtUiComponent::DoDeactivateL + */ + void DoDeactivateL(); + +private: // from MVtUiNumberSource + + /** + * @see MVtUiNumberSource::GetContents + */ + void GetContents( TDes& aContents ) const; + +private: // from MVtUiKeyEventObserver + + /** + * @see MVtUiNumberSource::OfferKeyEventL + */ + TKeyResponse OfferKeyEventL( const TKeyEvent& aEvent, + TEventCode aCode ); + +private: // from CCoeControl + + /** + * @see CCoeControl::Draw + */ + void Draw( const TRect& aRect ) const; + + /** + * @see CCoeControl::SizeChanged + */ + void SizeChanged(); + + /** + * @see CCoeControl::PositionChanged + */ + void PositionChanged(); + + /** + * @see CCoeControl::CountComponentControls + */ + TInt CountComponentControls() const; + + /** + * @see CCoeControl::ComponentControl + */ + CCoeControl* ComponentControl( TInt aIndex ) const; + +private: + + /** + * Constructor + */ + CVtUiDialerContainer( CVtUiFeatureManager& aFeatureManager ); + + /** + * 2nd constructor + */ + void ConstructL( CVtUiBitmapManager& aBitmapManager ); + + /** + * Layouts this control. + */ + void LayoutDialerContainer(); + + /** + * Returns dialer's rect (wrapper to VtUiLayout). + */ + TRect DialerRect() const; + + /** + * Resets digit buffer. + */ + void Reset(); + + /** + * Appends new digit to digit buffer. If buffer is full, oldest digit is + * deleted. + */ + void AppendDigit( TChar aDigit ); + + /** + * Static callback method for deactivating dialer asynchronously. + */ + static TInt ASyncDoDeactivate( TAny* aSelf ); + +private: + + // Component state + TVtUiDialerComponentState iComponentState; + + // Feature manager instance + CVtUiFeatureManager* iFeatureManager; + + // Component manager + MVtUiComponentManager* iComponentManager; + + // UI states + TVtUiStates& iUiStates; + + // Video control instance + CVtUiDialerVideoControl* iVideoControl; + + // Dialer instance + CVideoDTMFDialer* iDialer; + + // Buffer for digits + CVtUiDTMFBuffer* iInputBuffer; + + // Rendering mode + CVtUiAppUi::TRenderingMode iMode; + + // Softkey modifier for dialer feature + CVtUiDialerSKModifier* iSKModifier; + + // Asynccallback instance for handling asynchronous deactivation. + CAsyncCallBack* iAsyncDeactivate; + + // Owned: background context. + CAknsBasicBackgroundControlContext* iBgContext; + + }; + +#endif // C_VTUIDIALERCONTAINER_H