--- a/vtuis/videotelui/src/features/toolbar/cvtuifloatingtoolbar.cpp Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,468 +0,0 @@
-/*
-* 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: Floating toolbar UI feature implementation.
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "cvtuifloatingtoolbar.h"
-#include "cvtuifeaturemanager.h"
-#include "mvtuicomponentmanager.h"
-#include "mvtuicommandmanager.h"
-#include "cvtuitoolbarbutton.h"
-#include "videotelui.hrh"
-#include "tVtuifeaturevariation.h"
-#include "tvtuistates.h"
-#include "cvtuitoolbarcmdpolicy.h"
-#include "cvtuitoolbarskmodifier.h"
-#include "CVtUiAppUi.h"
-#include <videotelui.rsg>
-#include <cvtlogger.h>
-#include <akntoolbar.h>
-#include <aknutils.h>
-#include <aknlayoutscalable_apps.cdl.h>
-#include <layoutmetadata.cdl.h>
-#include <gfxtranseffect/gfxtranseffect.h>
-
-// CONSTANTS
-static const TInt KThreeToolbarbuttons = 3;
-static const TInt KFourToolbarbuttons = 4;
-static const TInt KFiveToolbarbuttons = 5;
-static const TInt KSixToolbarbuttons = 6;
-static const TInt KSevenToolbarbuttons = 7;
-
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::NewL
-// -----------------------------------------------------------------------------
-//
-CVtUiFloatingToolbar* CVtUiFloatingToolbar::NewL( CVtUiFeatureManager&
- aFeatureManager )
- {
- __VTPRINTENTER( "FloatingToolbar.NewL" )
- TVtUiSideVolumeKeysVariation svkvariation;
- if ( !svkvariation.IsSideVolumeKeysSupported() )
- {
- // User of this class should notice that newl could return null,
- // even if no leave happened.
- __VTPRINT(DEBUG_GEN, "Toolbar.NewL.NULL" )
- return NULL;
- }
- CVtUiFloatingToolbar* self = new ( ELeave ) CVtUiFloatingToolbar(
- aFeatureManager );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- __VTPRINTEXIT( "FloatingToolbar.NewL" )
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::CVtUiFloatingToolbar
-// C++ constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CVtUiFloatingToolbar::CVtUiFloatingToolbar( CVtUiFeatureManager&
- aFeatureManager ) : CVtUiToolbarBase( aFeatureManager )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::ConstructL
-// Symbian 2nd phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::ConstructL()
- {
- __VTPRINTENTER( "FloatingToolbar.ConstructL" )
- BaseConstructL();
-
- // fixed toolbar is always visible ( defined in resource) hide it
- iFeatureManager.AppUi().CurrentFixedToolbar()->SetToolbarVisibility( EFalse );
-
- // create toolbar
- iToolbar = CAknToolbar::NewL( R_VIDEOTELUI_FLOATING_TOOLBAR );
-
- GfxTransEffect::Register( iToolbar, KNullUid, EFalse );
-
- // create and add items into the toolbar
- CreateToolbarButtonsL();
-
- iFeatureManager.UiStates().SetIsFloatingToolbarVisible( EFalse );
-
- // layout toolbar
- LayoutToolbarL();
-
- User::LeaveIfError(
- iFeatureManager.ComponentManager().ChangeResourceChangeRegistration(
- *this, MVtUiComponentManager::ERegister ) );
-
- __VTPRINTEXIT( "FloatingToolbar.ConstructL" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::~CVtUiFloatingToolbar
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CVtUiFloatingToolbar::~CVtUiFloatingToolbar()
- {
- __VTPRINTENTER( "FloatingToolbar.~" )
- // unregister resource change registration
- iFeatureManager.ComponentManager().ChangeResourceChangeRegistration(
- *this, MVtUiComponentManager::EUnregister );
- delete iToolbar;
- iToolbar = NULL;
- __VTPRINTEXIT( "FloatingToolbar.~" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::PopulateCmdsIdsL
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::PopulateCmdsIdsL()
- {
- __VTPRINTENTER( "FloatingToolbar.PopulateCmdsIdsL" )
- CVtUiAppUi& appUi = iFeatureManager.AppUi();
-
- // Default commands populated in base clase
- CVtUiToolbarBase::PopulateCmdsIdsL();
-
- iCmdIds.AppendL( EVtUiCmdZoom );
-
- switch( iNumberOfToolbarButtons )
- {
- case KFourToolbarbuttons:
- iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera );
- iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera );
- break;
-
- case KFiveToolbarbuttons:
- iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera );
- iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera );
- iCmdIds.AppendL( EVtUiCmdSwapImagesPlaces );
- break;
-
- case KSixToolbarbuttons:
- iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera );
- iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera );
- iCmdIds.AppendL( EVtUiCmdSwapImagesPlaces );
- iCmdIds.AppendL( EVtUiCmdShareObjectImage );
- break;
- /*
- case KSevenToolbarbuttons:
- iCmdIds.AppendL( EVtUiCmdUsePrimaryCamera );
- iCmdIds.AppendL( EVtUiCmdUseSecondaryCamera );
- iCmdIds.AppendL( EVtUiCmdSwapImagesPlaces );
- iCmdIds.AppendL( EVtUiCmdShareObjectImage );
- iCmdIds.AppendL( EVtUiCmdSnapshot );
- break;
- */
- default:
- break;
- }
-
- __VTPRINTEXIT( "FloatingToolbar.PopulateCmdsIdsL" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::CreateToolbarButtons
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::CreateToolbarButtonsL()
- {
- __VTPRINTENTER( "FloatingToolbar.CreateToolbarButtons" )
-
- // Default buttons created in base clase
- CVtUiToolbarBase::CreateToolbarButtonsL();
-
- CVtUiAppUi& appUi = iFeatureManager.AppUi();
-
- // activate zoom mode
- CreateToolbarItemL( R_AVKONBUTTON_ACTIVATE_ZOOM_MODE_BUTTON,
- EVtUiCmdZoom, appUi );
- // disable tooltip from button's latched state
- // because tooltip needs to be shown only when
- // button gets focus not then when button is selected
- FindToolbarItemByCommandId( EVtUiCmdZoom )->State( 1 )
- ->SetHelpTextL( KNullDesC() );
-
- switch( iNumberOfToolbarButtons )
- {
- case KFourToolbarbuttons:
- // toggle camera
- CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON,
- EVtUiCmdToolbarToggleCamera, appUi );
- break;
-
- case KFiveToolbarbuttons:
- // toggle camera
- CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON,
- EVtUiCmdToolbarToggleCamera, appUi );
-
- // swap images
- CreateToolbarItemL( R_AVKONBUTTON_SWAP_IMAGES_BUTTON,
- EVtUiCmdSwapImagesPlaces, appUi );
- break;
-
- case KSixToolbarbuttons:
- // toggle camera
- CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON,
- EVtUiCmdToolbarToggleCamera, appUi );
-
- // swap images
- CreateToolbarItemL( R_AVKONBUTTON_SWAP_IMAGES_BUTTON,
- EVtUiCmdSwapImagesPlaces, appUi );
-
- // share file
- CreateToolbarItemL(R_AVKONBUTTON_SHARE_FILE_BUTTON,
- EVtUiCmdShareObjectImage, appUi );
- break;
- /*
- case KSevenToolbarbuttons:
- // toggle camera
- CreateToolbarItemL( R_AVKONBUTTON_TOGGLE_CAMERA_BUTTON,
- EVtUiCmdToolbarToggleCamera, appUi );
-
- // swap images
- CreateToolbarItemL( R_AVKONBUTTON_SWAP_IMAGES_BUTTON,
- EVtUiCmdSwapImagesPlaces, appUi );
-
- // share file
- CreateToolbarItemL(R_AVKONBUTTON_SHARE_FILE_BUTTON,
- EVtUiCmdShareObjectImage, appUi );
-
- CreateToolbarItemL( R_AVKONBUTTON_SNAPSHOT_BUTTON,
- EVtUiCmdSnapshot, appUi );
-
- break;
- */
- default:
- break;
- }
-
- __VTPRINTEXIT( "FloatingToolbar.CreateToolbarButtons" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::DoActivateL
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::DoActivateL()
- {
- __VTPRINTENTER( "FloatingToolbar.DoActivateL" )
- // start blocking key events
- BlockKeyEvents( ETrue );
- // make toolbar visible
- if ( !iToolbar->IsVisible() ||
- !iFeatureManager.UiStates().IsFloatingToolbarVisible() )
- {
- // Show toolbar
- iToolbar->SetToolbarVisibility( ETrue );
- }
- else
- {
- // Undim toolbar
- DimToolbar( EFalse, EFalse );
- if ( iCmdFocus != KErrNotFound )
- {
- // Set focus item
- iToolbar->SetItemDimmed( iCmdFocus, EFalse, ETrue );
- iToolbar->SetFocusedItemL( iCmdFocus );
- iCmdFocus = KErrNotFound;
- }
- }
- iFeatureManager.UiStates().SetIsFloatingToolbarVisible( EFalse );
- CVtUiToolbarBase::DoActivateL();
- __VTPRINTEXIT( "FloatingToolbar.DoActivateL" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::DoDeactivateL
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::DoDeactivateL()
- {
- __VTPRINTENTER( "FloatingToolbar.DoDeactivateL" )
- // stop blocking key events
- BlockKeyEvents( EFalse );
- if ( iToolbar )
- {
- // Save foces item;
- if ( iToolbar->FocusedItem() != KErrNotFound )
- {
- iCmdFocus = iToolbar->FocusedItem();
- }
- TVtUiStates& uiStates = iFeatureManager.UiStates();
- if ( !uiStates.IsFloatingToolbarVisible() )
- {
- __VTPRINT( DEBUG_GEN, "FloatingToolbar.DoDeactivateL.Vs" )
- iToolbar->SetToolbarVisibility( EFalse );
- }
- else
- {
- // Dim toolbar
- __VTPRINT( DEBUG_GEN, "FloatingToolbar.DoDeactivateL.Dim ETrue" )
- DimToolbar( ETrue, EFalse );
- }
- CVtUiAppUi& appUi = iFeatureManager.AppUi();
- const TBool isZoomModeOn( uiStates.IsZoomModeOn() );
- if ( isZoomModeOn )
- {
- // set zoom indicator to be hidden
- appUi.SetZoomModeL( EFalse );
- }
- }
- CVtUiToolbarBase::DoDeactivateL();
- __VTPRINTEXIT( "FloatingToolbar.DoDeactivateL" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::HandleResourceChangeL
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::HandleResourceChangeL( TInt /*aType*/ )
- {
- __VTPRINTENTER( "FloatingToolbar.HandleResourceChangeL" )
- // akntoolbar should allways be in the control stack
- // no need to call
- // iToolbar->HandleResourceChange
- LayoutToolbarL();
- __VTPRINTEXIT( "FloatingToolbar.HandleResourceChangeL" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::RectFromLayout
-// -----------------------------------------------------------------------------
-//
-TRect CVtUiFloatingToolbar::RectFromLayout(
- const TAknWindowComponentLayout& aComponentLayout ) const
- {
- __VTPRINTENTER( "FloatingToolbar.RectFromLayout" )
- TRect mainPaneRect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPaneRect );
-
- TAknWindowLineLayout lineLayout = aComponentLayout.LayoutLine();
- TAknLayoutRect layoutRect;
- layoutRect.LayoutRect( mainPaneRect, lineLayout );
- __VTPRINTEXIT( "FloatingToolbar.RectFromLayout" )
- return layoutRect.Rect();
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::LayoutToolbarL
-// -----------------------------------------------------------------------------
-//
-void CVtUiFloatingToolbar::LayoutToolbarL()
- {
- __VTPRINTENTER( "FloatingToolbar.LayoutToolbarL" )
-
- // Get variety
- TInt variety = GetVariety( Layout_Meta_Data::IsLandscapeOrientation() );
- // get toolbar rect from layout
- TRect toolbarRect = RectFromLayout( AknLayoutScalable_Apps::
- popup_toolbar_window_cp04( variety ).LayoutLine() );
- //set top left coordinates i.e. placeholder
- iToolbar->SetPosition( toolbarRect.iTl );
-
- if ( Layout_Meta_Data::IsLandscapeOrientation() )
- {
- __VTPRINT( DEBUG_GEN, "Toolbar.LayoutToolbarL.LS" )
- iToolbar->SetOrientation( EAknOrientationVertical );
- }
- else
- {
- __VTPRINT( DEBUG_GEN, "Toolbar.LayoutToolbarL.PR" )
- iToolbar->SetOrientation( EAknOrientationHorizontal );
- }
- __VTPRINTEXIT( "FloatingToolbar.LayoutToolbarL" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiFloatingToolbar::GetVariety
-// -----------------------------------------------------------------------------
-//
-TInt CVtUiFloatingToolbar::GetVariety( TBool aIsLandscapeOrientation )
- {
- __VTPRINTENTER( "FloatingToolbar.GetVariety" )
- TInt variety = 0;
- switch ( iNumberOfToolbarButtons )
- {
- case KThreeToolbarbuttons:
- if( aIsLandscapeOrientation )
- {
- variety = 5;
- }
- else
- {
- variety = 9;
- }
- break;
-
- case KFourToolbarbuttons:
- if( aIsLandscapeOrientation )
- {
- variety = 4;
- }
- else
- {
- variety = 8;
- }
- break;
-
- case KFiveToolbarbuttons:
- if( aIsLandscapeOrientation )
- {
- variety = 3;
- }
- else
- {
- variety = 7;
- }
- break;
-
- case KSixToolbarbuttons:
- if( aIsLandscapeOrientation )
- {
- variety = 2;
- }
- else
- {
- variety = 6;
- }
- break;
-
- case KSevenToolbarbuttons:
- if( aIsLandscapeOrientation )
- {
- variety = 1;
- }
- else
- {
- variety = 4;
- }
- break;
-
- default:
-
- break;
- }
- __VTPRINTEXITR( "FloatingToolbar.GetVariety =%d",variety )
- return variety;
- }
-// End of File
-