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); } }
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); }