uiacceltk/hitchcock/coretoolkit/src/HuiS60Skin.cpp
changeset 19 f5bac0badc7e
parent 14 83d2d132aa58
child 31 1b6909418757
equal deleted inserted replaced
14:83d2d132aa58 19:f5bac0badc7e
    30 
    30 
    31 #include <AknsDrawUtils.h>
    31 #include <AknsDrawUtils.h>
    32 #include <AknUtils.h>
    32 #include <AknUtils.h>
    33 
    33 
    34 #include "huiskinbackroundlayout.h"
    34 #include "huiskinbackroundlayout.h"
    35 
    35 #include "huiextension.h"
    36 
    36 
    37 struct TBackgroundTexture
    37 struct TBackgroundTexture
    38     {
    38     {
    39     TAknsItemID iID;
    39     TAknsItemID iID;
    40     CHuiTexture* iBackgroundTexture;    //not owned
    40     CHuiTexture* iBackgroundTexture;    //not owned
   294         }
   294         }
   295     }
   295     }
   296 
   296 
   297 EXPORT_C void CHuiS60Skin::SkinExtension(const TUid& aExtensionUid, TAny** aExtensionParameters)
   297 EXPORT_C void CHuiS60Skin::SkinExtension(const TUid& aExtensionUid, TAny** aExtensionParameters)
   298     {
   298     {
   299     CHuiSkin::SkinExtension(aExtensionUid,aExtensionParameters);
   299     if (aExtensionUid == KHuiSkinReleaseCachedTextures)
       
   300         {
       
   301         FreeAllBackgroundTextureResources();
       
   302         }
       
   303     else
       
   304         {        
       
   305         CHuiSkin::SkinExtension(aExtensionUid, aExtensionParameters);
       
   306         }
   300     }
   307     }
   301     
   308     
   302 EXPORT_C THuiSkinOrientation CHuiS60Skin::Orientation() const
   309 EXPORT_C THuiSkinOrientation CHuiS60Skin::Orientation() const
   303     {
   310     {
   304     return CHuiSkin::Orientation();
   311     return CHuiSkin::Orientation();
   511     for (TInt index = 0; index < itemCount; index++)
   518     for (TInt index = 0; index < itemCount; index++)
   512         {
   519         {
   513         bgTexture = ((TPrivData*)(iSpare))->iBackgrounds[index];
   520         bgTexture = ((TPrivData*)(iSpare))->iBackgrounds[index];
   514         if (bgTexture.iID == aID)
   521         if (bgTexture.iID == aID)
   515             {
   522             {
   516             if(!bgTexture.iBackgroundTexture && !bgTexture.iBackgroundTexture->HasContent())
   523             if(!bgTexture.iBackgroundTexture || !bgTexture.iBackgroundTexture->HasContent())
   517                 {
   524                 {
   518                 delete bgTexture.iBackgroundTexture;
   525                 delete bgTexture.iBackgroundTexture;
   519                 bgTexture.iBackgroundTexture = NULL;
   526                 bgTexture.iBackgroundTexture = NULL;
   520                 TRAPD(err, bgTexture.iBackgroundTexture = CreateSkinBackgroundL(bgTexture.iID));
   527                 TRAPD(err, bgTexture.iBackgroundTexture = CreateSkinBackgroundL(bgTexture.iID));
   521                 // put bgTexture back to the array also in leave cases
   528                 // put bgTexture back to the array also in leave cases