idlehomescreen/xmluirendering/uiengine/src/xnviewdata.cpp
branchRCL_3
changeset 93 b01126ce0bec
parent 88 3321d3e205b6
child 102 ba63c83f4716
equal deleted inserted replaced
88:3321d3e205b6 93:b01126ce0bec
   622     CXnPluginData::DestroyPublishers( aReason );
   622     CXnPluginData::DestroyPublishers( aReason );
   623     
   623     
   624     __PRINTS( "*** CXnViewData::DestroyPublishers - done" );
   624     __PRINTS( "*** CXnViewData::DestroyPublishers - done" );
   625     }
   625     }
   626 
   626 
       
   627 // -----------------------------------------------------------------------------
       
   628 // -----------------------------------------------------------------------------
       
   629 //
       
   630 TXnDirtyRegion* CXnViewData::DirtyRegionL( CXnNode& aNode )
       
   631     {
       
   632     // First make sure that the given node is "window owning"
       
   633     CCoeControl* control( aNode.Control() );  
       
   634     if( !control || !control->OwnsWindow() )
       
   635         {
       
   636         return NULL;
       
   637         }
       
   638 
       
   639     if( iDirtyRegion && iDirtyRegion->iControl == control )
       
   640         {
       
   641         return iDirtyRegion;
       
   642         }
       
   643 
       
   644     // in case of widget extension / popup, a widget may own window
       
   645     for( TInt i = 0; i < iPluginsData.Count(); i++ )
       
   646         {
       
   647         TXnDirtyRegion* region( iPluginsData[i]->DirtyRegion() );
       
   648         if( region && region->iControl == control )
       
   649             {
       
   650             return region;
       
   651             }
       
   652         }
       
   653 
       
   654     // Region not found, create  a new one
       
   655     CXnPluginData* pluginData( Plugin( &aNode ) );
       
   656     if( pluginData )
       
   657         {
       
   658         return pluginData->CreateDirtyRegionL( aNode, *control );
       
   659         }    
       
   660 
       
   661     return NULL;
       
   662     }
       
   663 
       
   664 // -----------------------------------------------------------------------------
       
   665 // -----------------------------------------------------------------------------
       
   666 //
       
   667 void CXnViewData::GetDirtyRegions( RPointerArray<TXnDirtyRegion>& aList )
       
   668     {
       
   669     if( iDirtyRegion )
       
   670         {
       
   671         aList.Append( iDirtyRegion );
       
   672         }
       
   673     for( TInt i = 0; i < iPluginsData.Count(); i++ )
       
   674         {
       
   675         TXnDirtyRegion* region( iPluginsData[i]->DirtyRegion() );
       
   676         if( region )
       
   677             {
       
   678             aList.Append( region );
       
   679             }
       
   680         }
       
   681     }
       
   682 
   627 // End of file
   683 // End of file