Beispiel #1
0
// -----------------------------------------------------------------------------
// 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;
    
    }