skins/AknSkins/src/AknsDrawUtils.cpp
branchRCL_3
changeset 54 08459e712984
parent 2 abcbdabaa4c5
child 58 a2f9480e2280
equal deleted inserted replaced
45:6ef40bf8fd34 54:08459e712984
   263 //
   263 //
   264 // Draws the specified part of an image with layout.
   264 // Draws the specified part of an image with layout.
   265 //
   265 //
   266 // -----------------------------------------------------------------------------
   266 // -----------------------------------------------------------------------------
   267 //
   267 //
   268 static TBool DrawPartialCachedImage(
   268 static TBool DrawPartialCachedImageL(
   269     MAknsSkinInstance* aSkin, CBitmapContext& aGc, const TRect& aTrgLayoutRect,
   269     MAknsSkinInstance* aSkin, CBitmapContext& aGc, const TRect& aTrgLayoutRect,
   270     const TRect& aTrgDrawRect, CAknsImageItemData* aImgData,
   270     const TRect& aTrgDrawRect, CAknsImageItemData* aImgData,
   271     const TAknsItemID& aIID, const TAknsImageAttributeData* aAttr,
   271     const TAknsItemID& aIID, const TAknsImageAttributeData* aAttr,
   272     const TInt aDrawParam )
   272     const TInt aDrawParam )
   273     {
   273     {
   282 
   282 
   283         trgLayoutRect.iTl -= tl;
   283         trgLayoutRect.iTl -= tl;
   284         trgLayoutRect.iBr += br;
   284         trgLayoutRect.iBr += br;
   285         }
   285         }
   286 
   286 
   287     return AknsScalabilityUtils::DrawPartialCachedImage( aSkin, aGc, trgLayoutRect,
   287     return AknsScalabilityUtils::DrawPartialCachedImageL( aSkin, aGc, trgLayoutRect,
   288         aTrgDrawRect, aImgData, aIID, aAttr, aDrawParam );
   288         aTrgDrawRect, aImgData, aIID, aAttr, aDrawParam );
   289     }
   289     }
   290 
   290 
   291 static TBool IsBackgroundItem( const TAknsItemID& aIID,CAknsAppSkinInstance* aSkin )
   291 static TBool IsBackgroundItem( const TAknsItemID& aIID,CAknsAppSkinInstance* aSkin )
   292     {
   292     {
   372 //
   372 //
   373 // Blits given image to gc.
   373 // Blits given image to gc.
   374 //
   374 //
   375 // -----------------------------------------------------------------------------
   375 // -----------------------------------------------------------------------------
   376 //
   376 //
   377 inline static TBool Blit(
   377 inline static TBool BlitL(
   378     MAknsSkinInstance* aSkin, CBitmapContext& aGc, const TRect& aTrgRect,
   378     MAknsSkinInstance* aSkin, CBitmapContext& aGc, const TRect& aTrgRect,
   379     CAknsImageItemData* aImgData, const TAknsItemID& aIID,
   379     CAknsImageItemData* aImgData, const TAknsItemID& aIID,
   380     const TAknsBackground* aLayout, const TPoint& aPADelta,
   380     const TAknsBackground* aLayout, const TPoint& aPADelta,
   381     const TInt aDrawParam )
   381     const TInt aDrawParam )
   382     {
   382     {
   429     layoutRect.Move( -aPADelta );
   429     layoutRect.Move( -aPADelta );
   430 
   430 
   431     TRect drawRect(aTrgRect);
   431     TRect drawRect(aTrgRect);
   432     drawRect.Intersection( layoutRect );
   432     drawRect.Intersection( layoutRect );
   433 
   433 
   434     return DrawPartialCachedImage( aSkin, aGc, layoutRect, drawRect,
   434     return DrawPartialCachedImageL( aSkin, aGc, layoutRect, drawRect,
   435         aImgData, aIID, attr, aDrawParam );
   435         aImgData, aIID, attr, aDrawParam );
   436     }
   436     }
   437 
   437 
   438 // -----------------------------------------------------------------------------
   438 // -----------------------------------------------------------------------------
   439 // BlitAndClear
   439 // BlitAndClear
   441 // Blits given image to gc and draws the area that is not
   441 // Blits given image to gc and draws the area that is not
   442 // covered by the bitmap.
   442 // covered by the bitmap.
   443 //
   443 //
   444 // -----------------------------------------------------------------------------
   444 // -----------------------------------------------------------------------------
   445 //
   445 //
   446 inline static TBool BlitAndClear(
   446 inline static TBool BlitAndClearL(
   447     MAknsSkinInstance* aSkin, CBitmapContext& aGc, const TRect& aTrgRect,
   447     MAknsSkinInstance* aSkin, CBitmapContext& aGc, const TRect& aTrgRect,
   448     CAknsImageItemData* aImgData, const TAknsItemID& aIID,
   448     CAknsImageItemData* aImgData, const TAknsItemID& aIID,
   449     const TAknsBackground* aLayout, const TPoint& aPADelta,
   449     const TAknsBackground* aLayout, const TPoint& aPADelta,
   450     const TInt aDrawParam )
   450     const TInt aDrawParam )
   451     {
   451     {
   453             static_cast<CAknsAppSkinInstance*>(aSkin);
   453             static_cast<CAknsAppSkinInstance*>(aSkin);
   454             
   454             
   455     if ( IsBackgroundItem( aIID,appInstance ) && 
   455     if ( IsBackgroundItem( aIID,appInstance ) && 
   456             appInstance && appInstance->AnimBackgroundState() )
   456             appInstance && appInstance->AnimBackgroundState() )
   457         {
   457         {
   458         return Blit( aSkin, aGc, aTrgRect, aImgData, aIID, aLayout, aPADelta, aDrawParam );
   458         return BlitL( aSkin, aGc, aTrgRect, aImgData, aIID, aLayout, aPADelta, aDrawParam );
   459         }
   459         }
   460     
   460     
   461     if( !(aDrawParam & KAknsDrawParamPrepareOnly) )
   461     if( !(aDrawParam & KAknsDrawParamPrepareOnly) )
   462         {
   462         {
   463         TAknsItemType type = aImgData->Type();
   463         TAknsItemType type = aImgData->Type();
   476             drawRect.Intersection( layoutRect );
   476             drawRect.Intersection( layoutRect );
   477 
   477 
   478             aGc.DrawRect( drawRect );
   478             aGc.DrawRect( drawRect );
   479             }
   479             }
   480         }
   480         }
   481     return Blit( aSkin, aGc, aTrgRect, aImgData, aIID, aLayout, aPADelta, aDrawParam );
   481     return BlitL( aSkin, aGc, aTrgRect, aImgData, aIID, aLayout, aPADelta, aDrawParam );
   482     }
   482     }
   483 
   483 
   484 // -----------------------------------------------------------------------------
   484 // -----------------------------------------------------------------------------
   485 // CheckAndDrawCachedImage
   485 // CheckAndDrawCachedImageL
   486 //
   486 //
   487 // -----------------------------------------------------------------------------
   487 // -----------------------------------------------------------------------------
   488 //
   488 //
   489 static TBool CheckAndDrawCachedImage( MAknsSkinInstance* aSkin,
   489 static TBool CheckAndDrawCachedImageL( MAknsSkinInstance* aSkin,
   490     CBitmapContext& aGc, const TRect& aRect, const TAknsItemID& aIID,
   490     CBitmapContext& aGc, const TRect& aRect, const TAknsItemID& aIID,
   491     const TInt aDrawParam )
   491     const TInt aDrawParam )
   492     {
   492     {
   493     // Basic consistency checks
   493     // Basic consistency checks
   494     if( !aSkin )
   494     if( !aSkin )
   505     if( !AknsUtils::IsDerivedType( EAknsITImage, data->Type() ) )
   505     if( !AknsUtils::IsDerivedType( EAknsITImage, data->Type() ) )
   506         {
   506         {
   507         return EFalse;
   507         return EFalse;
   508         }
   508         }
   509 
   509 
   510     return DrawPartialCachedImage( aSkin, aGc, aRect, aRect,
   510     return DrawPartialCachedImageL( aSkin, aGc, aRect, aRect,
   511         static_cast<CAknsImageItemData*>(data), aIID,
   511         static_cast<CAknsImageItemData*>(data), aIID,
   512         NULL, aDrawParam );
   512         NULL, aDrawParam );
   513     }
   513     }
   514 
   514 
   515 // -----------------------------------------------------------------------------
   515 // -----------------------------------------------------------------------------
   530 // -----------------------------------------------------------------------------
   530 // -----------------------------------------------------------------------------
   531 // CheckAndDrawFrame
   531 // CheckAndDrawFrame
   532 //
   532 //
   533 // -----------------------------------------------------------------------------
   533 // -----------------------------------------------------------------------------
   534 //
   534 //
   535 static TBool CheckAndDrawFrame( MAknsSkinInstance* aInstance,
   535 static TBool CheckAndDrawFrameL( MAknsSkinInstance* aInstance,
   536     CBitmapContext& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
   536     CBitmapContext& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
   537     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID,
   537     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID,
   538     const TInt aDrawParam )
   538     const TInt aDrawParam )
   539     {
   539     {
   540     if( !aInstance )
   540     if( !aInstance )
   543         }
   543         }
   544     
   544     
   545     if( !(aDrawParam & KAknsDrawParamPrepareOnly) )
   545     if( !(aDrawParam & KAknsDrawParamPrepareOnly) )
   546         {
   546         {
   547         // Prepare before drawing
   547         // Prepare before drawing
   548         CheckAndDrawFrame( aInstance, aGc, aOuterRect, aInnerRect,
   548         CheckAndDrawFrameL( aInstance, aGc, aOuterRect, aInnerRect,
   549             aFrameID, aCenterID, aDrawParam|KAknsDrawParamPrepareOnly );
   549             aFrameID, aCenterID, aDrawParam|KAknsDrawParamPrepareOnly );
   550         }
   550         }
   551 
   551 
   552     CAknsImageItemData* rawData = static_cast<CAknsImageItemData*>(
   552     CAknsImageItemData* rawData = static_cast<CAknsImageItemData*>(
   553         aInstance->GetCachedItemData( aFrameID, EAknsITImage ) );
   553         aInstance->GetCachedItemData( aFrameID, EAknsITImage ) );
   572             {
   572             {
   573             return EFalse;
   573             return EFalse;
   574             }
   574             }
   575 
   575 
   576         // Corners
   576         // Corners
   577         retVal |= CheckAndDrawCachedImage( aInstance, aGc,
   577         retVal |= CheckAndDrawCachedImageL( aInstance, aGc,
   578             TRect( aOuterRect.iTl, aInnerRect.iTl ),
   578             TRect( aOuterRect.iTl, aInnerRect.iTl ),
   579             data->ImageIID( EAknsFrameIndexTl ), aDrawParam );
   579             data->ImageIID( EAknsFrameIndexTl ), aDrawParam );
   580         retVal |= CheckAndDrawCachedImage( aInstance, aGc,
   580         retVal |= CheckAndDrawCachedImageL( aInstance, aGc,
   581             TRect( aInnerRect.iBr.iX, aOuterRect.iTl.iY,
   581             TRect( aInnerRect.iBr.iX, aOuterRect.iTl.iY,
   582             aOuterRect.iBr.iX, aInnerRect.iTl.iY ),
   582             aOuterRect.iBr.iX, aInnerRect.iTl.iY ),
   583             data->ImageIID( EAknsFrameIndexTr ), aDrawParam );
   583             data->ImageIID( EAknsFrameIndexTr ), aDrawParam );
   584         retVal |= CheckAndDrawCachedImage( aInstance, aGc,
   584         retVal |= CheckAndDrawCachedImageL( aInstance, aGc,
   585             TRect( aOuterRect.iTl.iX, aInnerRect.iBr.iY,
   585             TRect( aOuterRect.iTl.iX, aInnerRect.iBr.iY,
   586             aInnerRect.iTl.iX, aOuterRect.iBr.iY ),
   586             aInnerRect.iTl.iX, aOuterRect.iBr.iY ),
   587             data->ImageIID( EAknsFrameIndexBl ), aDrawParam );
   587             data->ImageIID( EAknsFrameIndexBl ), aDrawParam );
   588         retVal |= CheckAndDrawCachedImage( aInstance, aGc,
   588         retVal |= CheckAndDrawCachedImageL( aInstance, aGc,
   589             TRect( aInnerRect.iBr, aOuterRect.iBr ),
   589             TRect( aInnerRect.iBr, aOuterRect.iBr ),
   590             data->ImageIID( EAknsFrameIndexBr ), aDrawParam );
   590             data->ImageIID( EAknsFrameIndexBr ), aDrawParam );
   591 
   591 
   592         // Sides
   592         // Sides
   593         TRect sideRect( aInnerRect.iTl.iX, aOuterRect.iTl.iY,
   593         TRect sideRect( aInnerRect.iTl.iX, aOuterRect.iTl.iY,
   594             aInnerRect.iBr.iX, aInnerRect.iTl.iY );
   594             aInnerRect.iBr.iX, aInnerRect.iTl.iY );
   595         retVal |= CheckAndDrawCachedImage( aInstance, aGc, sideRect,
   595         retVal |= CheckAndDrawCachedImageL( aInstance, aGc, sideRect,
   596             data->ImageIID( EAknsFrameIndexT ), aDrawParam );
   596             data->ImageIID( EAknsFrameIndexT ), aDrawParam );
   597         sideRect.SetRect( aInnerRect.iTl.iX, aInnerRect.iBr.iY,
   597         sideRect.SetRect( aInnerRect.iTl.iX, aInnerRect.iBr.iY,
   598             aInnerRect.iBr.iX, aOuterRect.iBr.iY );
   598             aInnerRect.iBr.iX, aOuterRect.iBr.iY );
   599         retVal |= CheckAndDrawCachedImage( aInstance, aGc, sideRect,
   599         retVal |= CheckAndDrawCachedImageL( aInstance, aGc, sideRect,
   600             data->ImageIID( EAknsFrameIndexB ), aDrawParam );
   600             data->ImageIID( EAknsFrameIndexB ), aDrawParam );
   601         sideRect.SetRect( aOuterRect.iTl.iX, aInnerRect.iTl.iY,
   601         sideRect.SetRect( aOuterRect.iTl.iX, aInnerRect.iTl.iY,
   602             aInnerRect.iTl.iX, aInnerRect.iBr.iY );
   602             aInnerRect.iTl.iX, aInnerRect.iBr.iY );
   603         retVal |= CheckAndDrawCachedImage( aInstance, aGc, sideRect,
   603         retVal |= CheckAndDrawCachedImageL( aInstance, aGc, sideRect,
   604             data->ImageIID( EAknsFrameIndexL ), aDrawParam );
   604             data->ImageIID( EAknsFrameIndexL ), aDrawParam );
   605         sideRect.SetRect( aInnerRect.iBr.iX, aInnerRect.iTl.iY,
   605         sideRect.SetRect( aInnerRect.iBr.iX, aInnerRect.iTl.iY,
   606             aOuterRect.iBr.iX, aInnerRect.iBr.iY );
   606             aOuterRect.iBr.iX, aInnerRect.iBr.iY );
   607         retVal |= CheckAndDrawCachedImage( aInstance, aGc, sideRect,
   607         retVal |= CheckAndDrawCachedImageL( aInstance, aGc, sideRect,
   608             data->ImageIID( EAknsFrameIndexR ), aDrawParam );
   608             data->ImageIID( EAknsFrameIndexR ), aDrawParam );
   609 
   609 
   610         // Center
   610         // Center
   611         //lint --e{961} Valid logic
   611         //lint --e{961} Valid logic
   612         if( aCenterID == KAknsIIDDefault )
   612         if( aCenterID == KAknsIIDDefault )
   613             {
   613             {
   614             retVal |= CheckAndDrawCachedImage( aInstance, aGc, aInnerRect,
   614             retVal |= CheckAndDrawCachedImageL( aInstance, aGc, aInnerRect,
   615                 data->ImageIID( EAknsFrameIndexCenter ), aDrawParam );
   615                 data->ImageIID( EAknsFrameIndexCenter ), aDrawParam );
   616             }
   616             }
   617         else if( aCenterID != KAknsIIDNone )
   617         else if( aCenterID != KAknsIIDNone )
   618             {
   618             {
   619             retVal |= CheckAndDrawCachedImage( aInstance, aGc, aInnerRect,
   619             retVal |= CheckAndDrawCachedImageL( aInstance, aGc, aInnerRect,
   620                 aCenterID, aDrawParam );
   620                 aCenterID, aDrawParam );
   621             }
   621             }
   622         }
   622         }
   623     else if( AknsUtils::IsDerivedType( EAknsITBitmap, rawData->Type() ) )
   623     else if( AknsUtils::IsDerivedType( EAknsITBitmap, rawData->Type() ) )
   624         {
   624         {
   625         // Center only
   625         // Center only
   626         retVal |= CheckAndDrawCachedImage( aInstance, aGc, aOuterRect,
   626         retVal |= CheckAndDrawCachedImageL( aInstance, aGc, aOuterRect,
   627             aFrameID, aDrawParam );
   627             aFrameID, aDrawParam );
   628         }
   628         }
   629 
   629 
   630     if (!(aDrawParam & KAknsDrawParamPrepareOnly))
   630     if (!(aDrawParam & KAknsDrawParamPrepareOnly))
   631         {
   631         {
   801         if( imgData )
   801         if( imgData )
   802             {
   802             {
   803             blitAttempted = ETrue;
   803             blitAttempted = ETrue;
   804             if( (drawParam&KAknsDrawParamNoClearUnderImage)==0 )
   804             if( (drawParam&KAknsDrawParamNoClearUnderImage)==0 )
   805                 {
   805                 {
   806                 blit = BlitAndClear( aInstance, aGc, drawRect,
   806                 blit = BlitAndClearL( aInstance, aGc, drawRect,
   807                     imgData, imgIID, bgLayout, paDelta, drawParam );
   807                     imgData, imgIID, bgLayout, paDelta, drawParam );
   808                 }
   808                 }
   809             else
   809             else
   810                 {
   810                 {
   811                 blit = Blit( aInstance, aGc, drawRect,
   811                 blit = BlitL( aInstance, aGc, drawRect,
   812                     imgData, imgIID, bgLayout, paDelta, drawParam );
   812                     imgData, imgIID, bgLayout, paDelta, drawParam );
   813                 }
   813                 }
   814             if ( !blit )
   814             if ( !blit )
   815                 {
   815                 {
   816                 blitFailed = ETrue;
   816                 blitFailed = ETrue;
   844                 maskedImgData->SetMask(layeredCxt->iLayerMask);
   844                 maskedImgData->SetMask(layeredCxt->iLayerMask);
   845 
   845 
   846                 TAknsBackground* childLayout = bgLayout->iNext;
   846                 TAknsBackground* childLayout = bgLayout->iNext;
   847 
   847 
   848                 blitAttempted = ETrue;
   848                 blitAttempted = ETrue;
   849                 blit = Blit( aInstance, aGc, drawRect, maskedImgData,
   849                 blit = BlitL( aInstance, aGc, drawRect, maskedImgData,
   850                     KAknsIIDNone, childLayout, paDelta, drawParam );
   850                     KAknsIIDNone, childLayout, paDelta, drawParam );
   851                 if ( !blit )
   851                 if ( !blit )
   852                     {
   852                     {
   853                     blitFailed = ETrue;
   853                     blitFailed = ETrue;
   854                     }
   854                     }
   896                 drawParam=originalParam;
   896                 drawParam=originalParam;
   897                 }
   897                 }
   898             if( imgData )
   898             if( imgData )
   899                 {
   899                 {
   900                 blitAttempted = ETrue;
   900                 blitAttempted = ETrue;
   901                 blit = BlitAndClear( aInstance, aGc, drawRect, imgData,
   901                 blit = BlitAndClearL( aInstance, aGc, drawRect, imgData,
   902                     nextLayout->iImageID, nextLayout, paDelta, drawParam );
   902                     nextLayout->iImageID, nextLayout, paDelta, drawParam );
   903                 if ( !blit )
   903                 if ( !blit )
   904                     {
   904                     {
   905                     blitFailed = ETrue;
   905                     blitFailed = ETrue;
   906                     }
   906                     }
  1045         blitAttempted = ETrue;
  1045         blitAttempted = ETrue;
  1046         for ( TInt i=0; i <4 ; i++ )
  1046         for ( TInt i=0; i <4 ; i++ )
  1047             {
  1047             {
  1048             if( (drawParam & KAknsDrawParamNoClearUnderImage) == 0 )
  1048             if( (drawParam & KAknsDrawParamNoClearUnderImage) == 0 )
  1049                 {            
  1049                 {            
  1050                 blit = BlitAndClear( aInstance, aGc, rlist[i],
  1050                 blit = BlitAndClearL( aInstance, aGc, rlist[i],
  1051                         imgData, imgIID, bgLayout, paDelta, drawParam );
  1051                         imgData, imgIID, bgLayout, paDelta, drawParam );
  1052                 }
  1052                 }
  1053             else
  1053             else
  1054                 {
  1054                 {
  1055                 blit = Blit( aInstance, aGc, rlist[i],
  1055                 blit = BlitL( aInstance, aGc, rlist[i],
  1056                         imgData, imgIID, bgLayout, paDelta, drawParam );
  1056                         imgData, imgIID, bgLayout, paDelta, drawParam );
  1057                 }
  1057                 }
  1058             if ( !blit )
  1058             if ( !blit )
  1059                 {
  1059                 {
  1060                 blitFailed = ETrue;
  1060                 blitFailed = ETrue;
  1102             if( imgData )
  1102             if( imgData )
  1103                 {                
  1103                 {                
  1104                 blitAttempted = ETrue;
  1104                 blitAttempted = ETrue;
  1105                 for ( TInt i=0; i < 4; i++ )
  1105                 for ( TInt i=0; i < 4; i++ )
  1106                     {
  1106                     {
  1107                     blit = Blit( aInstance, aGc, rlist[i], imgData,
  1107                     blit = BlitL( aInstance, aGc, rlist[i], imgData,
  1108                             nextLayout->iImageID, nextLayout, paDelta, drawParam );
  1108                             nextLayout->iImageID, nextLayout, paDelta, drawParam );
  1109                     if ( !blit )
  1109                     if ( !blit )
  1110                         {
  1110                         {
  1111                         blitFailed = ETrue;
  1111                         blitFailed = ETrue;
  1112                         }
  1112                         }
  1155 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawCachedImage)
  1155 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawCachedImage)
  1156 EXPORT_C void AknsDrawUtils::DrawCachedImage( MAknsSkinInstance* aInstance,
  1156 EXPORT_C void AknsDrawUtils::DrawCachedImage( MAknsSkinInstance* aInstance,
  1157     CWindowGc& aGc, const TRect& aRect, const TAknsItemID& aID )
  1157     CWindowGc& aGc, const TRect& aRect, const TAknsItemID& aID )
  1158     {
  1158     {
  1159     // Ignore return value
  1159     // Ignore return value
  1160     CheckAndDrawCachedImage( aInstance, aGc, aRect, aID, KAknsDrawParamDefault );
  1160     CheckAndDrawCachedImageL( aInstance, aGc, aRect, aID, KAknsDrawParamDefault );
  1161     }
  1161     }
  1162 
  1162 
  1163 // -----------------------------------------------------------------------------
  1163 // -----------------------------------------------------------------------------
  1164 // AknsDrawUtils::DrawCachedImage
  1164 // AknsDrawUtils::DrawCachedImage
  1165 // (commented in the header).
  1165 // (commented in the header).
  1168 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawCachedImage)
  1168 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawCachedImage)
  1169 EXPORT_C void AknsDrawUtils::DrawCachedImage( MAknsSkinInstance* aInstance,
  1169 EXPORT_C void AknsDrawUtils::DrawCachedImage( MAknsSkinInstance* aInstance,
  1170     CFbsBitGc& aGc, const TRect& aRect, const TAknsItemID& aID )
  1170     CFbsBitGc& aGc, const TRect& aRect, const TAknsItemID& aID )
  1171     {
  1171     {
  1172     // Ignore return value
  1172     // Ignore return value
  1173     CheckAndDrawCachedImage( aInstance, aGc, aRect, aID, KAknsDrawParamDefault );
  1173     CheckAndDrawCachedImageL( aInstance, aGc, aRect, aID, KAknsDrawParamDefault );
  1174     }
  1174     }
  1175 
  1175 
  1176 // -----------------------------------------------------------------------------
  1176 // -----------------------------------------------------------------------------
  1177 // AknsDrawUtils::PrepareFrame
  1177 // AknsDrawUtils::PrepareFrame
  1178 // (commented in the header).
  1178 // (commented in the header).
  1183     const TRect& aOuterRect, const TRect& aInnerRect,
  1183     const TRect& aOuterRect, const TRect& aInnerRect,
  1184     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID)
  1184     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID)
  1185     {
  1185     {
  1186     CBitmapContext* gc = NULL;
  1186     CBitmapContext* gc = NULL;
  1187     // coverity[var_deref_model]
  1187     // coverity[var_deref_model]
  1188     return CheckAndDrawFrame( aInstance, *gc, aOuterRect, aInnerRect,
  1188     return CheckAndDrawFrameL( aInstance, *gc, aOuterRect, aInnerRect,
  1189         aFrameID, aCenterID, KAknsDrawParamPrepareOnly );
  1189         aFrameID, aCenterID, KAknsDrawParamPrepareOnly );
  1190     }
  1190     }
  1191 
  1191 
  1192 // -----------------------------------------------------------------------------
  1192 // -----------------------------------------------------------------------------
  1193 // AknsDrawUtils::DrawFrame
  1193 // AknsDrawUtils::DrawFrame
  1197 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawFrame)
  1197 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawFrame)
  1198 EXPORT_C TBool AknsDrawUtils::DrawFrame( MAknsSkinInstance* aInstance,
  1198 EXPORT_C TBool AknsDrawUtils::DrawFrame( MAknsSkinInstance* aInstance,
  1199     CWindowGc& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
  1199     CWindowGc& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
  1200     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID )
  1200     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID )
  1201     {
  1201     {
  1202     return CheckAndDrawFrame( aInstance, aGc, aOuterRect, aInnerRect,
  1202     return CheckAndDrawFrameL( aInstance, aGc, aOuterRect, aInnerRect,
  1203         aFrameID, aCenterID, KAknsDrawParamDefault );
  1203         aFrameID, aCenterID, KAknsDrawParamDefault );
  1204     }
  1204     }
  1205 
  1205 
  1206 // -----------------------------------------------------------------------------
  1206 // -----------------------------------------------------------------------------
  1207 // AknsDrawUtils::DrawFrame
  1207 // AknsDrawUtils::DrawFrame
  1212 EXPORT_C TBool AknsDrawUtils::DrawFrame( MAknsSkinInstance* aInstance,
  1212 EXPORT_C TBool AknsDrawUtils::DrawFrame( MAknsSkinInstance* aInstance,
  1213     CFbsBitGc& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
  1213     CFbsBitGc& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
  1214     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID,
  1214     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID,
  1215     const TInt aDrawParam )
  1215     const TInt aDrawParam )
  1216     {
  1216     {
  1217     return CheckAndDrawFrame( aInstance, aGc, aOuterRect, aInnerRect,
  1217     return CheckAndDrawFrameL( aInstance, aGc, aOuterRect, aInnerRect,
  1218         aFrameID, aCenterID, aDrawParam );
  1218         aFrameID, aCenterID, aDrawParam );
  1219     }
  1219     }
  1220 
  1220 
  1221 // -----------------------------------------------------------------------------
  1221 // -----------------------------------------------------------------------------
  1222 // AknsDrawUtils::DrawFrame
  1222 // AknsDrawUtils::DrawFrame
  1226 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawFrame)
  1226 AKNS_EXPORTED_METHOD(AknsDrawUtils::DrawFrame)
  1227 EXPORT_C TBool AknsDrawUtils::DrawFrame( MAknsSkinInstance* aInstance,
  1227 EXPORT_C TBool AknsDrawUtils::DrawFrame( MAknsSkinInstance* aInstance,
  1228     CFbsBitGc& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
  1228     CFbsBitGc& aGc, const TRect& aOuterRect, const TRect& aInnerRect,
  1229     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID )
  1229     const TAknsItemID& aFrameID, const TAknsItemID& aCenterID )
  1230     {
  1230     {
  1231     return CheckAndDrawFrame( aInstance, aGc, aOuterRect, aInnerRect,
  1231     return CheckAndDrawFrameL( aInstance, aGc, aOuterRect, aInnerRect,
  1232         aFrameID, aCenterID, KAknsDrawParamDefault );
  1232         aFrameID, aCenterID, KAknsDrawParamDefault );
  1233     }
  1233     }
  1234 
  1234 
  1235 // -----------------------------------------------------------------------------
  1235 // -----------------------------------------------------------------------------
  1236 // AknsDrawUtils::DrawFramePart
  1236 // AknsDrawUtils::DrawFramePart
  1252     if( data && (data->NumberOfImages()==EAknsFrameElementsN) )
  1252     if( data && (data->NumberOfImages()==EAknsFrameElementsN) )
  1253         {
  1253         {
  1254         aGc.SetPenStyle(CGraphicsContext::ENullPen);
  1254         aGc.SetPenStyle(CGraphicsContext::ENullPen);
  1255         aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
  1255         aGc.SetBrushStyle(CGraphicsContext::ESolidBrush);
  1256 
  1256 
  1257         TBool retVal = CheckAndDrawCachedImage( aInstance, aGc, aRect,
  1257         TBool retVal = CheckAndDrawCachedImageL( aInstance, aGc, aRect,
  1258             data->ImageIID( aFrameElement ), KAknsDrawParamDefault );
  1258             data->ImageIID( aFrameElement ), KAknsDrawParamDefault );
  1259 
  1259 
  1260         aGc.SetPenStyle(CGraphicsContext::ESolidPen);
  1260         aGc.SetPenStyle(CGraphicsContext::ESolidPen);
  1261         aGc.SetBrushStyle(CGraphicsContext::ENullBrush);
  1261         aGc.SetBrushStyle(CGraphicsContext::ENullBrush);
  1262 
  1262