uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h
branchRCL_3
changeset 17 c9d868f1e20c
parent 15 cd0ae4656946
child 18 1801340c26a2
--- a/uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h	Mon Jun 21 16:41:52 2010 +0300
+++ b/uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h	Thu Jul 15 19:40:07 2010 +0300
@@ -159,7 +159,7 @@
             CHuiRoster& aRoster, 
             CHuiControlGroup& aGroup, 
             TInt aWhere, 
-            TInt aScreenNumber );
+            TInt aScreenNumber = 0);
 
     /**
      * This method sets the windowgroup id for the alf window.
@@ -202,8 +202,8 @@
   	 */
     void AlfGfxEffectEndCallBack( TInt aHandle );
    
-    TInt FindClientWindowGroupId( TInt aScreenNumber, CHuiControlGroup& aControlGroup );
-    TInt FindWindowGroupNodeId( TInt aScreenNumber, CHuiControlGroup& aControlGroup ) const;
+    TInt FindClientWindowGroupId(CHuiControlGroup& aControlGroup );
+    TInt FindWindowGroupNodeId(CHuiControlGroup& aControlGroup ) const;
     
     void CleanAllFxVisuals();
 
@@ -406,6 +406,7 @@
 	*/    
     TBool StoreLayoutIfRequiredByEffectL(CHuiLayout* aLayout, CFullScreenEffectState& aEvent, TBool& aNeededStoredLayout);
 
+    void HandleGfxRedirection(CFullScreenEffectState& aEvent, CHuiLayout*& aLayout);
     /**
      * Handles begin and end fullscreen events
      */
@@ -617,6 +618,10 @@
 	
 	void HandleSetFadeEffectL( TAlfBridgerData& aData );
 	
+	void HandleGroupChained( TAlfBridgerData& aData);
+	
+	void HandleGroupChainBroken( TAlfBridgerData& aData);
+	
 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
 
     void HandleSetLayoutSwitchEffectL();
@@ -711,12 +716,26 @@
     CHuiCanvasVisual* FindVisualByClientSideIds(TUint32 aClientSideId, TUint32 aClientSideGroupId );
 
     /**
+	 * FindChainedGroup
+	 * 
+	 * Find chained windowgroup from iWindowChainsArray. Return 0, if not found.
+	 */
+    TUint32 FindChainedGroup(TUint32 aTreeNodeId);
+
+    /**
+	 * IsChainedGroup
+	 * 
+	 * @return ETrue if group is chained.
+	 */    
+    TBool IsChainedGroup(TUint32 aTreeNodeId);
+    
+    /**
      * This method finds controlgroup which has been assosiated with given window group id. 
      * Control group may or may not be active in roster.
      *
      * @param aWindowGroupNodeId Node id of the window group, internal.
      */
-    CHuiControlGroup* FindControlGroup(TInt aWindowGroupNodeId, TInt aScreenNumber );
+    CHuiControlGroup* FindControlGroup(TInt aWindowGroupNodeId, TInt aScreenNumber = 0);
 
     /**
      * This method finds controlgroup which has been assosiated with window server window group id. 
@@ -740,6 +759,12 @@
      * @return Pointer to found control gruop. NULL if not found.
      */
     CHuiControlGroup* FindControlGroupBySecureId( TInt aSecureId, TInt aWgId = -1 ) const;
+	 /**
+	  *	FindControlGroupBySecureId
+	  *
+	  *	Returns a list of window groups belonging to aSecureId.
+	  */
+    void FindControlGroupBySecureId( TInt aSecureId, RPointerArray<CHuiControlGroup>& aGroupList);
     
     /**
      * Finds control gruop which matches the full screen effect end state.
@@ -761,7 +786,7 @@
      *
      * @param aWindowGroupNodeId Node id of the window group, internal.
      */
-    void DeleteControlGroupL(TInt aWindowGroupNodeId, TInt aScreenNumber );
+    void DeleteControlGroupL(TInt aWindowGroupNodeId, TInt aScreenNumber = 0);
 
     /**
      * Creates a control group
@@ -787,7 +812,7 @@
      * 
      */
 
-    void ReorderAlfControlGroupsL( TInt aScreenNumber );
+    void ReorderAlfControlGroupsL( TInt aScreenNumber = 0);
         
     /**
      * Called to notify the observer that a display refresh is about to begin.
@@ -1009,6 +1034,18 @@
         };
     
     RHashMap<TUint32,THashVisualStruct> iWindowHashArray;
+    
+    class TChainData
+        {
+    public:
+        TChainData(TUint32 aParent, TUint32 aChainee) : iParent(aParent), iChainee(aChainee)
+            {
+            }
+        TUint32 iParent;
+        TUint32 iChainee;
+        };
+    RHashMap<TUint32,TChainData> iWindowChainsArray;
+    
     CHuiControl* iOrphanStorage; // owned. holds the visuals which are orphaned from their control group
     class TRegisteredEffectsStruct
         {