// ----------------------------------------------------------------------------- // AknsUtils::CreateIconLC // ----------------------------------------------------------------------------- // EXPORT_C void AknsUtils::CreateIconLC( MAknsSkinInstance* aInstance, const TAknsItemID& aID, CFbsBitmap*& aBitmap, const TDesC& aFilename, const TInt aFileBitmapId ) { CFbsBitmap* bitmap = NULL; if( aInstance ) { CAknsBitmapItemData* bmpData = static_cast<CAknsBitmapItemData*>( aInstance->CreateUncachedItemDataL( aID, EAknsITBitmap ) ); CleanupStack::PushL( bmpData ); if( bmpData && bmpData->Bitmap() ) { // Detach bitmap bitmap = bmpData->Bitmap(); bmpData->SetBitmap( NULL ); } CleanupStack::PopAndDestroy( bmpData ); } if( bitmap ) { CleanupStack::PushL( bitmap ); } else { if( !aFilename.Length() ) { User::Leave( KErrNotFound ); } // Fallback bitmap = AknIconUtils::CreateIconL( aFilename, aFileBitmapId ); CleanupStack::PushL( bitmap ); // bitmap } if( bitmap ) { // Ownership transferred aBitmap = bitmap; } else { User::Leave( KErrUnknown ); } }
// ----------------------------------------------------------------------------- // CTestSDKSkins::TestBIDSetBitmapL // ----------------------------------------------------------------------------- TInt CTestSDKSkins::TestBIDSetBitmapL( CStifItemParser& /*aItem*/ ) { CAknsBitmapItemData* itemData = CAknsBitmapItemData::NewL(); CleanupStack::PushL( itemData ); STIF_ASSERT_NOT_NULL( itemData ); CFbsBitmap* bitMap = new (ELeave) CFbsBitmap; CleanupStack::PushL( bitMap ); itemData->SetBitmap( bitMap ); STIF_ASSERT_TRUE( bitMap == itemData->Bitmap() ); CleanupStack::Pop( bitMap ); CleanupStack::PopAndDestroy( itemData ); return KErrNone; }