// ----------------------------------------------------------------------------- // 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 ); } }
// ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- // CTestSDKSkins::TestIDTypeL // ----------------------------------------------------------------------------- TInt CTestSDKSkins::TestIDTypeL( CStifItemParser& /*aItem*/ ) { CAknsBitmapItemData* itemData = CAknsBitmapItemData::NewL(); CleanupStack::PushL( itemData ); STIF_ASSERT_NOT_NULL( itemData ); TAknsItemType typeGet = itemData->Type(); STIF_ASSERT_TRUE( typeGet == EAknsITBitmap ); CleanupStack::PopAndDestroy( itemData ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSkins::TestIIDSetAttributesL // ----------------------------------------------------------------------------- TInt CTestSDKSkins::TestIIDSetAttributesL( CStifItemParser& /*aItem*/ ) { CAknsBitmapItemData* itemData = CAknsBitmapItemData::NewL(); CleanupStack::PushL( itemData ); STIF_ASSERT_NOT_NULL( itemData ); TAknsImageAttributeData attributeData; itemData->SetAttributesL( attributeData ); STIF_ASSERT_NOT_NULL( itemData->Attributes() ); CleanupStack::PopAndDestroy( itemData ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSkins::TestIIDSetParentIIDL // ----------------------------------------------------------------------------- TInt CTestSDKSkins::TestIIDSetParentIIDL( CStifItemParser& /*aItem*/ ) { CAknsBitmapItemData* itemData = CAknsBitmapItemData::NewL(); CleanupStack::PushL( itemData ); STIF_ASSERT_NOT_NULL( itemData ); TAknsItemID itemID; itemData->SetParentIID( itemID ); STIF_ASSERT_TRUE( itemID.iMajor == itemData->ParentIID().iMajor ); STIF_ASSERT_TRUE( itemID.iMinor == itemData->ParentIID().iMinor ); CleanupStack::PopAndDestroy( itemData ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSkins::TestBIDDestroyAndSetBitmapL // ----------------------------------------------------------------------------- TInt CTestSDKSkins::TestBIDDestroyAndSetBitmapL( CStifItemParser& /*aItem*/ ) { CAknsBitmapItemData* itemData = CAknsBitmapItemData::NewL(); CleanupStack::PushL( itemData ); STIF_ASSERT_NOT_NULL( itemData ); CFbsBitmap* bitMap = new (ELeave) CFbsBitmap; CleanupStack::PushL( bitMap ); itemData->DestroyAndSetBitmap( bitMap ); CleanupStack::Pop( bitMap ); CleanupStack::PopAndDestroy( itemData ); return KErrNone; }
// ----------------------------------------------------------------------------- // CTestSDKSkins::TestIIDSetDrawRectL // ----------------------------------------------------------------------------- TInt CTestSDKSkins::TestIIDSetDrawRectL( CStifItemParser& /*aItem*/ ) { CAknsBitmapItemData* itemData = CAknsBitmapItemData::NewL(); CleanupStack::PushL( itemData ); STIF_ASSERT_NOT_NULL( itemData ); TPoint pointTL( 0, 0 ); TPoint pointBR( KLength, KLength ); TRect rect( pointTL, pointBR ); itemData->SetDrawRect( rect ); STIF_ASSERT_TRUE( rect == itemData->DrawRect() ); CleanupStack::PopAndDestroy( itemData ); return KErrNone; }