idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h
changeset 5 c743ef5928ba
parent 4 4d54b72983ae
child 9 f966699dea19
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Tue Jan 26 11:48:23 2010 +0200
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnbackgroundmanager.h	Tue Feb 02 00:04:13 2010 +0200
@@ -42,8 +42,7 @@
 *  @since S60 v5.0
 */
 NONSHARABLE_CLASS( CXnBackgroundManager ) : public CCoeControl,
-    public MAknsSkinChangeObserver, public MCoeViewActivationObserver,
-    public MDiskNotifyHandlerCallback
+    public MAknsSkinChangeObserver, public MDiskNotifyHandlerCallback
     {
 public:
 
@@ -64,6 +63,7 @@
      * 
      * @since S60 5.0
      * @param aFileName WallpaperImage image path and filename to be cached
+     * @param aViewData Page that owns the given wallpaper.
      * @return Error code.
      */            
     TInt CacheWallpaperL( const TDesC& aFileName, CXnViewData& aViewData );
@@ -73,8 +73,17 @@
      * 
      * @since S60 5.0
      * @param aFileName WallpaperImage image path and filename
+     * @return Error code.
      */            
-    void AddWallpaperL( const TDesC& aFileName );
+    TInt AddWallpaperL( const TDesC& aFileName );
+
+    /**
+     * Deletes wallpaper from the given page as well as from the cache.
+     * 
+     * @since S60 5.0
+     * @param aViewData Page where the wallpaper is to be destroyed.
+     */            
+    void DeleteWallpaper( CXnViewData& aViewData );
 
     /**
      * Checks whether page specific wallpaper feature is activated or not.
@@ -98,7 +107,14 @@
      * @param aNewView         New view 
      */
     void WallpaperChanged( CXnViewData& aOldView, CXnViewData& aNewView );
-   
+
+public: // Functions from base classes    
+
+    /**
+     * @see CCoeControl
+     */    
+    void MakeVisible( TBool aVisible );
+
 private: // Functions from base classes    
 
     /**
@@ -110,7 +126,7 @@
      * see CCoeControl 
      */
     void SizeChanged();
-
+    
     /**
      * see MAknsSkinChangeObserver 
      */
@@ -129,16 +145,10 @@
         const TAknsSkinStatusPackageChangeReason aReason );
 
     /**
-     * @see MCoeViewActivationObserver
-     */
-    void HandleViewActivation( const TVwsViewId& aNewlyActivatedViewId, 
-        const TVwsViewId& aViewIdToBeDeactivated );
-
-    /**
     * From MDiskNotifyHandlerCallback.
     */
     void HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent );
-    
+
 private:
     
     /**
@@ -157,12 +167,13 @@
     void UpdateWallpapersL();
     void CleanCache();
     void RemoveWallpaperL( CXnViewData& aViewData );
-    void RemoveWallpaperFromCache( const TDesC& aFileName );
+    void RemoveWallpaperFromCache( const TDesC& aFileName, CXnViewData* aViewData = NULL );
     void RemovableDiskInsertedL();
     void CheckFeatureTypeL();
-    void AddPageSpecificWallpaperL( const TDesC& aFileName );
-    void AddCommonWallpaperL( const TDesC& aFileName, TBool aSave = ETrue );
+    TInt AddPageSpecificWallpaperL( const TDesC& aFileName );
+    TInt AddCommonWallpaperL( const TDesC& aFileName, TBool aSave = ETrue );
     void ReadWallpaperFromCenrepL();
+    void UpdateScreen();
 
 private: // data
 
@@ -215,12 +226,11 @@
      * Internal wallpaper update in progress
      */
     TInt iIntUpdate;
-        
+
     /** 
-     * States whether transparent CBA and status pane is used. 
-     * Homescreen uses transparency, but e.g. Widget catalog does not.
+     * True if screen needs to be drawn when view becomes visible.
      */
-    TBool iTransparencyEnabled;
+    TBool iScreenUpdateNeeded;
 
     /** 
      * Pointer to wallpaper image. This is used only if same wallpaper