void CWsSpriteBase::NotifyExtentChanged() const { if (Screen()) { MWsWindowTreeObserver* windowTreeObserver = Screen()->WindowTreeObserver(); if (windowTreeObserver && iFlags&ESpriteActive) { windowTreeObserver->NodeExtentChanged(*this, Rect()); } } }
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 CWsRootWindow::SetSystemFaded(TBool aFaded, TUint8 aBlackMap, TUint8 aWhiteMap) { WS_ASSERT_DEBUG(Screen(),EWsPanicNoScreen); TBool stateChanged = EFalse; //will be set to true if one or more windows change fade state. for(CWsWindowGroup* win=Child();win!=NULL;win=win->NextSibling()) { TWalkWindowTreeSetSystemFaded wwt(aFaded, win, aBlackMap, aWhiteMap, stateChanged); win->WalkWindowTree(wwt,EWalkChildren); } MWsWindowTreeObserver* windowTreeObserver = Screen()->WindowTreeObserver(); if(windowTreeObserver && stateChanged) { windowTreeObserver->FadeAllChildren(*this, aFaded); } }
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); }
void CWsRootWindow::SendState(MWsWindowTreeObserver& aWindowTreeObserver) const { aWindowTreeObserver.NodeCreated(*this, NULL); }