windowing/windowserver/nga/SERVER/openwfc/screen.h
changeset 0 5d03bc08d59c
child 97 0e9202c0340c
child 110 7f25ef56562d
child 121 d72fc2aace31
equal deleted inserted replaced
-1:000000000000 0:5d03bc08d59c
       
     1 // Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // Defines the screen class (was in scrdev.h)
       
    15 // 
       
    16 //
       
    17 
       
    18 #ifndef __SCREEN_H__
       
    19 #define __SCREEN_H__
       
    20 
       
    21 #include <e32std.h>
       
    22 #include <e32base.h>
       
    23 #include <graphics/surface.h>
       
    24 #include <hal_data.h>
       
    25 #include <graphics/wsscene.h>
       
    26 #include <graphics/wsdisplaypolicy.h>
       
    27 
       
    28 #include "W32STD.H"
       
    29 #include "w32cmd.h"
       
    30 #include "wstypes.h"
       
    31 #include <Graphics/WSGRAPHICDRAWERINTERFACE.H>
       
    32 #include "panics.h"
       
    33 
       
    34 #include "wsdisplaychangeao.h"
       
    35 
       
    36 
       
    37 class CWsDirectScreenAccess;
       
    38 
       
    39 class CWsWindowGroup;
       
    40 class CWsWindow;
       
    41 class CWsRootWindow;
       
    42 class CWsClientWindow;
       
    43 class CDebugBar;
       
    44 class CScreenRedraw;
       
    45 class CWsSpriteManager;
       
    46 class CWindowElementSet;
       
    47 class CActiveComposer;
       
    48 class CRegisteredSurfaceMap;
       
    49 class MWsScene;
       
    50 class MWsElement;
       
    51 class MWsScreenDevice;
       
    52 class MWsDisplayMapping;
       
    53 class MWsDisplayControl;
       
    54 class MWsTextCursor;
       
    55 class CGraphicsDeviceMap;
       
    56 class TDisplayConfiguration;
       
    57 #if defined(__WINS__) && defined(_DEBUG)
       
    58 class CDebugOsbWin;
       
    59 #endif
       
    60 
       
    61 enum TAnimType
       
    62 	{
       
    63 	EWindowAnim			= 0x01,
       
    64 	ESpriteAnim			= 0x02,
       
    65 	ETextCursor			= 0x04,
       
    66 	EWindowSprite   	= 0x08,
       
    67 	EFloatingSprite 	= 0x10,
       
    68 	EFloatingSpriteAnim = 0x20,
       
    69 	ECrpAnim			= 0x40,
       
    70 	};
       
    71 
       
    72 _LIT(KWSERVIniFileVarChangeTracking, "CHANGETRACKING");
       
    73 
       
    74 class CScreen : public CBase, public MWsScreen, public MWsScreenConfigList, public MWsScreenConfig, public MWsWindowTree
       
    75 	{
       
    76 public:
       
    77 	enum {EGetScanLineBufLen=0x100};	// Buffer of for returning result of GetScanLine
       
    78 	enum TDisplayScreen
       
    79 		{
       
    80 		EBlankScreenOnRotation = 0x1,
       
    81  		EAutoClear = 0x2,
       
    82  		EHasDynamicSizeModes = 0x04,
       
    83 		EChangeTracking = 0x8,
       
    84 		};
       
    85 	
       
    86 	/**
       
    87 	The fallback map is an array of 32 bit integers sufficiently large to store a single bit for any
       
    88 	possible orientation and size of the screen, with the pixel rows padded to the end of the int.
       
    89 	*/
       
    90 	class CFallbackMap : public CBase
       
    91 		{
       
    92 	public:
       
    93 		static CFallbackMap * NewL(CScreen* aScreen);
       
    94 		~CFallbackMap();
       
    95 		
       
    96 		void Prepare();
       
    97 		TBool FillRegion(const TRegion& aRegion);
       
    98 		TBool FillRect(const TRect& aRect);
       
    99 		TInt Count() const;
       
   100 		const TRect * Rect() const;
       
   101 		const RRegion * Region() const;
       
   102 		TInt Resize(const TSize& aSize);
       
   103 
       
   104 	private:	
       
   105 		CFallbackMap(CScreen* aScreen);
       
   106 		void ConstructL();
       
   107 		
       
   108 	public:
       
   109 		CScreen* iScreen;
       
   110 		RRegionBuf<1> iRegion;
       
   111 		TInt iCount;
       
   112 		TInt iMapSize; // size in padded TInts
       
   113 		TInt * iMap;
       
   114 		};
       
   115 public:
       
   116 	CScreen();
       
   117 	~CScreen();
       
   118 	void ConstructL( const TRect& aDigitiserArea, TInt aScreenNumber);
       
   119 	void AbortAllDirectDrawing(RDirectScreenAccess::TTerminationReasons aReason);
       
   120 	void AddDirect(CWsDirectScreenAccess& aDirect);
       
   121 	void RemoveDirect(CWsDirectScreenAccess& aDirect);
       
   122 	void AbortDSAs(RDirectScreenAccess::TTerminationReasons aReason,TSglQue<CWsDirectScreenAccess>& aDirects);
       
   123 	void ReleaseDsaScreenDevice();
       
   124 	void AcquireDsaScreenDeviceL();
       
   125 	void CreateDsaScreenDeviceIfSupportedL(TDisplayMode aScreenMode);
       
   126 	TBool DoCreateDsaScreenDevice(TDisplayMode aScreenMode);
       
   127 #if defined(_DEBUG)
       
   128 	TBool IsDirectOnQueue(const CWsDirectScreenAccess* aDirect);
       
   129 #endif
       
   130 
       
   131 	inline CWsWindowGroup* FocusWindowGroup();
       
   132 	void KillForegroundSession();
       
   133 	void ResetFocus(CWsWindowGroup *aClosingWindow);
       
   134 	inline TBool BlankScreenOnRotation();
       
   135 	inline TBool AutoClear();
       
   136 	void RemoveFromDefaultOwningList(CWsWindowGroup *aDestroyedGroup);
       
   137 	void SetDefaultOwningWindow(CWsWindowGroup *aGroup);
       
   138 	inline CWsWindowGroup *DefaultOwningWindowGroup();
       
   139 	const MWsScreenDevice& ScreenDevice() const;
       
   140 	const CGraphicsDeviceMap& DeviceMap() const;	
       
   141 	inline const TSurfaceId& DsaSurface() const;
       
   142 	inline CWsRootWindow* RootWindow() const;
       
   143 	inline TInt ScreenNumber() const;
       
   144 	void UpdateDsa();
       
   145 	inline TDisplayMode DefaultDisplayMode(const TInt aMode) const;
       
   146 	TDisplayMode FirstDefaultDisplayMode() const;
       
   147 	void MaxNumColors(TInt& aColors,TInt& aGrays);
       
   148 	TInt ColorModesFlag();
       
   149 	inline void GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const;
       
   150 	inline void SetFadingParams(TUint8 aBlackMap,TUint8 aWhiteMap);
       
   151 	void GetScanLine(const TWsSdCmdGetScanLine *aGetScanLine);
       
   152 
       
   153 	TBool SetScreenModeEnforcement(TInt aMode);
       
   154 	inline TInt ScreenSizeMode() const;
       
   155 	void SetPointerCursorArea(TInt aMode,const TRect& aRect);
       
   156 	inline TRect GetPointerCursorArea(TInt aMode) const;
       
   157 	CFbsBitGc::TGraphicsOrientation Orientation() const;
       
   158 	void CycleDisplaySize();
       
   159 	TBool UpdateOrientation(MWsScene::TSceneRotation* aOldRotation = NULL);
       
   160 	void doSetScreenMode(TInt aMode,TBool aInsideStartup=EFalse);
       
   161 	inline TSize CurrentScreenSize() const;
       
   162 	TRect DrawableArea() const;
       
   163 	void CycleOrientation();
       
   164 	TClientPanic SetModeRotation(TInt aMode,CFbsBitGc::TGraphicsOrientation aRotation);
       
   165 	void LoadScreenSizesL(TSize aScreenSize);
       
   166 	void LoadScreenSizeProperties(TDisplayMode aDefaultDisplayMode);
       
   167 	void SetDigitiserAreas(const TSize& aUiSize);
       
   168 	inline TInt NumScreenSizeModes() const;
       
   169 	inline const TSizeMode& ScreenSizeModeData() const;
       
   170 	inline const TSizeMode& ScreenSizeModeData(TInt aMode) const;
       
   171 	inline TScreenModeEnforcement SizeEnforcementMode() const;
       
   172 	void GetScreenSizeAndRotation(TPixelsTwipsAndRotation &aSar, TInt aScreenMode);
       
   173 	void GetScreenSizeAndRotation(TPixelsAndRotation &aSar, TInt aScreenMode);
       
   174 	void SetCurrentScreenModeAttributes(const TSizeMode &aModeData);
       
   175 	TPoint PhysicalToLogical(TPoint aPhysicalPt);
       
   176 	void IncContrast();
       
   177 	void DecContrast();
       
   178 	void IncBrightness();
       
   179 	void DecBrightness();
       
   180 	inline TBool IsValidScreenSizeMode(TInt aMode) const;
       
   181 	TInt GetScreenSizeModeListL();
       
   182 	// called by CWsGc when it is implementing MWsGc
       
   183 	const TTime& Now() const;
       
   184 	void ScheduleAnimation(TAnimType aType, const TRect& aRect,const TTimeIntervalMicroSeconds& aFromNow,const TTimeIntervalMicroSeconds& aFreq,const TTimeIntervalMicroSeconds& aStop, CWsWindow* aWindow);
       
   185 	TBool IsScheduled(TAnimType aType, const TRect& aRect, CWsWindow* aWindow) const;
       
   186 	// redraw scheduling code
       
   187 	void AddRedrawRegion(const TRegion& aRegion, TBool aSchedule = ETrue, TRedrawDepth aDepth = ERedrawAll);
       
   188 	void ScheduleRender(const TTimeIntervalMicroSeconds& aFromNow);
       
   189 	void DoRedrawNow();
       
   190 	void RedrawNowIfPending();
       
   191 	void ScheduleRegionUpdate(const TRegion* aDefinitelyDirty);
       
   192 // implementing MWsScreen
       
   193 	void OnAnimation(TRequestStatus* aFinished);
       
   194 	void Redraw();
       
   195 	TBool RedrawInvalid(const TArray<TGraphicDrawerId>& aInvalid);
       
   196 	inline TBool BackLightFlag();
       
   197 // implementing interface extension
       
   198 	TAny* ResolveObjectInterface(TUint aTypeId);
       
   199 	
       
   200 // implementing MWsScreenConfig... this might be better as RS interface, but half methods are in here!
       
   201 	TSize ScreenModeSizeInPixels() const;
       
   202 	TInt Stride() const;
       
   203 	TInt SizeMode() const;
       
   204 	TSize ScalingFactor() const;
       
   205 	TPoint Origin() const;
       
   206 	TPoint ScaledOrigin() const;
       
   207 	
       
   208 // implementing MWsScreenConfigList
       
   209 	TInt	GetScreenSizeModeList(RArray<TInt>&aList) const;
       
   210 	TDisplayMode DisplayModeL(TInt aIndex) const;
       
   211 	TSize ScreenModeSizeInPixelsL(TInt aIndex) const;
       
   212 	/** Get screen size in twips for current screen size mode as defined in wsini */
       
   213 	TSize ScreenModeSizeInTwipsL(TInt aIndex) const;
       
   214 	CFbsBitGc::TGraphicsOrientation OrientationL(TInt aIndex) const;
       
   215 	TInt AvailableOrientationsL(TInt aIndex) const;
       
   216 	TSize ScalingFactorL(TInt aIndex) const;
       
   217 	TPoint OriginL(TInt aIndex) const;
       
   218 	TPoint ScaledOriginL(TInt aIndex) const;
       
   219 	TInt ModeFlagsL(TInt aIndex) const;
       
   220 
       
   221 //implementing MWsWindowTree
       
   222 	void SendTree() const;
       
   223 	
       
   224 // other public methods
       
   225 
       
   226 	TDisplayMode DisplayMode() const;
       
   227 	TSize SizeInPixels() const;
       
   228 	TSize SizeInTwips() const;
       
   229 	TSize DSASizeInPixels() const;
       
   230 	inline CWindowElementSet& WindowElements() const;
       
   231  	inline MWsElement& UiElement() const;
       
   232 	void ElementAdded();
       
   233 	void ElementRemoved();
       
   234 	//check if the current display mode has alpha
       
   235 	inline TBool HasAlpha() const;
       
   236 	//list of session and surface id
       
   237 	CRegisteredSurfaceMap* SurfaceMap();
       
   238 
       
   239 	void DiscardAllSchedules();
       
   240 	inline CDebugBar * DebugBar();
       
   241 	inline CFallbackMap * FallbackMap();
       
   242 	inline CWsSpriteManager* SpriteManager() const;
       
   243 	TBool IsQuickFadeScheduled( CWsWindow* aWin ) const;
       
   244 	void RemoveFromQuickFadeList( CWsWindow* aWin );
       
   245 	void AcceptFadeRequest( CWsWindow* aWin, TBool	aFadeOn );
       
   246 	TBool HasVisibleDirectOnQueue();
       
   247 	TBool IsDSAClientWindow( const CWsClientWindow* aWin ) const;
       
   248 	MWsTextCursor* RenderStageTextCursor() const;
       
   249 	void ClearDsaSurface(const TRect& area, const TRgb& color);
       
   250 	void PositionUiElements(const TRect& aExtent,	const TRect& aViewport);
       
   251 	TInt SetConfiguration(const TDisplayConfiguration& aConfig);
       
   252 	void UpdateDynamicScreenModes();
       
   253 	void RecalculateModeTwips(const TDisplayConfiguration* aConfig = NULL);
       
   254 	inline void IncreaseDisplaySpinner();
       
   255 	inline void IncreaseConfigSpinner();
       
   256 	inline TInt DisplaySpinner();
       
   257 	inline TInt ConfigSpinner();
       
   258 	TInt AddNotificationClient(CWsClient *aClient);
       
   259 	void RemoveNotificationClient(CWsClient *aClient);
       
   260 	TInt FindNotificationClient (CWsClient *aClient);
       
   261 	TInt GetNotificationClients(RPointerArray<CWsClient>& aClientsArray);
       
   262 	inline MWsDisplayPolicy* DisplayPolicy();
       
   263 	inline MWsDisplayMapping* DisplayMapping();
       
   264 
       
   265 	//CR1577
       
   266 	inline TBool ChangeTracking() const;
       
   267 	inline MWsWindowTreeObserver* WindowTreeObserver() const;
       
   268 	inline MWsDrawAnnotationObserver* DrawAnnotationObserver() const;
       
   269 	inline MWsWindowVisibilityNotifier* WindowVisibilityNotifier() const;
       
   270 	void ScheduleWindow(CWsWindow* aWindow);
       
   271 	void RemoveFromScheduledList(CWsWindow* aWindow);
       
   272 	void RemoveFromTimedDrawList(CWsWindow* aWindow);
       
   273 	void SetupVisibleRegionTracking(CWsWindow& aWindow, TBool aRegister) const;
       
   274 	
       
   275 	TBool IsAnimating() const;
       
   276 	
       
   277 private:
       
   278 	class TInternalSizeMode: public TSizeMode
       
   279 		{
       
   280 	public:
       
   281 		inline TInternalSizeMode(){}
       
   282 		inline TInternalSizeMode(TSize& aSize)
       
   283 			:	TSizeMode(aSize), iFlags(0)
       
   284 			{	}
       
   285 		TInt iFlags;
       
   286 		};
       
   287 	enum TSyncConsts
       
   288 		{
       
   289 		KDSAAbortingImmediateRespAwaitFrameMicrosec = 80000		// 0.08 sec
       
   290 		};
       
   291 	void SetInitialScreenSizeModeAndRotation();
       
   292 	CWsWindowGroup* FindNewFocus(CWsRootWindow* aRootWindow);
       
   293 	void UpdateCompositionMode();
       
   294 	void InitializeSceneL();
       
   295 	void InitializeUiElementsL();
       
   296 	TInt InitializeDsaSurface();
       
   297 	void LoadScreenRotationProperties(TInternalSizeMode& aMode, const TInt aModeIndex);
       
   298 	void LoadScreenTwipsProperties(TInternalSizeMode& aMode, const TInt aModeIndex);
       
   299 	void CreateFallbackMapL();
       
   300 	MWsElement* CreateUiElementL(const TRect& aExtent);
       
   301 	const TInternalSizeMode* ModePtrL(TInt aIndex) const;
       
   302 	void ApplyRemainingWsiniSettingsL();
       
   303 private:
       
   304 	enum
       
   305 		{
       
   306 		eTimerCreated=0x1,
       
   307 		};
       
   308 	enum TDsaDrawState
       
   309 		{
       
   310 		EDsaDrawStateIdle,
       
   311 		EDsaDrawStateDrawing
       
   312 		};
       
   313 private:
       
   314 	TSglQue<CWsDirectScreenAccess> iDirects;
       
   315 	RTimer iTimer;
       
   316 	TRequestStatus iTimerStatus;
       
   317 	TUint iFlags;
       
   318 
       
   319 	CScreenRedraw* iRedraw;
       
   320 
       
   321 	CWsRootWindow* iRootWindow;
       
   322 	CWsWindowGroup *iCurrentFocus;
       
   323 	CWsWindowGroup *iDefaultOwningWindow;
       
   324 
       
   325 	MWsScreenDevice* iScreenDevice;
       
   326 	CFbsScreenDevice* iDsaDevice;
       
   327 	CFbsBitGc* iDsaGc;
       
   328 	CGraphicsDeviceMap* iDeviceMap;
       
   329 // Size and rotation members
       
   330 	RPointerArray<TInternalSizeMode> *iModes;
       
   331 	TInt iScreenSizeMode;
       
   332 	TScreenModeEnforcement iSizeEnforcementMode;
       
   333 	TInt iScreenNumber;
       
   334 	TInt iMaxContrast;
       
   335 	TInt iMaxBrightness;
       
   336 	TInt iNumScreenSizeModes;
       
   337 	TInt iNumSupportedScreenSizeModes;
       
   338 	TInt iNumberDrawingDsa;
       
   339 	TBool iBackLightFlag;
       
   340 	
       
   341 	TDsaDrawState iDsaDrawState;
       
   342 	
       
   343 	MWsDisplayMapping* iDisplayMapping;
       
   344 	MWsDisplayControl* iDisplayControl;
       
   345 	MWsDisplayPolicy* iDisplayPolicy;
       
   346 	MWsScene* iScene;
       
   347 	CWindowElementSet* iWindowElementSet;
       
   348 	MWsElement* iUiElement;
       
   349 	TSurfaceId iDsaSurface;
       
   350 	CRegisteredSurfaceMap* iSurfaceMap;
       
   351 
       
   352 	CDebugBar* iDebugBar;
       
   353 	CFallbackMap* iFallbackMap;
       
   354 	TUint8 iBlackMap;
       
   355 	TUint8 iWhiteMap;
       
   356 	CWsSpriteManager* iSpriteManager;
       
   357 	//The next three interfaces should be provided by renderstages if the screen is to be used in CHANGETRACKING mode
       
   358 	MWsWindowTreeObserver* iWindowTreeObserver;
       
   359 	MWsDrawAnnotationObserver* iDrawAnnotationObserver;
       
   360 	MWsWindowVisibilityNotifier* iWindowVisibilityNotifier;
       
   361 
       
   362 #if defined(__WINS__) && defined(_DEBUG)
       
   363 	CDebugOsbWin* iDebugWin;
       
   364 #endif
       
   365 	CWsDisplayChangeNotifier* iDisplayChangeNotifier;
       
   366 	CWsConfigChangeNotifier* iConfigChangeNotifier;
       
   367 	TInt iDisplayChangeSpinner;
       
   368 	TInt iConfigChangeSpinner;
       
   369 	RPointerArray<CWsClient> iWsClientList; 
       
   370 	TRect iDigitiserArea;
       
   371 	};
       
   372 
       
   373 
       
   374 
       
   375 //
       
   376 // inlines			//
       
   377 //
       
   378 
       
   379 //
       
   380 // CScreen
       
   381 //
       
   382 
       
   383 inline CWsWindowGroup* CScreen::FocusWindowGroup()
       
   384 	{return(iCurrentFocus);}
       
   385 inline TBool CScreen::BlankScreenOnRotation()
       
   386 	{return(iFlags&EBlankScreenOnRotation);}
       
   387 inline TBool CScreen::AutoClear()
       
   388 	{return(iFlags&EAutoClear);}
       
   389 inline CWsWindowGroup* CScreen::DefaultOwningWindowGroup()
       
   390 	{return(iDefaultOwningWindow);}
       
   391 inline const TSurfaceId& CScreen::DsaSurface() const
       
   392 	{return iDsaSurface;}
       
   393 
       
   394 inline CWsRootWindow* CScreen::RootWindow() const
       
   395 	{return iRootWindow;}
       
   396 inline TInt CScreen::ScreenNumber() const
       
   397 	{return iScreenNumber;}
       
   398 //
       
   399 inline TInt CScreen::ScreenSizeMode() const
       
   400 	{return(iScreenSizeMode);}
       
   401 inline TRect CScreen::GetPointerCursorArea(TInt aMode) const
       
   402 	{return (*iModes)[aMode]->iPointerCursorArea;}
       
   403 inline TSize CScreen::CurrentScreenSize() const
       
   404 	{return (*iModes)[iScreenSizeMode]->iScreenSize;}
       
   405 inline TInt CScreen::NumScreenSizeModes() const
       
   406 	{return iNumScreenSizeModes;}
       
   407 inline const TSizeMode& CScreen::ScreenSizeModeData() const
       
   408 	{return *(*iModes)[iScreenSizeMode];}
       
   409 inline const TSizeMode& CScreen::ScreenSizeModeData(TInt aMode) const
       
   410 	{return *(*iModes)[aMode];}
       
   411 inline TDisplayMode CScreen::DefaultDisplayMode(const TInt aMode) const
       
   412 	{return (*iModes)[aMode]->iDefaultDisplayMode;}
       
   413 inline TScreenModeEnforcement CScreen::SizeEnforcementMode() const
       
   414 	{return iSizeEnforcementMode;}
       
   415 inline TBool CScreen::IsValidScreenSizeMode(TInt aMode) const
       
   416 	{return (aMode>=0 && aMode<iModes->Count() && (*iModes)[aMode]!=NULL);}
       
   417 inline TBool CScreen::BackLightFlag()
       
   418 	{return iBackLightFlag;}
       
   419 
       
   420 inline TBool CScreen::HasAlpha() const
       
   421 	{return (0x3 & (0x1 << (EColor16MAP - DisplayMode())));} //currently it is just EColor16MA Or EColor16MAP
       
   422 
       
   423 inline CWindowElementSet& CScreen::WindowElements() const
       
   424 	{
       
   425 	return *iWindowElementSet;
       
   426 	}
       
   427 
       
   428 inline MWsElement& CScreen::UiElement() const
       
   429     {
       
   430     return *iUiElement;
       
   431     }
       
   432 
       
   433 inline CDebugBar * CScreen::DebugBar()
       
   434 	{return iDebugBar;}
       
   435 inline CScreen::CFallbackMap * CScreen::FallbackMap()
       
   436 	{return iFallbackMap;}
       
   437 	
       
   438 inline void CScreen::GetFadingParams(TUint8& aBlackMap,TUint8& aWhiteMap) const
       
   439     {aBlackMap=iBlackMap;aWhiteMap=iWhiteMap;}
       
   440 inline void CScreen::SetFadingParams(TUint8 aBlackMap,TUint8 aWhiteMap)
       
   441 	{iBlackMap=aBlackMap;iWhiteMap=aWhiteMap;}
       
   442 inline CWsSpriteManager* CScreen::SpriteManager() const
       
   443 	{return iSpriteManager;}
       
   444 inline MWsWindowTreeObserver* CScreen::WindowTreeObserver() const
       
   445 	{return iWindowTreeObserver;}
       
   446 inline MWsDrawAnnotationObserver* CScreen::DrawAnnotationObserver() const
       
   447 	{return iDrawAnnotationObserver;}
       
   448 inline MWsWindowVisibilityNotifier* CScreen::WindowVisibilityNotifier() const
       
   449 	{return iWindowVisibilityNotifier;}
       
   450 inline TBool CScreen::ChangeTracking() const
       
   451 	{return iFlags&EChangeTracking;}
       
   452 inline void CScreen::IncreaseDisplaySpinner()
       
   453 	{iDisplayChangeSpinner++;}
       
   454 inline void CScreen::IncreaseConfigSpinner()
       
   455 	{iConfigChangeSpinner++;}
       
   456 inline TInt CScreen::DisplaySpinner()
       
   457 	{return iDisplayChangeSpinner;}
       
   458 inline TInt CScreen::ConfigSpinner()
       
   459 	{return iConfigChangeSpinner;}
       
   460 inline MWsDisplayPolicy* CScreen::DisplayPolicy()
       
   461 	{return iDisplayPolicy;}
       
   462 inline MWsDisplayMapping* CScreen::DisplayMapping()
       
   463 	{return iDisplayMapping;}
       
   464 #endif
       
   465