64 TInt aHandle, |
64 TInt aHandle, |
65 CHuiVisual* aEffectedVisual, |
65 CHuiVisual* aEffectedVisual, |
66 CHuiVisual* aTemporaryPresenterVisual, |
66 CHuiVisual* aTemporaryPresenterVisual, |
67 TBool aIsLayout, |
67 TBool aIsLayout, |
68 TBool aHideWhenFinished, |
68 TBool aHideWhenFinished, |
69 TBool aCanDestroyOrHideImmediately) |
69 TBool aCanDestroyOrHideImmediately, |
|
70 TBool aIsFullScreenEffect) |
70 : iHandle(aHandle), |
71 : iHandle(aHandle), |
71 iEffectedVisual(aEffectedVisual), |
72 iEffectedVisual(aEffectedVisual), |
72 iTemporaryPresenterVisual(aTemporaryPresenterVisual), |
73 iTemporaryPresenterVisual(aTemporaryPresenterVisual), |
73 iIsLayout(aIsLayout), |
74 iIsLayout(aIsLayout), |
74 iHideWhenFinished(aHideWhenFinished), |
75 iHideWhenFinished(aHideWhenFinished), |
75 iCanDestroyOrHideImmediately(aCanDestroyOrHideImmediately) |
76 iCanDestroyOrHideImmediately(aCanDestroyOrHideImmediately), |
|
77 iIsFullScreenEffect(aIsFullScreenEffect) |
76 { |
78 { |
77 // RDebug::Printf("TEffectCleanupStruct - 0x%x 0x%x, %d", iEffectedVisual, iTemporaryPresenterVisual, iIsLayout ); |
79 // RDebug::Printf("TEffectCleanupStruct - 0x%x 0x%x, %d", iEffectedVisual, iTemporaryPresenterVisual, iIsLayout ); |
78 }; |
80 }; |
79 |
81 |
80 TInt iHandle; |
82 TInt iHandle; |
82 TBool iIsLayout; |
84 TBool iIsLayout; |
83 |
85 |
84 TBool iHideWhenFinished; |
86 TBool iHideWhenFinished; |
85 |
87 |
86 TBool iCanDestroyOrHideImmediately; |
88 TBool iCanDestroyOrHideImmediately; |
87 |
89 |
|
90 TBool iIsFullScreenEffect; |
|
91 |
88 // not own, unless iEffectedVisual has EShouldDestroy flag enabled |
92 // not own, unless iEffectedVisual has EShouldDestroy flag enabled |
89 CHuiVisual* iEffectedVisual; |
93 CHuiVisual* iEffectedVisual; |
90 // owned |
94 // owned |
91 CHuiVisual* iTemporaryPresenterVisual; |
95 CHuiVisual* iTemporaryPresenterVisual; |
92 }; |
96 }; |
277 * GfxTransEffect API gives EndFullScreen events too late. Thus there is a two stage process for triggering |
281 * GfxTransEffect API gives EndFullScreen events too late. Thus there is a two stage process for triggering |
278 * the EndFullScreen effect after BeginFullScreen event arrived. |
282 * the EndFullScreen effect after BeginFullScreen event arrived. |
279 * |
283 * |
280 */ |
284 */ |
281 void GfxTriggerEndFullScreen(CFullScreenEffectState* aFullScreenEffectData); |
285 void GfxTriggerEndFullScreen(CFullScreenEffectState* aFullScreenEffectData); |
282 |
286 |
|
287 /** |
|
288 * UpdateSecondaryEffectL |
|
289 * |
|
290 * Resolve filename for two part effect that is used with slowly starting applications |
|
291 * |
|
292 */ |
|
293 TBool UpdateSecondaryEffectL(const CFullScreenEffectState& aState); |
|
294 |
283 /* |
295 /* |
284 * GfxTriggerEffectWhenFullScreenDrawn |
296 * GfxTriggerEffectWhenFullScreenDrawn |
285 * |
297 * |
286 * Goes through the given CHuiControl (group which is supposed to show the effect). |
298 * Goes through the given CHuiControl (group which is supposed to show the effect). |
287 * Triggers the effect, if drawing buffers in group cover the whole screen in the |
299 * Triggers the effect, if drawing buffers in group cover the whole screen in the |
425 * |
437 * |
426 * |
438 * |
427 * @return ETrue, if layout have been initialized succesfully for the effect |
439 * @return ETrue, if layout have been initialized succesfully for the effect |
428 EFalse, if any visuals have been removed. Effect should not be applied. |
440 EFalse, if any visuals have been removed. Effect should not be applied. |
429 */ |
441 */ |
430 TBool SetupEffectLayoutContainerL(TInt aHandle,CHuiLayout* aSourceLayout, TBool aIsExitEffect, TBool aCanDestroyOrHideImmediately); |
442 TBool SetupEffectLayoutContainerL(TInt aHandle,CHuiLayout* aSourceLayout, TBool aIsFullScreenEffect, TBool aIsExitEffect, TBool aCanDestroyOrHideImmediately); |
431 |
443 |
432 /* |
444 /* |
433 * AddEffectItemL |
445 * AddEffectItemL |
434 * |
446 * |
435 * Prepares visual for the effect. Removes previous effect if necessary. @aItemDestroyed will return EFalse, |
447 * Prepares visual for the effect. Removes previous effect if necessary. @aItemDestroyed will return EFalse, |
442 CHuiVisual* aSourceVisual, |
454 CHuiVisual* aSourceVisual, |
443 CHuiLayout* aTargetLayout, |
455 CHuiLayout* aTargetLayout, |
444 CHuiControl* aEffectControl, |
456 CHuiControl* aEffectControl, |
445 TBool aInsertTemporaryVisual, |
457 TBool aInsertTemporaryVisual, |
446 TBool& aItemDestroyed, |
458 TBool& aItemDestroyed, |
|
459 TBool aIsFullScreenEffect, |
447 TBool aIsExitEffect = EFalse, |
460 TBool aIsExitEffect = EFalse, |
448 TBool aCanDestroyOrHideImmediately = EFalse); |
461 TBool aCanDestroyOrHideImmediately = EFalse |
|
462 ); |
449 |
463 |
450 |
464 |
451 /* |
465 /* |
452 * AddToEffectLayoutContainerL |
466 * AddToEffectLayoutContainerL |
453 */ |
467 */ |
455 TInt aEffectHandle, |
469 TInt aEffectHandle, |
456 CHuiLayout* aSourceLayout, |
470 CHuiLayout* aSourceLayout, |
457 CHuiLayout* aTargetLayout, |
471 CHuiLayout* aTargetLayout, |
458 CHuiControl* aEffectControlGroup, |
472 CHuiControl* aEffectControlGroup, |
459 TInt& aItemsDestroyed, |
473 TInt& aItemsDestroyed, |
|
474 TBool aIsFullScreenEffect, |
460 TBool aAddLayout = ETrue, |
475 TBool aAddLayout = ETrue, |
461 TBool aIsExitEffect = EFalse, |
476 TBool aIsExitEffect = EFalse, |
462 TBool aCanDestroyOrHideImmediately = EFalse); |
477 TBool aCanDestroyOrHideImmediately = EFalse); |
463 |
478 |
464 /* |
479 /* |
604 CHuiControlGroup& aGroup, |
619 CHuiControlGroup& aGroup, |
605 TInt aWhere, |
620 TInt aWhere, |
606 TInt aScreenNumber ); |
621 TInt aScreenNumber ); |
607 |
622 |
608 void ShowWindowGroupControlGroupL(CHuiRoster& aRoster, CHuiControlGroup& aGroup, TInt aWhere, TInt aScreenNumber ); |
623 void ShowWindowGroupControlGroupL(CHuiRoster& aRoster, CHuiControlGroup& aGroup, TInt aWhere, TInt aScreenNumber ); |
|
624 |
|
625 /** |
|
626 * HasActiveAlfContent |
|
627 * |
|
628 * Determine if the window group in question has active Alf visuals |
|
629 * |
|
630 * @return ETrue, if active clients |
|
631 */ |
|
632 TBool HasActiveAlfContent( TInt aClientWgId ); |
609 |
633 |
610 private: |
634 private: |
611 |
635 |
612 /** |
636 /** |
613 * Provide a bitmap and mask from the given UID. |
637 * Provide a bitmap and mask from the given UID. |
914 * Full screen effect state. |
938 * Full screen effect state. |
915 * Own. |
939 * Own. |
916 */ |
940 */ |
917 CFullScreenEffectState* iFullScreenEffectData; |
941 CFullScreenEffectState* iFullScreenEffectData; |
918 |
942 |
|
943 CFullScreenEffectState* iSecondaryFullScreenEffectData; |
|
944 |
919 /** |
945 /** |
920 * Control effect state. |
946 * Control effect state. |
921 * Own. |
947 * Own. |
922 */ |
948 */ |
923 CControlEffectState* iControlEffectData; |
949 CControlEffectState* iControlEffectData; |
924 |
950 |
925 // these save the current full screen transition data |
951 // these save the current full screen transition data |
926 // so that the correct transition can be ended from the callback |
952 // so that the correct transition can be ended from the callback |
927 // when the effect ends |
953 // when the effect ends |
928 TInt iLastFullScreenEffectWindowGroup; |
954 |
929 TInt iLastFullScreenScreen; |
|
930 TInt iLastAction; |
|
931 TInt iLastEffectHandle; |
|
932 CAlfEffectEndTimer* iEffectEndTimer; |
955 CAlfEffectEndTimer* iEffectEndTimer; |
933 TBool iLayoutInitializedForExitEffect; |
956 TBool iLayoutInitializedForExitEffect; |
934 |
957 |
935 CAlfStreamerBridge** iHost; |
958 CAlfStreamerBridge** iHost; |
936 |
959 |