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