diff -r 000000000000 -r 05e9090e2422 uigraphics/AknIcon/src/AknSourceBitmapIconManager.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uigraphics/AknIcon/src/AknSourceBitmapIconManager.cpp Thu Dec 17 09:14:12 2009 +0200 @@ -0,0 +1,105 @@ +/* +* Copyright (c) 2002 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 class CAknSourceBitmapIconManager. +* +*/ + + + + +// INCLUDE FILES +#include "AknSourceBitmapIconManager.h" +#include "AknBitmap.h" +#include "AknIconSrvUtils.h" +#include "AknIconSrvTlsData.h" +#include "akniconconfig.h" +// ============================ MEMBER FUNCTIONS =============================== + +// Constructor +CAknSourceBitmapIconManager::CAknSourceBitmapIconManager( CAknIcon* aSourceIcon ) : + iSourceBitmap( aSourceIcon->Bitmap() ), + iSourceMask( aSourceIcon->Mask() ) + { + aSourceIcon->SetBitmap( NULL ); + aSourceIcon->SetMask( NULL ); + delete aSourceIcon; + } + +// Destructor +CAknSourceBitmapIconManager::~CAknSourceBitmapIconManager() + { + delete iSourceBitmap; + delete iSourceMask; + } + +// ----------------------------------------------------------------------------- +// CAknSourceBitmapIconManager::LoadBitmapIconL +// ----------------------------------------------------------------------------- +// +void CAknSourceBitmapIconManager::LoadBitmapIconL() + { + User::LeaveIfError( iBitmap->Duplicate( iSourceBitmap->Handle() ) ); + if ( iMask ) + { + User::LeaveIfError( iMask->Duplicate( iSourceMask->Handle() ) ); + } + } + +// ----------------------------------------------------------------------------- +// CAknSourceBitmapIconManager::DoInitializeIconL +// ----------------------------------------------------------------------------- +// +void CAknSourceBitmapIconManager::DoInitializeIconL( + const TSize& aSize, + TScaleMode aMode, + TInt aAngle ) + { + if ( iInitializedMode == aMode && iInitializedSize == aSize && + iInitializedAngle == aAngle ) + { + return; + } + + iBitmap->Reset(); + if ( iMask ) + { + iMask->Reset(); + } + + AknIconSrvUtils::ScaleBitmapIconL( + aSize, + aMode, + aAngle, + iColor, + iSourceBitmap, + iSourceMask, + iBitmap, + iMask ); + if ( IsAppIcon() ) + { + AknIconSrvUtils::EnsureValidSizeL(iBitmap, iMask); + } + + if (!IsCompressionDisabled()) + { + AknIconConfig::CompressIfPreferred(iBitmap, iMask); + } + iInitializedMode = aMode; + iInitializedSize = aSize; + iInitializedAngle = aAngle; + + + } + +// End of File