diff -r 33a5d2bbf6fc -r 73a1feb507fb mmsharing/mmshui/src/musuizoomindicator.cpp --- a/mmsharing/mmshui/src/musuizoomindicator.cpp Thu Aug 19 09:51:39 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,483 +0,0 @@ -/* -* Copyright (c) 2003, 2004 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: Class for displaying icons in viewfinder view -* -*/ - - -// USER -#include "musuizoomindicator.h" -#include "muslogger.h" -#include "musuizoomindicatorobserver.h" - -// SYSTEM -#include -#include -#include -#include -#include -#include -#include - - - -// CONSTANTS -const TInt KMusUiZoomDisableTime = 3000000; - - -using namespace AknLayoutScalable_Apps; - -_LIT( KMyMbmFileName, "z:Camcorder.mbm"); - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiZoomIndicator::CMusUiZoomIndicator( - TInt aZoomMin, - TInt aZoomMax, - MMusUiZoomIndicatorObserver* aObserver ) - : iZoomMin( aZoomMin ), - iZoomMax( aZoomMax ), - iZoomLevel( aZoomMin ), - iObserver( aObserver ) - { - MUS_LOG( "mus: mus: [MUSUI ] -> CMusUiZoomIndicator::CMusUiZoomIndicator()" ); - // pass - iDisableZoomTimer = NULL; - iTopMargin = 5; - iBottomMargin = 5; - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::CMusUiZoomIndicator()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiZoomIndicator* CMusUiZoomIndicator::NewLC( - TInt aZoomMin, - TInt aZoomMax, - MMusUiZoomIndicatorObserver* aObserver ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::NewLC()" ); - CMusUiZoomIndicator* self = new ( ELeave ) CMusUiZoomIndicator( - aZoomMin, - aZoomMax, - aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::NewLC()" ); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiZoomIndicator* CMusUiZoomIndicator::NewL( - TInt aZoomMin, - TInt aZoomMax, - MMusUiZoomIndicatorObserver* aObserver ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::NewL()" ); - CMusUiZoomIndicator* self = NewLC( aZoomMin, - aZoomMax, - aObserver ); - CleanupStack::Pop( self ); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::NewL()" ); - return self; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::ConstructL() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::ConstructL()" ); - - if( iZoomMin > iZoomMax ) - { - User::Leave( KErrArgument ); - } - - iIconElevator = new (ELeave) CEikImage(); - iIconElevator->SetContainerWindowL( *this ); - - iIconMin = new (ELeave) CEikImage(); - iIconMin->SetContainerWindowL( *this ); - - iIconMax = new (ELeave) CEikImage(); - iIconMax->SetContainerWindowL( *this ); - - iIconBg = new (ELeave) CEikImage(); - iIconBg->SetContainerWindowL( *this ); - - - ConstructImageL( iIconMin, - AknsUtils::SkinInstance(), - KAknsIIDQsnIconColors, - EMbmCamcorderQgn_indi_cams_zoom_bg_min, - EMbmCamcorderQgn_indi_cams_zoom_bg_min); - - ConstructImageL( iIconMax, - AknsUtils::SkinInstance(), - KAknsIIDQsnIconColors, - EMbmCamcorderQgn_indi_cams_zoom_bg_max, - EMbmCamcorderQgn_indi_cams_zoom_bg_max); - - ConstructImageL( iIconBg, - AknsUtils::SkinInstance(), - KAknsIIDQsnIconColors, - EMbmCamcorderQgn_indi_cams_zoom_bg, - EMbmCamcorderQgn_indi_cams_zoom_bg); - - ConstructImageL( iIconElevator, - AknsUtils::SkinInstance(), - KAknsIIDQsnIconColors, - EMbmCamcorderQgn_indi_cams_zoom_elevator, - EMbmCamcorderQgn_indi_cams_zoom_elevator); - - - UpdateZoomLayout(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::ConstructL()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -CMusUiZoomIndicator::~CMusUiZoomIndicator() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::~CMusUiZoomIndicator()" ); - - DisableTimer(); - delete iDisableZoomTimer; - - delete iIconElevator; - delete iIconMin; - delete iIconMax; - delete iIconBg; - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::~CMusUiZoomIndicator()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::SetZoomLevel( TInt aZoomLevel ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiZoomIndicator::SetZoomLevel( %d ) ", - aZoomLevel ); - if( aZoomLevel >= iZoomMin && aZoomLevel <= iZoomMax ) - { - iZoomLevel = aZoomLevel; - } - DisableTimer(); - UpdateZoomLayout(); - EnableTimer(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::SetZoomLevel()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CMusUiZoomIndicator::GetZoomLevel() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::GetZoomLevel()" ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::GetZoomLevel()" ); - return iZoomLevel; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::SetZoomMin( TInt aZoomMin ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiZoomIndicator::SetZoomMin( %d ) ", aZoomMin ); - if( aZoomMin >= 0 && aZoomMin < iZoomMax ) - { - iZoomMin = aZoomMin; - } - DisableTimer(); - UpdateZoomLayout(); - EnableTimer(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::SetZoomMin()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::SetZoomMax( TInt aZoomMax ) - { - MUS_LOG1( "mus: [MUSUI ] -> CMusUiZoomIndicator::SetZoomMax( %d ) ", aZoomMax ); - if( aZoomMax >= iZoomMin ) - { - iZoomMax = aZoomMax; - } - DisableTimer(); - UpdateZoomLayout(); - EnableTimer(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::SetZoomMax()" ); - } - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::SetFullRect( const TRect aRect ) - { - iFullRect = aRect; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::SizeChanged() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::SizeChanged()" ); - UpdateZoomLayout(); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::SizeChanged()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::Draw( const TRect& aRect ) const - { - - CWindowGc& gc = SystemGc(); - - TRect rect( 0,0, iFullRect.Width(), iFullRect.Height() ); - //TRect rect( iFullRect.Width()-20, iFullRect.iTl.iY, iFullRect.iBr.iX, iFullRect.iBr.iY ); //TRect( 40,0,380,382 ) ); - -/* - AknsUtils::RegisterControlPosition( this, TPoint( iFullRect.Width()-20, iFullRect.iTl.iY ) ); - // gc.Clear( aRect ); - MAknsSkinInstance* skin = AknsUtils::SkinInstance(); - MAknsControlContext* cc = AknsDrawUtils::ControlContext( this ); - if(!AknsDrawUtils::Background( skin, cc,this,gc,rect,KAknsDrawParamDefault )) - { -*/ - MUS_LOG( "mus: [MUSUI ] Skin not valid or not found" ); - gc.SetBrushColor( iEikonEnv->ControlColor( EColorWindowBackground, *this ) ); - gc.SetBrushStyle( CGraphicsContext::ESolidBrush ); - gc.Clear( aRect ); -// } - -} - - -// ----------------------------------------------------------------------------- -// Draw all icons and texts to given graphics context. -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::DrawIcons( const TRect& /*aRect*/ ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::DrawIcons()" ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::DrawIcons()" ); - } - - -// ----------------------------------------------------------------------------- -// Draw all icons and texts to given graphics context. -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::UpdateZoomLayout() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::UpdateZoomLayout()" ); - - TSize sz = iIconBg->MinimumSize(); - - TRect rect = Rect(); - - // TODO: Remove all magic constants! - AknLayoutUtils::LayoutImage(iIconMax, Rect(), 0, 0, 0, 0, 0, 20, 20 ); - AknLayoutUtils::LayoutImage(iIconMin, Rect(), 0, 0, 68, 0, 0, 20, 20 ); - AknLayoutUtils::LayoutImage(iIconBg, Rect(), 0, 0, 20, 0, 0, 20, 48 ); - - // 20 - 68 - iScaleStep = ( 48 << 8 ) / - ( ( iZoomMax - iZoomMin ) ); - iScaleY = ( 58 ) - - ( ( iScaleStep * iZoomLevel ) >> 8 ); - - - AknLayoutUtils::LayoutImage(iIconElevator, Rect(), 0, 0, iScaleY, 0, 0, 20, 20 ); - - DrawNow(); - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::UpdateZoomLayout()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -TInt CMusUiZoomIndicator::CountComponentControls() const - { - return 4; //iIconElevator ? 1 : 0; // return nbr of controls inside this container - //return 0; // return nbr of controls inside this container - } - - -// -------------------------------------------------------------------------- -// Called by framework to retrieve the control specified by index. -// -------------------------------------------------------------------------- -// -CCoeControl* CMusUiZoomIndicator::ComponentControl( TInt aIndex ) const - { - switch ( aIndex ) - { - - case 0: - return iIconMin; - case 1: - return iIconMax; - case 2: - return iIconBg; - case 3: - return iIconElevator; - - default: - return NULL; - } - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::ConstructImageL( CEikImage* aImage, - MAknsSkinInstance* aSkin, - const TAknsItemID& aId, - TInt aBitmapId, - TInt aMaskId ) - - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::ConstructIconL()" ); - - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - - TParse parse; - parse.Set( KMyMbmFileName, &KDC_APP_RESOURCE_DIR, NULL ); - - AknsUtils::CreateIconL(aSkin, - aId, - bitmap, - mask, - parse.FullName(), - aBitmapId, - aMaskId); - - aImage->SetPicture(bitmap, mask); // Owership transferred to CEikImage - - - - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::ConstructIconL()" ); - - } - - - -// ----------------------------------------------------------------------------- -// Callback for disable zoom indicator. -// ----------------------------------------------------------------------------- -// -TInt CMusUiZoomIndicator::DisableZoomIndicator( TAny* aThis ) - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::DisableZoomIndicator()" ); - CMusUiZoomIndicator* indicator = - static_cast< CMusUiZoomIndicator* > ( aThis ); - indicator->DisableTimer(); - if( indicator->iObserver ) - { - indicator->iObserver->DisableZoomIndicator(); - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::DisableZoomIndicator()" ); - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::DisableTimer() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::DisableTimer()" ); - if ( iDisableZoomTimer ) - { - if ( iDisableZoomTimer->IsActive() ) - { - iDisableZoomTimer->Cancel(); - } - } - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::DisableTimer()" ); - } - - -// ----------------------------------------------------------------------------- -// -// ----------------------------------------------------------------------------- -// -void CMusUiZoomIndicator::EnableTimer() - { - MUS_LOG( "mus: [MUSUI ] -> CMusUiZoomIndicator::EnableTimer()" ); - - if ( !iDisableZoomTimer ) - { - TRAP_IGNORE( iDisableZoomTimer = CPeriodic::NewL( CActive::EPriorityStandard ) ); - } - else - { - DisableTimer(); - } - - // Start disable timer; callback triggers exit. - iDisableZoomTimer->Start( KMusUiZoomDisableTime, - KMusUiZoomDisableTime, - TCallBack( DisableZoomIndicator, this ) ); - MUS_LOG( "mus: [MUSUI ] <- CMusUiZoomIndicator::EnableTimer()" ); - } - - -// End of File - - -