--- a/vtuis/videotelui/src/CVtUiZoomControl.cpp Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,856 +0,0 @@
-/*
-* Copyright (c) 2004, 2005 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: Implementation of the CVtUiZoomControl control class.
-*
-*/
-
-
-
-// INCLUDE FILES
-#include "CVtUiZoomControl.h"
-#include "VtUiLayout.h"
-#include <aknsutils.h>
-#include <aknsdrawutils.h>
-#include "videotelui.hrh"
-
-#include <cvtlogger.h>
-// CONSTANTS
-
-// Maximum amount of steps.
-const TInt KVtUiZoomControlMaxSteps = 11;
-
-// Minimum amount of steps.
-const TInt KVtUiZoomControlMinSteps = 1;
-
-// Fixed point position.
-const TInt KVtUiZoomControlFixed = 16;
-
-// Fixed point number, corresponds to one.
-const TInt KVtUiZoomControlOne = ( 1 << KVtUiZoomControlFixed );
-
-// Amount of partial bits. It is expected that
-// KVtUiZoomControlFixed >= KVtUiZoomControlPartial.
-const TInt KVtUiZoomControlPartial = 8;
-
-// Maximum duration of zooming from minimum to maximum, in microseconds.
-const TInt KVtUiZoomDurationMax = 2000000;
-
-// Maximum duration to increase zoom step by one, in microseconds.
-const TInt KVtUiZoomStepDurationMax = 200000;
-
-// Index of transparent color.
-const TInt KVtUiZoomTransparent = 0;
-
-// MODULE DATA STRUCTURES
-
-/**
-* Inner class to hold everything related to one bitmap.
-* @since Series 60 2.6
-*/
-class CVtUiZoomControl::CBitmap
- : public CBase
- {
- public: // Constructors and destructors.
-
- /**
- * Constructor.
- */
- CBitmap();
-
- /**
- * Symbian OS constructor.
- * @param aSize size of the bitmap.
- * @param aMode display mode of the bitmap.
- */
- void ConstructL(
- const TSize& aSize,
- const TDisplayMode aMode );
-
- /**
- * Destructor.
- */
- ~CBitmap();
-
- public:
-
- /**
- * Returns bitmap.
- * @return bitmap, ownership not passed.
- */
- inline CFbsBitmap* Bitmap() const;
-
- /**
- * Returns bitmap context.
- * @return bitmap context, ownership not passed.
- */
- inline CFbsBitGc* Context() const;
-
- private:
-
- // Owned bitmap.
- CFbsBitmap* iBitmap;
-
- // Owned device.
- CFbsBitmapDevice* iDevice;
-
- // Owned context.
- CFbsBitGc* iContext;
-
- };
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CVtUiZoomControl
-// C++ constructor can NOT contain any code, that
-// might leave.
-// -----------------------------------------------------------------------------
-//
-CVtUiZoomControl::CVtUiZoomControl( CVtUiBitmapManager& aBitmapManager )
- : iBitmapManager( aBitmapManager )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::ConstructL
-// Symbian 2nd phase constructor.
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::ConstructL()
- {
- iZoomDirId =
- iBitmapManager.AddBitmapsL(
- EVtUiBitmap_qgn_indi_zoom_dir,
- EVtUiBitmap_qgn_indi_zoom_dir_mask,
- ETrue );
- iZoomAreaId =
- iBitmapManager.AddBitmapL( EVtUiBitmap_qgn_graf_zoom_area, EFalse );
- iBitmapManager.SetAspectRatio( iZoomAreaId, EFalse );
-
- iZoomMinId =
- iBitmapManager.AddBitmapL( EVtUiBitmap_qgn_indi_zoom_min, EFalse );
- iBitmapManager.SetAspectRatio( iZoomMinId, EFalse );
-
- iZoomMaxId =
- iBitmapManager.AddBitmapL( EVtUiBitmap_qgn_indi_zoom_max, EFalse );
- iBitmapManager.SetAspectRatio( iZoomMaxId, EFalse );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::~CVtUiZoomControl
-// Destructor.
-// -----------------------------------------------------------------------------
-//
-CVtUiZoomControl::~CVtUiZoomControl()
- {
- AknsUtils::DeregisterControlPosition( this );
-
- iBitmapManager.RemoveBitmap( iZoomDirId );
- iBitmapManager.RemoveBitmap( iZoomAreaId );
- iBitmapManager.RemoveBitmap( iZoomMinId );
- iBitmapManager.RemoveBitmap( iZoomMaxId );
-
- delete iZoomPartialMask;
- delete iZoomPartialShade;
- delete iZoomPartialShadeMask;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::SetZoomParams
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::SetZoomParams(
- const TInt aStepCount,
- const TInt aCurrentStep )
- {
- iCurrentZoomStep = aCurrentStep;
- iMaxZoomStep = aStepCount;
- if ( iMaxZoomStep < 0 )
- {
- iMaxZoomStep = 0;
- }
- iCurrentZoomStep = Max( Min( iCurrentZoomStep, iMaxZoomStep ), 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CommitL
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::CommitL()
- {
- ReportEventL( MCoeControlObserver::EEventStateChanged );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::IsZoomEnabled
-// -----------------------------------------------------------------------------
-//
-TBool CVtUiZoomControl::IsZoomEnabled() const
- {
- return ( iMaxZoomStep > 0 );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::GetZoomParams
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::GetZoomParams(
- TInt& aStepCount,
- TInt& aCurrentStep ) const
- {
- aStepCount = iMaxZoomStep;
- aCurrentStep = iCurrentZoomStep;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::UpdateZoomL
-// -----------------------------------------------------------------------------
-//
-TBool CVtUiZoomControl::UpdateZoomL()
- {
- const TInt oldZoomStep = iCurrentZoomStep;
- if ( iZoomDirection )
- {
- __VTPRINT( DEBUG_GEN, "VtUiZmCtl.UpdZoom" )
- TTime timeNow;
- timeNow.UniversalTime();
-
- const TTimeIntervalMicroSeconds duration =
- timeNow.MicroSecondsFrom( iZoomStartTime );
-
- if ( duration >= TInt64( KVtUiZoomDurationMax ) )
- {
- // Duration is over maximum, so we can stop zooming.
- if ( iZoomDirection > 0 )
- {
- iCurrentZoomStep = iMaxZoomStep;
- }
- else
- {
- iCurrentZoomStep = 0;
- }
-
- iZoomDirection = 0;
- }
- else if ( duration < TInt64( 0 ) )
- {
- // Clock has been changed. Stop zooming.
- iZoomDirection = 0;
- }
- else
- {
- // Zoom is increased at least by one step per 0.2 seconds.
- TInt64 minimum( duration.Int64() );
- minimum /= KVtUiZoomStepDurationMax;
-
- // Zoom is increased from minimum to maximum in 2 seconds.
- TInt64 maximum( duration.Int64() );
- maximum *= iMaxZoomStep;
- maximum /= KVtUiZoomDurationMax;
-
- // Select maximum.
- TInt zoomStepDelta =
- iZoomDirection * Max( I64INT( minimum ), I64INT( maximum ) );
- TInt zoomStep = iZoomStepStart + zoomStepDelta;
-
- // If minimum has been reached, zooming can be stopped.
- if ( zoomStep < 0 )
- {
- zoomStep = 0;
- iZoomDirection = 0;
- }
- // If maximum has been reached, zooming can be stopped.
- if ( zoomStep > iMaxZoomStep )
- {
- zoomStep = iMaxZoomStep;
- iZoomDirection = 0;
- }
-
- iCurrentZoomStep = zoomStep;
- }
- __VTPRINT( DEBUG_GEN, "VtUiZmCtl.chk" )
- }
-
- const TBool updateNeeded = ( oldZoomStep != iCurrentZoomStep );
- if ( updateNeeded )
- {
- __VTPRINT( DEBUG_GEN, "VtUiZmCtl.upd" )
- ReportEventL( MCoeControlObserver::EEventStateChanged );
- }
-
- return updateNeeded;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::StopZoom
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::StopZoom()
- {
- iZoomDirection = 0;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::OfferKeyEventL
-// -----------------------------------------------------------------------------
-//
-TKeyResponse CVtUiZoomControl::OfferKeyEventL(
- const TKeyEvent& aKeyEvent,
- TEventCode aType )
- {
- TKeyResponse response = EKeyWasNotConsumed;
-
- if ( aKeyEvent.iScanCode == EStdKeyUpArrow ||
- aKeyEvent.iScanCode == EStdKeyDownArrow ||
- aKeyEvent.iCode == EKeyZoomIn ||
- aKeyEvent.iCode == EKeyZoomOut )
- {
- switch ( aType )
- {
- case EEventKey:
- {
- TInt direction = +1;
- if ( aKeyEvent.iScanCode == EStdKeyDownArrow ||
- aKeyEvent.iCode == EKeyZoomOut )
- {
- direction = -1;
- }
-
- if ( !aKeyEvent.iRepeats )
- {
- // Update start parameters.
- iZoomDirection = direction;
- iZoomStepStart = iCurrentZoomStep + direction;
- iZoomStepStart = Min( iZoomStepStart, iMaxZoomStep );
- iZoomStepStart = Max( iZoomStepStart, 0 );
- iZoomStartTime.UniversalTime();
- }
-
- (void)UpdateZoomL();
- }
- break;
-
- case EEventKeyUp:
- // Stop zooming.
- iZoomDirection = 0;
- break;
-
- default:
- // Do nothing.
- break;
- }
-
- response = EKeyWasConsumed;
- }
-
- return response;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::HandleResourceChange
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::HandleResourceChange(
- TInt aType )
- {
- if ( aType == KAknsMessageSkinChange )
- {
- // We must refresh partial bitmap upon next redraw.
- iZoomMaskPartial = KErrNotFound;
- iZoomMaskRow = KErrNotFound;
- }
-
- CCoeControl::HandleResourceChange( aType );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::Draw
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::Draw( const TRect& /*aRect*/ ) const
- {
- __VTPRINT( DEBUG_GEN, "VtUiZmCtl.Draw" )
- iBitmapManager.SetSizeAndColor(
- iZoomDirId,
- iZoomDirLayout.Rect().Size(),
- iZoomDirLayout.Color() );
- iBitmapManager.SetSize(
- iZoomAreaId,
- iZoomAreaLayout.Rect().Size() );
- iBitmapManager.SetSize(
- iZoomMinId,
- iZoomAreaLayout.Rect().Size() );
- iBitmapManager.SetSize(
- iZoomMaxId,
- iZoomAreaLayout.Rect().Size() );
-
- CFbsBitmap* maxBitmap = NULL;
- CFbsBitmap* minBitmap = NULL;
- CFbsBitmap* areaBitmap = NULL;
- iBitmapManager.GetBitmap( iZoomMaxId, maxBitmap );
- iBitmapManager.GetBitmap( iZoomMinId, minBitmap );
- iBitmapManager.GetBitmap( iZoomAreaId, areaBitmap );
-
- TInt full;
- TInt partial;
- TRect drawRect;
- TPoint drawPos;
-
- DetermineSteps( full, partial );
- if ( areaBitmap && partial && ( full < KVtUiZoomControlMaxSteps ) )
- {
- // First generate bitmaps, so that drawing can be done
- // quickly in sequence.
- GetPositionAndRect(
- drawPos,
- drawRect,
- full + 1 );
-
- if ( !GenerateZoomMaskBitmap(
- areaBitmap,
- partial,
- drawRect.iTl.iY,
- drawRect.Size() ) )
- {
- // If zoom mask generation fails, then we have no choice
- // than not to draw.
- partial = 0;
- }
- }
-
- CWindowGc& gc = SystemGc();
- gc.SetBrushStyle( CGraphicsContext::ENullBrush );
-
- // Draw zoom direction indicator:
-
- CFbsBitmap* zoomDirBitmap = NULL;
- CFbsBitmap* zoomDirMask = NULL;
- iBitmapManager.GetBitmaps( iZoomDirId, zoomDirBitmap, zoomDirMask );
- if ( zoomDirBitmap && zoomDirMask )
- {
- iZoomDirLayout.DrawImage( gc, zoomDirBitmap, zoomDirMask );
- }
-
- // Draw zoom indicator:
- if ( !areaBitmap )
- {
- // If area bitmap is invalid, then we have to return.
- return;
- }
-
- if ( maxBitmap )
- {
- // First, draw maximum area.
- for ( TInt index = KVtUiZoomControlMinSteps;
- index <= full;
- index++ )
- {
- GetPositionAndRect(
- drawPos,
- drawRect,
- index );
- gc.BitBltMasked(
- drawPos,
- maxBitmap,
- drawRect,
- areaBitmap,
- ETrue );
- }
- }
-
- if ( minBitmap && ( full < KVtUiZoomControlMaxSteps ) )
- {
- // Then draw minimum area.
- for ( TInt index = full + 1;
- index <= KVtUiZoomControlMaxSteps;
- index++ )
- {
- GetPositionAndRect(
- drawPos,
- drawRect,
- index );
- gc.BitBltMasked(
- drawPos,
- minBitmap,
- drawRect,
- areaBitmap,
- ETrue );
- }
-
- if ( maxBitmap && partial && iZoomPartialMask )
- {
- // Finally draw partial area.
- GetPositionAndRect(
- drawPos,
- drawRect,
- full + 1 );
- gc.BitBltMasked(
- drawPos,
- maxBitmap,
- drawRect,
- iZoomPartialMask->Bitmap(),
- ETrue );
- }
- }
-
- __VTPRINT( DEBUG_GEN, "VtUiZmCtl.Draw.ok" )
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::SizeChanged
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::SizeChanged()
- {
- AknsUtils::RegisterControlPosition( this );
-
- TRect parent( Rect() );
- TAknWindowLineLayout rect;
- if ( parent.IsEmpty() )
- {
- return;
- }
-
- {
- TAknLayoutRect& tmpRect = iZoomDirLayout;
- VtUiLayout::GetZoomPaneLayout( rect );
- tmpRect.LayoutRect( parent, rect );
- parent = tmpRect.Rect();
- iZoomPaneRect = parent;
- }
-
- VtUiLayout::GetZoomDirLayout( rect );
- iZoomDirLayout.LayoutRect( parent, rect );
- iBitmapManager.SetSizeAndColor(
- iZoomDirId,
- iZoomDirLayout.Rect().Size(),
- iZoomDirLayout.Color() );
-
- VtUiLayout::GetZoomAreaLayout( rect );
- iZoomAreaLayout.LayoutRect( parent, rect );
- iBitmapManager.SetSize(
- iZoomAreaId,
- iZoomAreaLayout.Rect().Size() );
- iBitmapManager.SetSize(
- iZoomMinId,
- iZoomAreaLayout.Rect().Size() );
- iBitmapManager.SetSize(
- iZoomMaxId,
- iZoomAreaLayout.Rect().Size() );
- (void) CreateBitmaps();
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::PositionChanged
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::PositionChanged()
- {
- AknsUtils::RegisterControlPosition( this );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::DetermineSteps
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::DetermineSteps(
- TInt& aFullSteps,
- TInt& aPartialStep ) const
- {
- aFullSteps = 1;
- aPartialStep = 0;
-
- TInt currentZoomStep = Max( Min( iCurrentZoomStep, iMaxZoomStep ), 0 );
-
- if ( iMaxZoomStep > 0 )
- {
- TInt zoomDeltaSteps = 0;
- TInt zoomDeltaMaxSteps = 0;
-
- // Formula equals: x = ( N * ( y - 1 ) ) / 10.
-
- aFullSteps = KVtUiZoomControlMinSteps;
- const TInt divider =
- KVtUiZoomControlMaxSteps - KVtUiZoomControlMinSteps;
- for ( TInt row = KVtUiZoomControlMaxSteps - 1;
- row >= KVtUiZoomControlMinSteps - 1;
- row-- )
- {
- const TInt zoomStartSteps =
- ( iMaxZoomStep * row ) / divider;
- const TInt previousZoomStartSteps =
- ( iMaxZoomStep * ( row - 1 ) ) / divider;
-
- if ( ( currentZoomStep >= zoomStartSteps ) &&
- ( previousZoomStartSteps != zoomStartSteps ) )
- {
- aFullSteps = ( row + 1 );
- zoomDeltaSteps = currentZoomStep - zoomStartSteps;
- zoomDeltaMaxSteps = ( iMaxZoomStep * ( row + 1 ) ) / divider;
- zoomDeltaMaxSteps -= zoomStartSteps;
- break;
- }
- }
-
- aPartialStep = 0;
- if ( zoomDeltaSteps && zoomDeltaMaxSteps )
- {
- TInt64 partial( zoomDeltaSteps );
- partial *= KVtUiZoomControlOne;
- partial /= zoomDeltaMaxSteps;
-
- partial >>= ( KVtUiZoomControlFixed - KVtUiZoomControlPartial );
- aPartialStep = I64INT( partial );
- }
- }
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::GenerateZoomMaskBitmap
-// -----------------------------------------------------------------------------
-//
-TBool CVtUiZoomControl::GenerateZoomMaskBitmap(
- CFbsBitmap* aMaskBitmap,
- const TInt aPartial,
- const TInt aRow,
- const TSize& aRowSize ) const
- {
- if ( iZoomPartialMask &&
- ( ( iZoomMaskPartial != aPartial ) ||
- ( iZoomMaskRow != aRow ) ) )
- {
- DoGenerateZoomMaskBitmap(
- aMaskBitmap,
- aPartial,
- aRow,
- aRowSize );
- }
- return ( iZoomPartialMask != NULL );
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::DoGenerateZoomMaskBitmap
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::DoGenerateZoomMaskBitmap(
- CFbsBitmap* aMaskBitmap,
- const TInt aPartial,
- const TInt aRow,
- const TSize& aRowSize ) const
- {
- CFbsBitGc* bitmapMaskGc = iZoomPartialMask->Context();
-
- CFbsBitmap* shade = iZoomPartialShade->Bitmap();
- CFbsBitGc* shadeGc = iZoomPartialShade->Context();
-
- // Fill shade with aPartial.
- shadeGc->SetPenStyle( CGraphicsContext::ENullPen );
- shadeGc->SetBrushColor( TRgb::Gray256( aPartial ) );
- shadeGc->SetBrushStyle( CGraphicsContext::ESolidBrush );
- shadeGc->Clear();
-
- // Now grab one row from iZoomAreaBitmap.
- CFbsBitmap* mask = iZoomPartialShadeMask->Bitmap();
- CFbsBitGc* maskGc = iZoomPartialShadeMask->Context();
-
- // Clear with transparency.
- maskGc->SetPenStyle( CGraphicsContext::ENullPen );
- maskGc->SetBrushColor( TRgb::Gray2( 1 ) ); // transparency
- maskGc->SetBrushStyle( CGraphicsContext::ESolidBrush );
- maskGc->Clear();
-
- maskGc->SetPenStyle( CGraphicsContext::ENullPen );
- // Blit appropriate region from aMaskBitmap to maskGc.
- maskGc->BitBlt(
- TPoint( 0, aRow ),
- aMaskBitmap,
- TRect( TPoint( 0, aRow ), aRowSize ) );
-
- // Now fill bitmapMask with black (= transparency).
- bitmapMaskGc->SetPenStyle( CGraphicsContext::ENullPen );
- bitmapMaskGc->SetBrushColor( TRgb::Gray256( KVtUiZoomTransparent ) );
- bitmapMaskGc->SetBrushStyle( CGraphicsContext::ESolidBrush );
- bitmapMaskGc->Clear();
-
- // Then blit shade masked
- TPoint origin;
- TRect rect( origin, shade->SizeInPixels() );
-
- bitmapMaskGc->BitBltMasked( origin, shade, rect, mask, ETrue );
-
- iZoomMaskPartial = aPartial;
- iZoomMaskRow = aRow;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CreateBitmaps
-// -----------------------------------------------------------------------------
-//
-TInt CVtUiZoomControl::CreateBitmaps()
- {
- TRAPD( err, CreateBitmapsL() );
- return err;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CreateBitmapsL
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::CreateBitmapsL()
- {
- TBool requiredToCreate = ETrue;
- TSize requiredSize = SizeOfBitmap();
- if ( iZoomPartialMask )
- {
- requiredToCreate =
- ( requiredSize != iZoomPartialMask->Bitmap()->SizeInPixels() );
- }
-
- if ( requiredToCreate )
- {
- iZoomMaskPartial = KErrNotFound;
- iZoomMaskRow = KErrNotFound;
-
- // Delete old ones away.
- delete iZoomPartialMask;
- iZoomPartialMask = NULL;
-
- delete iZoomPartialShade;
- iZoomPartialShade = NULL;
-
- delete iZoomPartialShadeMask;
- iZoomPartialShadeMask = NULL;
-
- CBitmap* zoomPartialMask = new ( ELeave ) CBitmap;
- CleanupStack::PushL( zoomPartialMask );
- zoomPartialMask->ConstructL( requiredSize, EGray256 );
-
- CBitmap* zoomPartialShade = new ( ELeave ) CBitmap;
- CleanupStack::PushL( zoomPartialShade );
- zoomPartialShade->ConstructL( requiredSize, EGray256 );
-
- CBitmap* zoomPartialShadeMask = new ( ELeave ) CBitmap;
- CleanupStack::PushL( zoomPartialShadeMask );
- zoomPartialShadeMask->ConstructL( requiredSize, EGray2 );
-
- // Pop zoomPartialShadeMask, zoomPartialShade & zoomPartialMask.
- CleanupStack::Pop( 3, zoomPartialMask );
- iZoomPartialMask = zoomPartialMask;
- iZoomPartialShade = zoomPartialShade;
- iZoomPartialShadeMask = zoomPartialShadeMask;
- }
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::SizeOfBitmap
-// -----------------------------------------------------------------------------
-//
-TSize CVtUiZoomControl::SizeOfBitmap() const
- {
- // Bitmaps fill the whole zoom area.
- return iZoomAreaLayout.Rect().Size();
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::GetPositionAndRect
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::GetPositionAndRect(
- TPoint& aPosition,
- TRect& aSourceRect,
- const TInt aZoomStep ) const
- {
- TAknWindowLineLayout rect;
- TAknLayoutRect layout;
- const TRect zoomAreaRect = iZoomAreaLayout.Rect();
- const TRect& zoomParentRect = iZoomPaneRect;
-
- VtUiLayout::GetZoomStepLayout(
- rect,
- aZoomStep );
- layout.LayoutRect( zoomParentRect, rect );
- aSourceRect = layout.Rect();
- aPosition = aSourceRect.iTl;
-
- aSourceRect.iTl -= zoomAreaRect.iTl;
- aSourceRect.iBr -= zoomAreaRect.iTl;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CBitmap::CBitmap
-// -----------------------------------------------------------------------------
-//
-CVtUiZoomControl::CBitmap::CBitmap()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CBitmap::ConstructL
-// -----------------------------------------------------------------------------
-//
-void CVtUiZoomControl::CBitmap::ConstructL(
- const TSize& aSize,
- const TDisplayMode aMode )
- {
- CFbsBitmap* bitmap = new ( ELeave ) CFbsBitmap;
- CleanupStack::PushL( bitmap );
-
- User::LeaveIfError(
- bitmap->Create( aSize, aMode ) );
-
- CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( bitmap );
- CleanupStack::PushL( device );
-
- CFbsBitGc* context = NULL;
- User::LeaveIfError( device->CreateContext( context ) );
- User::LeaveIfNull( context );
-
- CleanupStack::Pop( device );
- CleanupStack::Pop( bitmap );
-
- iContext = context;
- iDevice = device;
- iBitmap = bitmap;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CBitmap::~CBitmap
-// -----------------------------------------------------------------------------
-//
-CVtUiZoomControl::CBitmap::~CBitmap()
- {
- delete iContext;
- delete iDevice;
- delete iBitmap;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CBitmap::Bitmap
-// -----------------------------------------------------------------------------
-//
-inline CFbsBitmap* CVtUiZoomControl::CBitmap::Bitmap() const
- {
- return iBitmap;
- }
-
-// -----------------------------------------------------------------------------
-// CVtUiZoomControl::CBitmap::Context
-// -----------------------------------------------------------------------------
-//
-inline CFbsBitGc* CVtUiZoomControl::CBitmap::Context() const
- {
- return iContext;
- }
-
-// End of File