uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h
branchRCL_3
changeset 52 31fccae4f8a7
parent 51 e5af45d51884
child 63 e1987ab3768a
equal deleted inserted replaced
51:e5af45d51884 52:31fccae4f8a7
   157      */
   157      */
   158     void ShowControlGroupL(
   158     void ShowControlGroupL(
   159             CHuiRoster& aRoster, 
   159             CHuiRoster& aRoster, 
   160             CHuiControlGroup& aGroup, 
   160             CHuiControlGroup& aGroup, 
   161             TInt aWhere, 
   161             TInt aWhere, 
   162             TInt aScreenNumber );
   162             TInt aScreenNumber = 0);
   163 
   163 
   164     /**
   164     /**
   165      * This method sets the windowgroup id for the alf window.
   165      * This method sets the windowgroup id for the alf window.
   166      * 
   166      * 
   167      */
   167      */
   200  	 * Function to be called when CHuiFxEffect class effect has ended
   200  	 * Function to be called when CHuiFxEffect class effect has ended
   201   	 * @param aHandle handle of the effect, given when the effect is started
   201   	 * @param aHandle handle of the effect, given when the effect is started
   202   	 */
   202   	 */
   203     void AlfGfxEffectEndCallBack( TInt aHandle );
   203     void AlfGfxEffectEndCallBack( TInt aHandle );
   204    
   204    
   205     TInt FindClientWindowGroupId( TInt aScreenNumber, CHuiControlGroup& aControlGroup );
   205     TInt FindClientWindowGroupId(CHuiControlGroup& aControlGroup );
   206     TInt FindWindowGroupNodeId( TInt aScreenNumber, CHuiControlGroup& aControlGroup ) const;
   206     TInt FindWindowGroupNodeId(CHuiControlGroup& aControlGroup ) const;
   207     
   207     
   208     void CleanAllFxVisuals();
   208     void CleanAllFxVisuals();
   209 
   209 
   210     /**
   210     /**
   211      * Helper function to abort fullscreen effect
   211      * Helper function to abort fullscreen effect
   316             TBool aOnlyForEmbeddedAlfApp,
   316             TBool aOnlyForEmbeddedAlfApp,
   317             TInt aOrientation,
   317             TInt aOrientation,
   318             TInt aDuration,
   318             TInt aDuration,
   319             TBool& aCoverageRegionModified );
   319             TBool& aCoverageRegionModified );
   320 
   320 
       
   321     // Experimental
       
   322     
       
   323     /**
       
   324      * Checks if visual that's flagged as not ready for current orientation is reachable.
       
   325      */
       
   326     TBool IsVisualNotReadyReachable();
       
   327 
       
   328     /**
       
   329      * Recursive helper function for IsVisualNotReadyReachable.
       
   330      */
       
   331     TBool IsVisualNotReadyReachableRecursive(
       
   332             CHuiLayout* aLayout,
       
   333             CHuiControlGroup& aControlGroup,
       
   334             CHuiControl& aControl,
       
   335             TBool& aFullscreenCovered, 
       
   336             const TRect& aFullscreen,
       
   337             CAlfScreen* aScreen,
       
   338             TBool aChildCanBeOpaque, 
       
   339             TBool aOnlyForEmbeddedAlfApp);
   321 	
   340 	
   322     void LayoutSwitchStart();
   341     void LayoutSwitchStart();
   323     void LayoutSwitchComplete();
   342     void LayoutSwitchComplete();
   324     
   343     
   325     RAlfBridgerClient* BridgerClient();
   344     RAlfBridgerClient* BridgerClient();
   403     *
   422     *
   404 	*	@return ETrue	If storing was required and could be done.
   423 	*	@return ETrue	If storing was required and could be done.
   405     *					OR storing was not required. 
   424     *					OR storing was not required. 
   406 	*/    
   425 	*/    
   407     TBool StoreLayoutIfRequiredByEffectL(CHuiLayout* aLayout, CFullScreenEffectState& aEvent, TBool& aNeededStoredLayout);
   426     TBool StoreLayoutIfRequiredByEffectL(CHuiLayout* aLayout, CFullScreenEffectState& aEvent, TBool& aNeededStoredLayout);
       
   427 
       
   428     /**
       
   429      * HandleGfxRedirection
       
   430 	 *
       
   431 	 * Redirect effect to correct application in case of effect requested for host application, but
       
   432 	 * embedded (chained) application is on top of it.
       
   433 	 *
       
   434      * If effect setup has been already made for the layout, effect is not redirected.  
       
   435      */
       
   436     void HandleGfxRedirection(CFullScreenEffectState& aEvent, CHuiLayout*& aLayout);
   408 
   437 
   409     /**
   438     /**
   410      * Handles begin and end fullscreen events
   439      * Handles begin and end fullscreen events
   411      */
   440      */
   412     TBool HandleGfxEventL(CFullScreenEffectState& aEvent, CHuiLayout* aToLayout, CHuiLayout *aFromLayout);
   441     TBool HandleGfxEventL(CFullScreenEffectState& aEvent, CHuiLayout* aToLayout, CHuiLayout *aFromLayout);
   589 	
   618 	
   590 	void HandleSetTransparencyAlphaChannelL( TAlfBridgerData& aData );
   619 	void HandleSetTransparencyAlphaChannelL( TAlfBridgerData& aData );
   591 	
   620 	
   592 	void HandleIncludeToVisibilityCalculationL( TAlfBridgerData& aData );
   621 	void HandleIncludeToVisibilityCalculationL( TAlfBridgerData& aData );
   593 	
   622 	
       
   623 	void HandleSetScreenDeviceValidL( TAlfBridgerData& aData );
       
   624 	
   594 	void HandleSetWindowAreaL( TAlfBridgerData& aData );
   625 	void HandleSetWindowAreaL( TAlfBridgerData& aData );
   595 	
   626 	
   596 	void HandleReorderWindowL( TAlfBridgerData& aData );
   627 	void HandleReorderWindowL( TAlfBridgerData& aData );
   597 	
   628 	
   598 	void HandlePostCanvasBufferL( TAlfBridgerData& aData );
   629 	void HandlePostCanvasBufferL( TAlfBridgerData& aData );
   614 	void HandleSetCursorDataL( TAlfBridgerData& aData );
   645 	void HandleSetCursorDataL( TAlfBridgerData& aData );
   615 	
   646 	
   616 	void HandleSetNodeTracking( TAlfBridgerData& aData );
   647 	void HandleSetNodeTracking( TAlfBridgerData& aData );
   617 	
   648 	
   618 	void HandleSetFadeEffectL( TAlfBridgerData& aData );
   649 	void HandleSetFadeEffectL( TAlfBridgerData& aData );
       
   650 	
       
   651 	void HandleGroupChained( TAlfBridgerData& aData);
       
   652 	
       
   653 	void HandleGroupChainBroken( TAlfBridgerData& aData);
   619 	
   654 	
   620 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
   655 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
   621 
   656 
   622     void HandleSetLayoutSwitchEffectL();
   657     void HandleSetLayoutSwitchEffectL();
   623 	
   658 	
   709      *                 the pointer to visual corresponding the client side keys.
   744      *                 the pointer to visual corresponding the client side keys.
   710      */       
   745      */       
   711     CHuiCanvasVisual* FindVisualByClientSideIds(TUint32 aClientSideId, TUint32 aClientSideGroupId );
   746     CHuiCanvasVisual* FindVisualByClientSideIds(TUint32 aClientSideId, TUint32 aClientSideGroupId );
   712 
   747 
   713     /**
   748     /**
       
   749 	 * FindChainedGroup
       
   750 	 * 
       
   751 	 * Find chained windowgroup from iWindowChainsArray. Return 0, if not found.
       
   752 	 */
       
   753     TUint32 FindChainedGroup(TUint32 aTreeNodeId);
       
   754 
       
   755     /**
       
   756 	 * IsChainedGroup
       
   757 	 * 
       
   758 	 * @return ETrue if group is chained.
       
   759 	 */    
       
   760     TBool IsChainedGroup(TUint32 aTreeNodeId);
       
   761     
       
   762     /**
   714      * This method finds controlgroup which has been assosiated with given window group id. 
   763      * This method finds controlgroup which has been assosiated with given window group id. 
   715      * Control group may or may not be active in roster.
   764      * Control group may or may not be active in roster.
   716      *
   765      *
   717      * @param aWindowGroupNodeId Node id of the window group, internal.
   766      * @param aWindowGroupNodeId Node id of the window group, internal.
   718      */
   767      */
   719     CHuiControlGroup* FindControlGroup(TInt aWindowGroupNodeId, TInt aScreenNumber );
   768     CHuiControlGroup* FindControlGroup(TInt aWindowGroupNodeId, TInt aScreenNumber = 0);
   720 
   769 
   721     /**
   770     /**
   722      * This method finds controlgroup which has been assosiated with window server window group id. 
   771      * This method finds controlgroup which has been assosiated with window server window group id. 
   723      *
   772      *
   724      * @param aWindowGroupNodeId window server window group id of the window group, internal.
   773      * @param aWindowGroupNodeId window server window group id of the window group, internal.
   738      * @param aSecureId Secure ID to seacrh for
   787      * @param aSecureId Secure ID to seacrh for
   739      * @param aWgId Client window group ID. Ignored if -1.
   788      * @param aWgId Client window group ID. Ignored if -1.
   740      * @return Pointer to found control gruop. NULL if not found.
   789      * @return Pointer to found control gruop. NULL if not found.
   741      */
   790      */
   742     CHuiControlGroup* FindControlGroupBySecureId( TInt aSecureId, TInt aWgId = -1 ) const;
   791     CHuiControlGroup* FindControlGroupBySecureId( TInt aSecureId, TInt aWgId = -1 ) const;
       
   792 	 /**
       
   793 	  *	FindControlGroupBySecureId
       
   794 	  *
       
   795 	  *	Returns a list of window groups belonging to aSecureId.
       
   796 	  */
       
   797     void FindControlGroupBySecureId( TInt aSecureId, RPointerArray<CHuiControlGroup>& aGroupList);
   743     
   798     
   744     /**
   799     /**
   745      * Finds control gruop which matches the full screen effect end state.
   800      * Finds control gruop which matches the full screen effect end state.
   746      * 
   801      * 
   747      * @return Pointer to found control gruop. NULL if not found.
   802      * @return Pointer to found control gruop. NULL if not found.
   759      * This method deletes controlgroup which has been assosiated with given window group id. 
   814      * This method deletes controlgroup which has been assosiated with given window group id. 
   760      * Control group may or may not be active in roster.
   815      * Control group may or may not be active in roster.
   761      *
   816      *
   762      * @param aWindowGroupNodeId Node id of the window group, internal.
   817      * @param aWindowGroupNodeId Node id of the window group, internal.
   763      */
   818      */
   764     void DeleteControlGroupL(TInt aWindowGroupNodeId, TInt aScreenNumber );
   819     void DeleteControlGroupL(TInt aWindowGroupNodeId, TInt aScreenNumber = 0);
   765 
   820 
   766     /**
   821     /**
   767      * Creates a control group
   822      * Creates a control group
   768      *
   823      *
   769      * @param aWindowGroupNodeId Node id of the window group, internal.
   824      * @param aWindowGroupNodeId Node id of the window group, internal.
   785      * This method reorders alf controlgroups to just above alf servers
   840      * This method reorders alf controlgroups to just above alf servers
   786      * windowgroup.
   841      * windowgroup.
   787      * 
   842      * 
   788      */
   843      */
   789 
   844 
   790     void ReorderAlfControlGroupsL( TInt aScreenNumber );
   845     void ReorderAlfControlGroupsL( TInt aScreenNumber = 0);
   791         
   846         
   792     /**
   847     /**
   793      * Called to notify the observer that a display refresh is about to begin.
   848      * Called to notify the observer that a display refresh is about to begin.
   794      * The observer should prepare its state for the display.
   849      * The observer should prepare its state for the display.
   795      */
   850      */
   851      * This is for updating all the layout that are created to correspond the window server window groups.
   906      * This is for updating all the layout that are created to correspond the window server window groups.
   852      * This should be called immediately when layout switch happens. Layout extents must be update then otherwise
   907      * This should be called immediately when layout switch happens. Layout extents must be update then otherwise
   853      * visibility calculations will clip to old sizes.
   908      * visibility calculations will clip to old sizes.
   854      */
   909      */
   855     void UpdateRootVisualsToFullscreen();
   910     void UpdateRootVisualsToFullscreen();
       
   911     
       
   912     /**
       
   913      * Report memory consumption details (if enabled).
       
   914      */
       
   915     void ReportMemory();
       
   916     
       
   917     /**
       
   918      * Clears rasterizer cache.
       
   919      */
       
   920     void ClearRasterizerCache();
   856     
   921     
   857 private:
   922 private:
   858 
   923 
   859     RPointerArray<CAlfScreen> iAlfScreens;
   924     RPointerArray<CAlfScreen> iAlfScreens;
   860     void SetCursorTimerL(TUint aTime = 0, CHuiVisual* aCursor = 0);
   925     void SetCursorTimerL(TUint aTime = 0, CHuiVisual* aCursor = 0);
  1007         TInt32 iClientSideId;
  1072         TInt32 iClientSideId;
  1008         TInt32 iClientSideGroupId;
  1073         TInt32 iClientSideGroupId;
  1009         };
  1074         };
  1010     
  1075     
  1011     RHashMap<TUint32,THashVisualStruct> iWindowHashArray;
  1076     RHashMap<TUint32,THashVisualStruct> iWindowHashArray;
       
  1077     
       
  1078     class TChainData
       
  1079         {
       
  1080     public:
       
  1081         TChainData(TUint32 aParent, TUint32 aChainee) : iParent(aParent), iChainee(aChainee)
       
  1082             {
       
  1083             }
       
  1084         TUint32 iParent;
       
  1085         TUint32 iChainee;
       
  1086         };
       
  1087     RHashMap<TUint32,TChainData> iWindowChainsArray;
       
  1088     
  1012     CHuiControl* iOrphanStorage; // owned. holds the visuals which are orphaned from their control group
  1089     CHuiControl* iOrphanStorage; // owned. holds the visuals which are orphaned from their control group
  1013     class TRegisteredEffectsStruct
  1090     class TRegisteredEffectsStruct
  1014         {
  1091         {
  1015     public:
  1092     public:
  1016         TRegisteredEffectsStruct()
  1093         TRegisteredEffectsStruct()