idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h
branchRCL_3
changeset 93 b01126ce0bec
parent 88 3321d3e205b6
child 102 ba63c83f4716
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h	Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h	Wed Sep 15 12:00:00 2010 +0300
@@ -34,9 +34,41 @@
 class CXnODT;
 class CXnViewManager;
 class CXnPublisherData;
+class CCoeControl;
 
 // Constants
 
+NONSHARABLE_STRUCT( TXnDirtyRegion )
+    {
+    /** Area that needs to be redrawn */
+    RRegion         iRegion;      
+
+    /** Window owning control 
+     *  Not own.
+     */
+    CCoeControl*    iControl;
+
+    /** Window owning node
+     *  Not own.
+     */
+    CXnNode*        iRootNode; 
+
+    /** List of currently dirty nodes */
+    RPointerArray< CXnNode > iDirtyList;
+
+    /** Controls layouting */
+    TInt iLayoutControl;
+
+    TXnDirtyRegion() : iControl( NULL ), iRootNode( NULL ), 
+        iLayoutControl( 0 ) {}
+
+    ~TXnDirtyRegion()
+        {
+        iRegion.Close();
+        iDirtyList.Reset();
+        }
+    };
+
 // Class declaration
 
 /**
@@ -454,6 +486,20 @@
      */
     void SetLockingStatus( const TDesC8& aStatus );    
         
+    /**
+     * Creates dirty region.
+     * 
+     * @return Created dirty region.
+     */
+    TXnDirtyRegion* CreateDirtyRegionL( CXnNode& aRootNode, CCoeControl& aControl);
+
+    /**
+     * Get dirty region.
+     * 
+     * @return dirty region.
+     */
+    inline TXnDirtyRegion* DirtyRegion() const;
+
 protected:
     // data
         
@@ -493,6 +539,8 @@
     HBufC* iPublisherName;
     /** Flags to define this plugin's state */
     TBitFlags32 iFlags;
+    /** Region pending redraw, Owned */
+    TXnDirtyRegion* iDirtyRegion;
     };
 
 // Inline functions