uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h
branchRCL_3
changeset 41 cd0ae4656946
parent 34 3a60ebea00d0
child 49 c9d868f1e20c
equal deleted inserted replaced
34:3a60ebea00d0 41:cd0ae4656946
   203     void AlfGfxEffectEndCallBack( TInt aHandle );
   203     void AlfGfxEffectEndCallBack( TInt aHandle );
   204    
   204    
   205     TInt FindClientWindowGroupId( TInt aScreenNumber, CHuiControlGroup& aControlGroup );
   205     TInt FindClientWindowGroupId( TInt aScreenNumber, CHuiControlGroup& aControlGroup );
   206     TInt FindWindowGroupNodeId( TInt aScreenNumber, CHuiControlGroup& aControlGroup ) const;
   206     TInt FindWindowGroupNodeId( TInt aScreenNumber, CHuiControlGroup& aControlGroup ) const;
   207     
   207     
   208     void RemoveAllTemporaryPresenterVisuals();
   208     void CleanAllFxVisuals();
   209 
   209 
   210     /**
   210     /**
   211      * Helper function to abort fullscreen effect
   211      * Helper function to abort fullscreen effect
   212      * @param aClientRequest ETrue if requested by client.
   212      * @param aClientRequest ETrue if requested by client.
   213      */
   213      */
   302 	*	@param	aToGroup	Group to be analyzed
   302 	*	@param	aToGroup	Group to be analyzed
   303 	*/
   303 	*/
   304     TBool GfxTriggerEffectWhenFullScreenDrawn(CHuiControlGroup* aToGroup = NULL);
   304     TBool GfxTriggerEffectWhenFullScreenDrawn(CHuiControlGroup* aToGroup = NULL);
   305     
   305     
   306 	// Experimental
   306 	// Experimental
   307     TBool IsFullScreenDrawn( TInt aOrientation);
   307 	TBool IsLayoutSwitchReady( TInt aDuration );
       
   308     TBool IsLayoutSwitchReadyRecursive(
       
   309             CHuiLayout* aLayout,
       
   310             CHuiControlGroup& aControlGroup,
       
   311             CHuiControl& aControl,
       
   312             TBool& aFullscreenCovered, 
       
   313             const TRect& aFullscreen,
       
   314             CAlfScreen* aScreen,
       
   315             TBool aChildCanBeOpaque, 
       
   316             TBool aOnlyForEmbeddedAlfApp,
       
   317             TInt aOrientation,
       
   318             TInt aDuration,
       
   319             TBool& aCoverageRegionModified );
       
   320 
   308 	
   321 	
   309     void LayoutSwitchStart();
   322     void LayoutSwitchStart();
   310     void LayoutSwitchComplete();
   323     void LayoutSwitchComplete();
   311     
   324     
   312     RAlfBridgerClient* BridgerClient();
   325     RAlfBridgerClient* BridgerClient();
   440 	 			EFalse,	if any visuals have been removed. Effect should not be applied.
   453 	 			EFalse,	if any visuals have been removed. Effect should not be applied.
   441      */
   454      */
   442     TBool SetupEffectLayoutContainerL(TInt aHandle,CHuiLayout* aSourceLayout, TBool aIsFullScreenEffect, TBool aIsExitEffect, TBool aCanDestroyOrHideImmediately);
   455     TBool SetupEffectLayoutContainerL(TInt aHandle,CHuiLayout* aSourceLayout, TBool aIsFullScreenEffect, TBool aIsExitEffect, TBool aCanDestroyOrHideImmediately);
   443 
   456 
   444     /*
   457     /*
   445      *	AddEffectItemL
   458      *	AddFxItemL
   446 	 *
   459 	 *
   447 	 *	Prepares visual for the effect. Removes previous effect if necessary. @aItemDestroyed will return EFalse,
   460 	 *	Prepares visual for the effect. Removes previous effect if necessary. @aItemDestroyed will return EFalse,
   448 	 *	if the visual has been destroyed during the previous effect.
   461 	 *	if the visual has been destroyed during the previous effect.
   449 	 *	
   462 	 *	
   450 	 *	@param	aItemDestroyed	
   463 	 *	@param	aItemDestroyed	
   451      */
   464      */
   452     CHuiCanvasVisual* AddEffectItemL(
   465     CHuiCanvasVisual* AddFxItemL(
   453             TInt aEffectHandle,
   466             TInt aEffectHandle,
   454             CHuiVisual* aSourceVisual, 
   467             CHuiVisual* aSourceVisual, 
   455             CHuiLayout* aTargetLayout, 
   468             CHuiLayout* aTargetLayout, 
   456             CHuiControl* aEffectControl,
   469             CHuiControl* aEffectControl,
   457             TBool aInsertTemporaryVisual,
   470             TBool aInsertTemporaryVisual,
   480      *	ListFamilyTreeL
   493      *	ListFamilyTreeL
   481      */   
   494      */   
   482     void ListFamilyTreeL( RPointerArray<CHuiLayout>& aArray, const CHuiLayout* aLayout );
   495     void ListFamilyTreeL( RPointerArray<CHuiLayout>& aArray, const CHuiLayout* aLayout );
   483 
   496 
   484     /*
   497     /*
   485      * RemoveTemporaryPresenterItem
   498      * CleanFxItem
   486      * 
   499      * 
   487      * Effects are shown indirectly by a another visual, that is in iFullScreenEffect control group. 
   500      * Effects are shown indirectly by a another visual, that is in iFullScreenEffect control group. 
   488      * This methods unbinds the external content and the removes temporary presenter visual 
   501      * This methods unbinds the external content and the removes temporary presenter visual 
   489 	 * from iFullScreenEffect group and . It does not delete the CHuiFxEffect 
   502 	 * from iFullScreenEffect group and . It does not delete the CHuiFxEffect 
   490 	 * object associated with the content visual. See also iEffectCleanupStack.  
   503 	 * object associated with the content visual. See also iEffectCleanupStack.  
   491      */
   504      */
   492     TBool RemoveTemporaryPresenterItem(TEffectCleanupStruct& aEffectItem);
   505     TBool CleanFxItem(TEffectCleanupStruct& aEffectItem);
   493 
   506 
   494     /*
   507     /*
   495      * FindTemporaryPresenterLayout
   508      * FindTemporaryPresenterLayout
   496      * 
   509      * 
   497      * Finds temporary presenter layout based on a visual.
   510      * Finds temporary presenter layout based on a visual.
   542 	*	@return 	Returns the effect handle number, which is associated with this visual. If none found, then 
   555 	*	@return 	Returns the effect handle number, which is associated with this visual. If none found, then 
   543 	*               returns KErrNotFound.
   556 	*               returns KErrNotFound.
   544 	*/
   557 	*/
   545     TInt FindEffectHandle(CHuiVisual* aVisual);
   558     TInt FindEffectHandle(CHuiVisual* aVisual);
   546     /*
   559     /*
   547      * RemoveTemporaryPresenterVisual
   560      * CleanFxVisual
   548      * 
   561      * 
   549      * Effects are shown indirectly by a another visual, that is in iFullScreenEffect control group. 
   562      * Effects are shown indirectly by a another visual, that is in iFullScreenEffect control group. 
   550      * This methods unbinds the external content and the removes temporary presenter visual 
   563      * This methods unbinds the external content and the removes temporary presenter visual 
   551 	 * from iFullScreenEffect group and . It does not delete the CHuiFxEffect 
   564 	 * from iFullScreenEffect group and . It does not delete the CHuiFxEffect 
   552 	 * object associated with the content visual. See also iEffectCleanupStack.  
   565 	 * object associated with the content visual. See also iEffectCleanupStack.  
   553      */
   566      */
   554     TBool RemoveTemporaryPresenterVisual(CHuiVisual* aVisual, TInt aHandle = KErrNotFound);
   567     TBool CleanFxVisual(CHuiVisual* aVisual, TInt aHandle = KErrNotFound);
   555     
   568     
   556     /*
   569     /*
   557      *	RemoveTemporaryPresenterVisuals
   570      *	CleanFxVisuals
   558      *	
   571      *	
   559      *	See above. 
   572      *	See above. 
   560      */
   573      */
   561     TBool RemoveTemporaryPresenterVisuals();
   574     TBool CleanFxVisuals();
   562     
   575     
   563 	void HandleNewWindowL( TAlfBridgerData& aData );
   576 	void HandleNewWindowL( TAlfBridgerData& aData );
   564 	
   577 	
   565 	void DestroyWindow(CHuiVisual* aVisual, TBool aForce = EFalse);
   578 	void DestroyWindow(CHuiVisual* aVisual, TBool aForce = EFalse);
   566 	
   579 	
   607 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
   620 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
   608 
   621 
   609     void HandleSetLayoutSwitchEffectL();
   622     void HandleSetLayoutSwitchEffectL();
   610 	
   623 	
   611     void ClearCanvasVisualCommandSets(TBool aInactiveOnly);
   624     void ClearCanvasVisualCommandSets(TBool aInactiveOnly);
       
   625     static void ClearCanvasVisualCommandSetsRecursive(CHuiCanvasVisual* aVisual, TBool aInactiveOnly);
   612     
   626     
   613     void ClipVisualRect(TRect& aRect, const TRect& aClippingRect);
   627     void ClipVisualRect(TRect& aRect, const TRect& aClippingRect);
   614 
   628 
   615     TBool IsRectCoveredByRegion(TRect aRect, TRegion& aCoveringRegion);
   629     TBool IsRectCoveredByRegion(TRect aRect, TRegion& aCoveringRegion);
   616 
   630 
   928     // iEffectCleanupStack contains the entries for effects that are currently associated 
   942     // iEffectCleanupStack contains the entries for effects that are currently associated 
   929     // with visuals in iFullscreenEffectControlGroup
   943     // with visuals in iFullscreenEffectControlGroup
   930     RArray<TEffectCleanupStruct> iEffectCleanupStack;
   944     RArray<TEffectCleanupStruct> iEffectCleanupStack;
   931     
   945     
   932     // Same as iEffectCleanupStack, but only the ones that can be now cleaned away.
   946     // Same as iEffectCleanupStack, but only the ones that can be now cleaned away.
   933     // See method RemoveTemporaryPresenterVisuals.
   947     // See method CleanFxVisuals.
   934     RArray<TInt> iFinishedCleanupStackEffects;
   948     RArray<TInt> iFinishedCleanupStackEffects;
   935     
   949     
   936 	
   950 	
   937     /**
   951     /**
   938      * Full screen effect state.
   952      * Full screen effect state.
   939      * Own.
   953      * Own.
   940      */
   954      */
   941     CFullScreenEffectState* iFullScreenEffectData;
   955     CFullScreenEffectState* iFSFxData;
   942     
   956     
   943     CFullScreenEffectState* iSecondaryFullScreenEffectData;
   957     /**
       
   958      *  Long app start effect consists of two effects. The app_start_long.fxml is 
       
   959      *  applied after a short timeout. Then system waits the EndFullScreen event is
       
   960      *  received or heuristics determine that new application has drawn itself 
       
   961      *  properly. When application is drawn, the original requested effect is applied. 
       
   962      *  
       
   963      *  iFSFXDataPart2 defines the original requested effect, while iFSFxData
       
   964      *  is used to define the coming or ongoing fullscreen app start effect.
       
   965      */
       
   966     CFullScreenEffectState* iFSFXDataPart2;
   944     
   967     
   945     /**
   968     /**
   946      * Control effect state.
   969      * Control effect state.
   947      * Own.
   970      * Own.
   948      */
   971      */
  1030     CAlfCommandDebug* iCommandDebug;
  1053     CAlfCommandDebug* iCommandDebug;
  1031 
  1054 
  1032     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempVisualRegion;
  1055     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempVisualRegion;
  1033     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempIntersectingRegion;
  1056     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempIntersectingRegion;
  1034     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempRegion;
  1057     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempRegion;
       
  1058     mutable RRegionBuf<KAlfBridgeRegionGranularity> iTempRegion2;
       
  1059     
  1035     TBool iBgSurfaceFound;
  1060     TBool iBgSurfaceFound;
  1036     TBool iInLowMemMode;
  1061     TBool iInLowMemMode;
  1037     TBool iLayoutSwitchInProgress;
  1062     TBool iLayoutSwitchInProgress;
  1038 
  1063 
  1039     TBool iHomeScreenWallpaperWindowFound;
  1064     TBool iHomeScreenWallpaperWindowFound;