uiaccelerator_plat/alf_core_toolkit_api/inc/uiacceltk/HuiS60Skin.h
branchRCL_3
changeset 3 d8a3531bc6b8
parent 0 15bf7259bb7c
child 6 10534483575f
--- a/uiaccelerator_plat/alf_core_toolkit_api/inc/uiacceltk/HuiS60Skin.h	Tue Feb 02 07:56:43 2010 +0200
+++ b/uiaccelerator_plat/alf_core_toolkit_api/inc/uiacceltk/HuiS60Skin.h	Mon Feb 22 17:57:49 2010 +0200
@@ -57,12 +57,12 @@
 
 
 	/* Methods from MAknsSkinChangeObserver */
-	  void SkinContentChanged();
+	IMPORT_C void SkinContentChanged();
 
-	  void SkinConfigurationChanged(
+	IMPORT_C void SkinConfigurationChanged(
 	          const TAknsSkinStatusConfigurationChangeReason aReason );
 	  
-	  void SkinPackageChanged(
+	IMPORT_C void SkinPackageChanged(
 	         const TAknsSkinStatusPackageChangeReason aReason );
 public:
 
@@ -127,6 +127,9 @@
 	}
     void UpdateBackgroundsL(const RArray<THuiDisplayBackgroundItem>& aItems);
     IMPORT_C CHuiTexture* BackgroundTexture(const TAknsItemID& aID);
+    
+    TRect SkinRect(const TAknsItemID& aID);
+    
 protected: // from CHuiSkin
     IMPORT_C void SkinExtension(const TUid& aExtensionUid, TAny** aExtensionParameters);
     void FreeBackgrounds();
@@ -143,6 +146,7 @@
      */
     void UpdateBackgroundL();
 
+
 private:
 
     /** Control context for the skin. */
@@ -150,6 +154,8 @@
 
     /** Background texture from S60. */
     CHuiTexture* iBackgroundTexture;
+    CFbsBitmap* iBackgroundBitmap;
+    TRect iBackgroundRect;
 
     /** To get CallBack from SkinServer when skin is changed */
     RAknsSrvSession iSkinSrvSession;
@@ -158,8 +164,29 @@
     /** Background should be reloaded the next time it is needed. */
     TBool iReloadBackground;
     TBool iSkinChanged;
-    CFbsBitmap* iBackgroundBitmap;
+
+    class CSkinItem : public CBase
+        {
+        public :
+        
+        ~CSkinItem()
+            {
+            delete iBitmap;
+            };
+        TAknsItemID iId;
+        TRect iSkinRect;
+        CFbsBitmap* iBitmap;
+        };
+    RPointerArray<CSkinItem> iCachedSkinItems;
+    
     TAny* iSpare;    
-    };
+
+private: // helpers
+    
+    TInt SearchCachedSkinItemIndex(const TAknsItemID& aId);
+    TRect SearchCachedSkinItemRect(const TAknsItemID& aId);
+    CFbsBitmap* SearchCachedSkinItemBitmap(const TAknsItemID& aId);
+	};
+
 
 #endif  // __HUIS60SKIN_H__