--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/vtuis/videotelui/src/features/dialer/cvtuidialer.cpp Wed Sep 01 12:29:12 2010 +0100
@@ -0,0 +1,229 @@
+/*
+* Copyright (c) 2006 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: Mini dialer feature
+*
+*/
+
+
+#include <AknUtils.h>
+#include <peninputcmdparam.h>
+#include <cvtlogger.h>
+#include <akntoolbar.h>
+
+#include "cvtuidialer.h"
+#include "cvtuifeaturemanager.h"
+#include "mvtuicommandmanager.h"
+#include "mvtuicomponentmanager.h"
+#include "cvtuicmdopendialer.h"
+#include "cvtuicmdclosedialer.h"
+#include "cvtuidialercontainer.h"
+#include "cvtuidialervideocontrol.h"
+#include "CVtUiAppUi.h"
+#include "tvtuistates.h"
+#include "CVtUiContextControl.h"
+#include "CVtUiEndCallButtonPane.h"
+#include "CVtUiMainControl.h"
+#include "CVtUiRemoteVideoControl.h"
+#include "VtUiLayout.h"
+
+// Index of white color.
+const TInt KVtDialerRVCPriLow = -1;
+
+// ======== LOCAL FUNCTIONS ========
+
+// Implementation of CVtUiDialer
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::NewL
+// ---------------------------------------------------------------------------
+//
+CVtUiDialer* CVtUiDialer::NewL( CVtUiFeatureManager& aFeatureManager )
+ {
+ __VTPRINTENTER( "Dial.NewL" )
+ CVtUiDialer* self = NULL;
+ self = new ( ELeave ) CVtUiDialer( aFeatureManager );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop(); // self
+ __VTPRINTEXIT( "Dial.NewL" )
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::~CVtUiDialer
+// ---------------------------------------------------------------------------
+//
+CVtUiDialer::~CVtUiDialer()
+ {
+ __VTPRINTENTER( "Dial.~" )
+ delete iCmdOpen;
+ delete iCmdClose;
+ delete iDialerContainer;
+ __VTPRINTEXIT( "Dial.~" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::VideoWindow
+// ---------------------------------------------------------------------------
+//
+MVtUiVideoWindow& CVtUiDialer::VideoWindow() const
+ {
+ __VTPRINTENTER( "Dial.VideoWindow" )
+ __VTPRINTEXIT( "Dial.VideoWindow" )
+ return *iDialerContainer->ComponentAsVideoWindow();
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::VideoControl
+// ---------------------------------------------------------------------------
+//
+CCoeControl& CVtUiDialer::VideoControl() const
+ {
+ __VTPRINTENTER( "Dial.VideoControl" )
+ __VTPRINTEXIT( "Dial.VideoControl" )
+ return *static_cast< MVtUiComponent* >
+ ( iDialerContainer )->ComponentAsControl();
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::StartL
+// ---------------------------------------------------------------------------
+//
+void CVtUiDialer::StartL()
+ {
+ __VTPRINTENTER( "Dial.StartL" )
+ if ( State() == MVtUiFeature::EUnprepared )
+ {
+ // Lower remote video control window priority
+ TInt pos =
+ iFeatureManager.AppUi().RemoteVideoControl().DrawableWindow()->OrdinalPosition();
+ iFeatureManager.AppUi().RemoteVideoControl().DrawableWindow()->
+ SetOrdinalPosition( pos, KVtDialerRVCPriLow );
+ // Make context control and end call button invisible
+ iFeatureManager.AppUi().ContextControl().MakeVisible( EFalse );
+ iFeatureManager.AppUi().EndCallButtonPane().MakeVisible( EFalse );
+ iFeatureManager.UiStates().SetIsDialerActivating( ETrue );
+ // fixed toolbar is set to be hidden
+ iFeatureManager.UiStates().SetIsFixedToolbarVisible( EFalse );
+ if ( !VtUiLayout::IsLandscapeOrientation() )
+ {
+ iFeatureManager.AppUi().CurrentFixedToolbar()->MakeVisible( EFalse );
+ }
+ iFeatureManager.CommandManager().RefreshL();
+ PrepareL();
+ iFeatureManager.ComponentManager().RequestActivationL(
+ MVtUiComponent::EComponentIdDialer );
+ iFeatureState = EActive;
+ iFeatureManager.AppUi().SwitchLayoutToFlatStatusPaneL( ETrue );
+ }
+ __VTPRINTEXIT( "Dial.StartL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::Stop
+// ---------------------------------------------------------------------------
+//
+void CVtUiDialer::Stop()
+ {
+ __VTPRINTENTER( "Dial.Stop" )
+ if ( State() == MVtUiFeature::EActive )
+ {
+ // Lower remote video control window priority
+ TInt pos =
+ iFeatureManager.AppUi().RemoteVideoControl().DrawableWindow()->OrdinalPosition();
+ iFeatureManager.AppUi().RemoteVideoControl().DrawableWindow()->
+ SetOrdinalPosition( pos, KVtDialerRVCPriLow );
+
+ TInt error;
+ TRAP( error,
+ {
+ iFeatureManager.AppUi().SwitchLayoutToFlatStatusPaneL( EFalse );
+ iFeatureManager.ComponentManager().DeActivateComponentL(
+ MVtUiComponent::EComponentIdDialer );
+ } );
+ Unprepare();
+ iFeatureManager.AppUi().CurrentFixedToolbar()->MakeVisible( ETrue );
+ // Make these two control back to visible
+ iFeatureManager.AppUi().EndCallButtonPane().MakeVisible( ETrue );
+ iFeatureManager.AppUi().ContextControl().MakeVisible( ETrue );
+ // Force a skin change event to appui then redraw main control
+ // and end call button
+ iFeatureManager.AppUi().HandleResourceChangeL( KAknsMessageSkinChange );
+ iFeatureManager.AppUi().MainControl().DrawNow();
+ iFeatureManager.AppUi().EndCallButtonPane().DrawNow();
+ }
+ __VTPRINTEXIT( "Dial.Stop" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::InitFeatureL
+// ---------------------------------------------------------------------------
+//
+void CVtUiDialer::InitFeatureL()
+ {
+ __VTPRINTENTER( "Dial.InitFeatureL" )
+ iDialerContainer =
+ CVtUiDialerContainer::NewL( iFeatureManager );
+ iCmdOpen = CVtUiCmdOpenDialer::NewL( iFeatureManager.CommandManager(),
+ *this );
+ iCmdClose = CVtUiCmdCloseDialer::NewL( iFeatureManager.CommandManager(),
+ *this );
+ __VTPRINTEXIT( "Dial.InitFeatureL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::CVtUiDialer
+// ---------------------------------------------------------------------------
+//
+CVtUiDialer::CVtUiDialer( CVtUiFeatureManager& aFeatureManager )
+ : CVtUiFeatureBase( EVtUiFeatureIdDialer, aFeatureManager )
+ {
+ __VTPRINTENTER( "Dial.ctor" )
+ __VTPRINTEXIT( "Dial.ctor" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CVtUiDialer::ConstructL()
+ {
+ __VTPRINTENTER( "Dial.ConstructL" )
+ BaseConstructL();
+ __VTPRINTEXIT( "Dial.ConstructL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::PrepareL
+// ---------------------------------------------------------------------------
+//
+void CVtUiDialer::PrepareL()
+ {
+ __VTPRINTENTER( "Dial.PrepareL" )
+ iDialerContainer->RegisterComponentL();
+ iFeatureState = EReady;
+ __VTPRINTEXIT( "Dial.PrepareL" )
+ }
+
+// ---------------------------------------------------------------------------
+// CVtUiDialer::Unprepare
+// ---------------------------------------------------------------------------
+//
+void CVtUiDialer::Unprepare()
+ {
+ __VTPRINTENTER( "Dial.Unprepare" )
+ iDialerContainer->UnregisterComponent();
+ iFeatureState = EUnprepared;
+ __VTPRINTEXIT( "Dial.Unprepare" )
+ }