uiacceltk/hitchcock/ServerCore/Inc/alfbridge.h
branchRCL_3
changeset 19 e5af45d51884
parent 18 1801340c26a2
child 20 31fccae4f8a7
equal deleted inserted replaced
18:1801340c26a2 19:e5af45d51884
   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 = 0);
   162             TInt aScreenNumber );
   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(CHuiControlGroup& aControlGroup );
   205     TInt FindClientWindowGroupId( TInt aScreenNumber, CHuiControlGroup& aControlGroup );
   206     TInt FindWindowGroupNodeId(CHuiControlGroup& aControlGroup ) const;
   206     TInt FindWindowGroupNodeId( TInt aScreenNumber, 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);
       
   340 	
   321 	
   341     void LayoutSwitchStart();
   322     void LayoutSwitchStart();
   342     void LayoutSwitchComplete();
   323     void LayoutSwitchComplete();
   343     
   324     
   344     RAlfBridgerClient* BridgerClient();
   325     RAlfBridgerClient* BridgerClient();
   422     *
   403     *
   423 	*	@return ETrue	If storing was required and could be done.
   404 	*	@return ETrue	If storing was required and could be done.
   424     *					OR storing was not required. 
   405     *					OR storing was not required. 
   425 	*/    
   406 	*/    
   426     TBool StoreLayoutIfRequiredByEffectL(CHuiLayout* aLayout, CFullScreenEffectState& aEvent, TBool& aNeededStoredLayout);
   407     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);
       
   437 
   408 
   438     /**
   409     /**
   439      * Handles begin and end fullscreen events
   410      * Handles begin and end fullscreen events
   440      */
   411      */
   441     TBool HandleGfxEventL(CFullScreenEffectState& aEvent, CHuiLayout* aToLayout, CHuiLayout *aFromLayout);
   412     TBool HandleGfxEventL(CFullScreenEffectState& aEvent, CHuiLayout* aToLayout, CHuiLayout *aFromLayout);
   618 	
   589 	
   619 	void HandleSetTransparencyAlphaChannelL( TAlfBridgerData& aData );
   590 	void HandleSetTransparencyAlphaChannelL( TAlfBridgerData& aData );
   620 	
   591 	
   621 	void HandleIncludeToVisibilityCalculationL( TAlfBridgerData& aData );
   592 	void HandleIncludeToVisibilityCalculationL( TAlfBridgerData& aData );
   622 	
   593 	
   623 	void HandleSetScreenDeviceValidL( TAlfBridgerData& aData );
       
   624 	
       
   625 	void HandleSetWindowAreaL( TAlfBridgerData& aData );
   594 	void HandleSetWindowAreaL( TAlfBridgerData& aData );
   626 	
   595 	
   627 	void HandleReorderWindowL( TAlfBridgerData& aData );
   596 	void HandleReorderWindowL( TAlfBridgerData& aData );
   628 	
   597 	
   629 	void HandlePostCanvasBufferL( TAlfBridgerData& aData );
   598 	void HandlePostCanvasBufferL( TAlfBridgerData& aData );
   645 	void HandleSetCursorDataL( TAlfBridgerData& aData );
   614 	void HandleSetCursorDataL( TAlfBridgerData& aData );
   646 	
   615 	
   647 	void HandleSetNodeTracking( TAlfBridgerData& aData );
   616 	void HandleSetNodeTracking( TAlfBridgerData& aData );
   648 	
   617 	
   649 	void HandleSetFadeEffectL( TAlfBridgerData& aData );
   618 	void HandleSetFadeEffectL( TAlfBridgerData& aData );
   650 	
       
   651 	void HandleGroupChained( TAlfBridgerData& aData);
       
   652 	
       
   653 	void HandleGroupChainBroken( TAlfBridgerData& aData);
       
   654 	
   619 	
   655 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
   620 	void HandleMoveWindowToNewGroupL( TAlfBridgerData& aData );
   656 
   621 
   657     void HandleSetLayoutSwitchEffectL();
   622     void HandleSetLayoutSwitchEffectL();
   658 	
   623 	
   744      *                 the pointer to visual corresponding the client side keys.
   709      *                 the pointer to visual corresponding the client side keys.
   745      */       
   710      */       
   746     CHuiCanvasVisual* FindVisualByClientSideIds(TUint32 aClientSideId, TUint32 aClientSideGroupId );
   711     CHuiCanvasVisual* FindVisualByClientSideIds(TUint32 aClientSideId, TUint32 aClientSideGroupId );
   747 
   712 
   748     /**
   713     /**
   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     /**
       
   763      * This method finds controlgroup which has been assosiated with given window group id. 
   714      * This method finds controlgroup which has been assosiated with given window group id. 
   764      * Control group may or may not be active in roster.
   715      * Control group may or may not be active in roster.
   765      *
   716      *
   766      * @param aWindowGroupNodeId Node id of the window group, internal.
   717      * @param aWindowGroupNodeId Node id of the window group, internal.
   767      */
   718      */
   768     CHuiControlGroup* FindControlGroup(TInt aWindowGroupNodeId, TInt aScreenNumber = 0);
   719     CHuiControlGroup* FindControlGroup(TInt aWindowGroupNodeId, TInt aScreenNumber );
   769 
   720 
   770     /**
   721     /**
   771      * This method finds controlgroup which has been assosiated with window server window group id. 
   722      * This method finds controlgroup which has been assosiated with window server window group id. 
   772      *
   723      *
   773      * @param aWindowGroupNodeId window server window group id of the window group, internal.
   724      * @param aWindowGroupNodeId window server window group id of the window group, internal.
   787      * @param aSecureId Secure ID to seacrh for
   738      * @param aSecureId Secure ID to seacrh for
   788      * @param aWgId Client window group ID. Ignored if -1.
   739      * @param aWgId Client window group ID. Ignored if -1.
   789      * @return Pointer to found control gruop. NULL if not found.
   740      * @return Pointer to found control gruop. NULL if not found.
   790      */
   741      */
   791     CHuiControlGroup* FindControlGroupBySecureId( TInt aSecureId, TInt aWgId = -1 ) const;
   742     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);
       
   798     
   743     
   799     /**
   744     /**
   800      * Finds control gruop which matches the full screen effect end state.
   745      * Finds control gruop which matches the full screen effect end state.
   801      * 
   746      * 
   802      * @return Pointer to found control gruop. NULL if not found.
   747      * @return Pointer to found control gruop. NULL if not found.
   814      * This method deletes controlgroup which has been assosiated with given window group id. 
   759      * This method deletes controlgroup which has been assosiated with given window group id. 
   815      * Control group may or may not be active in roster.
   760      * Control group may or may not be active in roster.
   816      *
   761      *
   817      * @param aWindowGroupNodeId Node id of the window group, internal.
   762      * @param aWindowGroupNodeId Node id of the window group, internal.
   818      */
   763      */
   819     void DeleteControlGroupL(TInt aWindowGroupNodeId, TInt aScreenNumber = 0);
   764     void DeleteControlGroupL(TInt aWindowGroupNodeId, TInt aScreenNumber );
   820 
   765 
   821     /**
   766     /**
   822      * Creates a control group
   767      * Creates a control group
   823      *
   768      *
   824      * @param aWindowGroupNodeId Node id of the window group, internal.
   769      * @param aWindowGroupNodeId Node id of the window group, internal.
   840      * This method reorders alf controlgroups to just above alf servers
   785      * This method reorders alf controlgroups to just above alf servers
   841      * windowgroup.
   786      * windowgroup.
   842      * 
   787      * 
   843      */
   788      */
   844 
   789 
   845     void ReorderAlfControlGroupsL( TInt aScreenNumber = 0);
   790     void ReorderAlfControlGroupsL( TInt aScreenNumber );
   846         
   791         
   847     /**
   792     /**
   848      * Called to notify the observer that a display refresh is about to begin.
   793      * Called to notify the observer that a display refresh is about to begin.
   849      * The observer should prepare its state for the display.
   794      * The observer should prepare its state for the display.
   850      */
   795      */
   906      * This is for updating all the layout that are created to correspond the window server window groups.
   851      * This is for updating all the layout that are created to correspond the window server window groups.
   907      * This should be called immediately when layout switch happens. Layout extents must be update then otherwise
   852      * This should be called immediately when layout switch happens. Layout extents must be update then otherwise
   908      * visibility calculations will clip to old sizes.
   853      * visibility calculations will clip to old sizes.
   909      */
   854      */
   910     void UpdateRootVisualsToFullscreen();
   855     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();
       
   921     
   856     
   922 private:
   857 private:
   923 
   858 
   924     RPointerArray<CAlfScreen> iAlfScreens;
   859     RPointerArray<CAlfScreen> iAlfScreens;
   925     void SetCursorTimerL(TUint aTime = 0, CHuiVisual* aCursor = 0);
   860     void SetCursorTimerL(TUint aTime = 0, CHuiVisual* aCursor = 0);
  1072         TInt32 iClientSideId;
  1007         TInt32 iClientSideId;
  1073         TInt32 iClientSideGroupId;
  1008         TInt32 iClientSideGroupId;
  1074         };
  1009         };
  1075     
  1010     
  1076     RHashMap<TUint32,THashVisualStruct> iWindowHashArray;
  1011     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     
       
  1089     CHuiControl* iOrphanStorage; // owned. holds the visuals which are orphaned from their control group
  1012     CHuiControl* iOrphanStorage; // owned. holds the visuals which are orphaned from their control group
  1090     class TRegisteredEffectsStruct
  1013     class TRegisteredEffectsStruct
  1091         {
  1014         {
  1092     public:
  1015     public:
  1093         TRegisteredEffectsStruct()
  1016         TRegisteredEffectsStruct()