idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h
branchRCL_3
changeset 93 b01126ce0bec
parent 88 3321d3e205b6
child 102 ba63c83f4716
--- a/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h	Tue Sep 14 20:58:58 2010 +0300
+++ b/idlehomescreen/xmluirendering/uiengine/inc/xnuiengineimpl.h	Wed Sep 15 12:00:00 2010 +0300
@@ -41,6 +41,7 @@
 class CXnViewManager;
 class CXnViewData;
 class CXnPluginData;
+class TXnDirtyRegion;
 
 // Constants
 namespace XnLayoutPhase
@@ -59,18 +60,6 @@
     const TInt EViewDirty = 0x10;
     const TInt EEffectStarted = 0x20;    
     }
-	
-NONSHARABLE_STRUCT( TXnDirtyRegion )
-    {
-    RRegion         iRegion;      
-    CCoeControl*    iControl; // Not own.
-    
-    ~TXnDirtyRegion()
-        {
-        iRegion.Close();
-        }
-    };
-
 
 NONSHARABLE_STRUCT( TXnSplitScreenState )
     {
@@ -147,18 +136,6 @@
     void LayoutUIL( CXnNode* aNode = NULL );
 
     /**
-     * Lays out the UI
-     * 
-     * This generates full re-layout starting from the given node, 
-     * regardless of the current dirty set or the active view.
-     * I.e. this can be used to layout an inactive view.
-     * 
-     * @since Series 60 5.2
-     * @param aNode Starting point of the layout
-     */
-    void LayoutFromNodeL( CXnNode& aNode );
-
-    /**
      * Creates UI implementations for the UI, adjusts control coordinates 
      * according to the layout
      * 
@@ -166,19 +143,6 @@
      * @param aNode Starting point
      */
     void RenderUIL( CXnNode* aNode = NULL );
-
-    /**
-     * Creates UI implementations for the UI, adjusts control coordinates 
-     * according to the layout
-     * 
-     * This generates full re-layout starting from the given node, 
-     * regardless of the current dirty set or the active view.
-     * I.e. this can be used to layout an inactive view.
-     * 
-     * @since Series 60 5.2
-     * @param aNode Starting point
-     */
-    void RenderFromNodeL( CXnNode& aNode );
     
     /**
      * Gets the root node of the UI
@@ -325,6 +289,7 @@
      * @since Series 60 3.1
      */
     void RefreshMenuL();
+    void RefreshMenuL( TXnDirtyRegion* aDirtyRegion );
 
     /**
      * Returns view manager
@@ -555,7 +520,7 @@
 private:
     
     IMPORT_C static void EnableRenderUi( TAny* aAny );
-        
+
 private:
     // constructors
 
@@ -566,51 +531,55 @@
 
 private:
     // new functions
-    
+
+    /**
+     * Lays out the UI
+     */
+    void LayoutL( TXnDirtyRegion& aRegion );
+    void RenderL( TXnDirtyRegion& aRegion );
+
     /**
      * Prepares to the layout algorithm run
      * 
      * @since Series 60 3.2
      */
-    void PrepareRunLayoutL();
-    void PrepareRunLayoutL( CXnNode& aNode );
+    void PrepareRunLayoutL( TXnDirtyRegion& aDirtyRegion );
 
     /**
      * Runs the layout algorithm        
      * 
      * @since Series 60 3.2
      */
-    TInt RunLayoutL( CXnNode* aNode );
-    TInt RunLayoutFromNodeL( CXnNode& aNode );
+    TInt RunLayoutL( TXnDirtyRegion& aDirtyRegion, CXnNode& aNode );
 
     /**
      * Checks if layout is currently disabled
      * 
      * @since Series 60 3.2
      */
-    TBool IsLayoutDisabled();
+    TBool IsLayoutDisabled( TXnDirtyRegion& aDirtyRegion );
 
-    void AddToRedrawListL( CXnNode* aNode, TRect aRect =
-        TRect::EUninitialized );
+    void AddToRedrawListL( TXnDirtyRegion& aRegion, CXnNode& aNode, 
+        TRect aRect = TRect::EUninitialized );
 
-    void AddToDirtyListL( CXnNode* aNode );
+    void AddToDirtyListL( TXnDirtyRegion& aRegion, CXnNode& aNode );
 
     /**
      * Finds a node where to start layout
      *
      * @since Series 60 5.0
      */
-    CXnNode* StartLayoutFromL();
+    CXnNode* StartLayoutFromL( TXnDirtyRegion& aDirtyRegion );
 
     void ForceRenderUIL( TBool aLayoutOnly = EFalse );
 
-    CCoeControl* WindowOwningControl( CXnNode& aNode );
+    CXnNode* WindowOwningNode( CXnNode& aNode );
     
     TXnDirtyRegion* FindDirtyRegionL( CXnNode& aNode );
 
-    void AddRedrawRectL( TRect aRect, CXnNode& aNode );
+    void ReportScreenDeviceChangeL();
 
-    void ReportScreenDeviceChangeL();
+    void EnableRenderUiL();
     
     /**
       * Handle partial touch input
@@ -752,18 +721,12 @@
     CXnKeyEventDispatcher* iKeyEventDispatcher;
     /** ControlAdapters, not owned */
     const RPointerArray< CXnControlAdapter >* iControlAdapterList;
-    /** Region pending redraw */
-    RPointerArray<TXnDirtyRegion> iRedrawRegions;
-    /** List of currently dirty nodes */
-    RPointerArray< CXnNode > iDirtyList;
     /** Array of nodes which can be focused */
     RPointerArray< CXnNode > iFocusCandidateList;
     /** current view */
     CXnNode* iCurrentView;
     /** current view control adapter, not owned */
     CXnControlAdapter* iCurrentViewControlAdapter;
-    /** Controls layouting */
-    TInt iLayoutControl;
     /** Layout algo phase */
     TInt iLayoutPhase;
     /** Unit in pixels (width). */