diff -r 3321d3e205b6 -r b01126ce0bec idlehomescreen/xmluirendering/uiengine/inc/xnplugindata.h --- 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