--- /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