예제 #1
0
void CWsSpriteBase::SendState(MWsWindowTreeObserver& aWindowTreeObserver) const
	{
	if(iNext)
		iNext->SendState(aWindowTreeObserver);
	
	if(IsActivated())
		{
		//Sprite NodeCreated must only be sent if activated
		aWindowTreeObserver.NodeCreated(*this, ParentNode());
		aWindowTreeObserver.NodeExtentChanged(*this, Rect());
		aWindowTreeObserver.NodeActivated(*this);
		}
	}
예제 #2
0
void CWsWindow::SendState(MWsWindowTreeObserver& aWindowTreeObserver) const
	{
	aWindowTreeObserver.NodeCreated(*this, ParentNode());
	
	if(iFlags & EFlagActive)
		{
		aWindowTreeObserver.NodeExtentChanged(*this, FullRect());
		aWindowTreeObserver.NodeActivated(*this);
		}
	
	if(!IsVisible())
		{
		aWindowTreeObserver.FlagChanged(*this, MWsWindowTreeObserver::EVisible, EFalse);
		}
	
	if(IsTrackingVisibleRegion())
		{
		MWsWindowVisibilityNotifier* windowVisibilityNotifier = Screen()->WindowVisibilityNotifier();
		if(windowVisibilityNotifier)
			windowVisibilityNotifier->RegisterWindow(*this);
		}

	if(HasAlpha())
		{
		aWindowTreeObserver.FlagChanged(*this, MWsWindowTreeObserver::EAlphaChannelTransparencyEnabled, ETrue);
		}
	
	if(IsNonFading())
		{
		aWindowTreeObserver.FlagChanged(*this, MWsWindowTreeObserver::ENonFading, ETrue); 
		}
	
	if(IsTopClientWindow() && (iFlags&EFlagScreenDeviceInvalid) )
		{
		aWindowTreeObserver.FlagChanged(*this, MWsWindowTreeObserver::EScreenDeviceValid, EFalse);
		}
	
	if(iAnimList)
		iAnimList->SendState(aWindowTreeObserver);
	
	CWsWindowBase::SendState(aWindowTreeObserver);
	}
예제 #3
0
void CWsRootWindow::SendState(MWsWindowTreeObserver& aWindowTreeObserver) const
	{
	aWindowTreeObserver.NodeCreated(*this, NULL);
	}