uiacceltk/hitchcock/ServerCore/Inc/alfeffectutils.h
branchRCL_3
changeset 6 10534483575f
parent 5 433cbbb6a04b
child 7 88b23e2e82e1
equal deleted inserted replaced
5:433cbbb6a04b 6:10534483575f
    41         void ConstructL();
    41         void ConstructL();
    42         void RunL();
    42         void RunL();
    43       
    43       
    44     private:    // Data
    44     private:    // Data
    45         CAlfBridge& iBridge;
    45         CAlfBridge& iBridge;
       
    46  	public:
       
    47 	   	TInt iSafeCounter;
    46                 
    48                 
    47     };
    49     };
    48 
    50 
    49 
    51 
    50 
    52 
    58     public:  // Constructors and destructor
    60     public:  // Constructors and destructor
    59         static CAlfEffectEndTimer* NewL( CAlfBridge& aBridge );
    61         static CAlfEffectEndTimer* NewL( CAlfBridge& aBridge );
    60         virtual ~CAlfEffectEndTimer();
    62         virtual ~CAlfEffectEndTimer();
    61 
    63 
    62     public: // New functions
    64     public: // New functions
    63         void Start( TTimeIntervalMicroSeconds32 aPeriod, TInt aHandle );
    65         void Start( TTimeIntervalMicroSeconds32 aPeriod );
       
    66         void AddFinishedHandleL(TInt aHandle);
    64         
    67         
    65     protected:  // Functions from base classes
    68     protected:  // Functions from base classes
    66         void DoCancel();
    69         void DoCancel();
    67 
    70 
    68     private:
    71     private:
    70         void ConstructL();
    73         void ConstructL();
    71         void RunL();
    74         void RunL();
    72       
    75       
    73     private:    // Data
    76     private:    // Data
    74         CAlfBridge& iBridge;
    77         CAlfBridge& iBridge;
    75         TInt iHandle;
    78         RArray<TInt> iHandles;
    76                 
       
    77     };
    79     };
    78 
    80 
    79 // ---------------------------------------------------------
    81 // ---------------------------------------------------------
    80 // CAlfLayoutSwitchEffectcoordinator
    82 // CAlfLayoutSwitchEffectcoordinator
    81 // ---------------------------------------------------------
    83 // ---------------------------------------------------------
    90         void AlfGfxEffectEndCallBack( TInt aHandle );
    92         void AlfGfxEffectEndCallBack( TInt aHandle );
    91     
    93     
    92     public:
    94     public:
    93         void BeginLayoutSwitch();
    95         void BeginLayoutSwitch();
    94         void Cancel();
    96         void Cancel();
    95         
    97         TBool LayoutSwitchEffectsExist();
       
    98 		void EnableSafeCounter(TBool aEnable)
       
    99 			{
       
   100 			if (iRosterFreezeEndTimer)
       
   101 				{
       
   102 				if (aEnable)
       
   103 					{
       
   104 					iRosterFreezeEndTimer->iSafeCounter = 0;
       
   105 					}
       
   106 				else
       
   107 					{
       
   108 					iRosterFreezeEndTimer->iSafeCounter = KErrNotFound;
       
   109 					}
       
   110 				}
       
   111 			}        
    96     private:
   112     private:
    97         AknTransEffect::TContext NextLayoutSwitchContext();
   113         AknTransEffect::TContext NextLayoutSwitchContext();
    98         void SetLayoutSwitchEffect(AknTransEffect::TContext aContext);
   114         void SetLayoutSwitchEffect(AknTransEffect::TContext aContext);
    99         TBool LayoutSwitchEffectsExist();
       
   100         
   115         
   101     private: // Data
   116     private: // Data
   102         
   117         
   103         CAlfBridge& iBridge;
   118         CAlfBridge& iBridge;
   104         AknTransEffect::TContext iLayoutSwitchEffectContext;
   119         AknTransEffect::TContext iLayoutSwitchEffectContext;
   105         TThreadPriority iOriginalPriority;
   120         TThreadPriority iOriginalPriority;
   106         CAlfRosterFreezeEndTimer* iRosterFreezeEndTimer;
   121         CAlfRosterFreezeEndTimer* iRosterFreezeEndTimer;
   107     };
   122 	};
   108 
   123 
   109 // ---------------------------------------------------------
   124 // ---------------------------------------------------------
   110 // Effects states are used for effects request that arrive before the effected 
   125 // Effects states are used for effects request that arrive before the effected 
   111 // window has been created. This is very common with fullscreen effects and 
   126 // window has been created. This is very common with fullscreen effects and 
   112 // occational with control effects.
   127 // occational with control effects.
   158     public:
   173     public:
   159         ~CFullScreenEffectState();
   174         ~CFullScreenEffectState();
   160         
   175         
   161         void ConstructL(TInt aAction, RMemReadStream& aStream);
   176         void ConstructL(TInt aAction, RMemReadStream& aStream);
   162         
   177         
   163         TBool ResetTimerL(CAlfBridge* aBridge);
   178         TBool InitDelayedEffectL(CAlfBridge* aBridge, TSize aDisplaySize);
   164         
   179         
   165         void NotifyDrawingTimeout();
   180         void NotifyDrawingTimeout();
   166 
   181 
   167         // Information from BeginFullScreen
   182         // Information from BeginFullScreen
   168         TInt iType;
   183         TInt iType;
   169         TInt iWg1;
   184         TInt iToWg;
   170         TInt iWg2;
   185         TInt iFromWg;
   171         TInt iToAppId;
   186         TInt iToAppId;
   172         TInt iFromAppId;
   187         TInt iFromAppId;
       
   188         TInt iToSecureId;
       
   189         TInt iFromSecureId;
   173         TRect iRect;
   190         TRect iRect;
   174         
   191         
   175         // ETrue if waiting for window group to appear
   192         // ETrue if waiting for window group to appear
   176         TBool iWaitingWindowGroup;
   193         TBool iWaitingWindowGroup;
   177         // ETrue if end fullscreen has been performed
   194         // ETrue if end fullscreen has been performed
   180         TBool iSetupDone;
   197         TBool iSetupDone;
   181 
   198 
   182         // used for resolving the iCleanupStackItem that holds the frozen app layout underneath the starting application
   199         // used for resolving the iCleanupStackItem that holds the frozen app layout underneath the starting application
   183         TInt iAppStartScreenshotItemHandle;
   200         TInt iAppStartScreenshotItemHandle;
   184         
   201         
   185         RRegion iPaintedRegion;
   202         
   186         enum TEffectType
   203         enum TEffectType
   187         {
   204         {
   188             ENotDefinedEffect = 0,
   205             ENotDefinedEffect = 0,
   189             EStartEffect,
   206             EStartEffect,
   190             EExitEffect
   207             EExitEffect
   191         };
   208         };
   192         
   209         
   193         TEffectType iEffectType;
   210         TEffectType iEffectType;
       
   211         
       
   212         // Display dimension, iPaintedRegion is clipped to this when determining, if there is enough drawing to the group
   194         TSize iDisplaySize;
   213         TSize iDisplaySize;
       
   214         
       
   215         // gathers the painted region for the effected application. When enough region has been painted, the effect is forced.
       
   216         RRegion iPaintedRegion;
       
   217         
   195         CAlfBridge* iBridge; // for callback. not own.
   218         CAlfBridge* iBridge; // for callback. not own.
   196         
   219         
       
   220         // If the visual is shown by some other visual by a screenshot, this is set ETrue.
       
   221         TBool iCanDestroyOrHideImmediately;
       
   222         
   197         CPeriodic* iDrawingCompleteTimer;
   223         CPeriodic* iDrawingCompleteTimer;
   198         };
   224         };