--- 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__