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