idlehomescreen/xmluirendering/uiengine/src/xneditmode.cpp
branchRCL_3
changeset 20 899e4666ea9a
parent 18 d05a55b217df
child 23 7be2816dbabd
equal deleted inserted replaced
16:1526727a5b85 20:899e4666ea9a
   333 // CXnEditMode::MakeVisible
   333 // CXnEditMode::MakeVisible
   334 // 
   334 // 
   335 // -----------------------------------------------------------------------------
   335 // -----------------------------------------------------------------------------
   336 //
   336 //
   337 void CXnEditMode::MakeVisible( TBool aVisible )
   337 void CXnEditMode::MakeVisible( TBool aVisible )
   338     {        
   338     {                
       
   339     CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
       
   340     CXnViewControlAdapter* control = 
       
   341         static_cast< CXnViewControlAdapter* >(
       
   342             appui.ViewManager().ActiveViewData().ViewNode()->Control() );
       
   343     RWindow& window( Window() );
       
   344     
   339     TBool visible( IsVisible() ? ETrue : EFalse );
   345     TBool visible( IsVisible() ? ETrue : EFalse );
   340     
       
   341     if ( aVisible == visible )
   346     if ( aVisible == visible )
   342         {
   347         {
   343         return;
   348         if( aVisible )
       
   349             {
       
   350             // If a new Homescreen page has been added in Edit mode, bring the control back to the front       
       
   351             control->DrawableWindow()->SetPointerGrab( EFalse );
       
   352         
       
   353         	window.SetOrdinalPosition( 0 );
       
   354     	    window.SetPointerGrab( ETrue );
       
   355 	        window.ClaimPointerGrab();   
       
   356             }
       
   357     
       
   358         return;    
   344         }
   359         }
   345         
   360         
   346     CCoeControl::MakeVisible( aVisible );
   361     CCoeControl::MakeVisible( aVisible );
   347 
       
   348     CXnAppUiAdapter& appui( iUiEngine.AppUiAdapter() );
       
   349     
   362     
   350     // Remove focus
   363     // Remove focus
   351     appui.HideFocus();
   364     appui.HideFocus();
   352     
   365                     
   353     CXnViewControlAdapter* control = static_cast< CXnViewControlAdapter* >(
       
   354         appui.ViewManager().ActiveViewData().ViewNode()->Control() );
       
   355             
       
   356     if ( aVisible )
   366     if ( aVisible )
   357         {
   367         {
   358         control->DrawableWindow()->SetPointerGrab( EFalse );
   368         control->DrawableWindow()->SetPointerGrab( EFalse );
   359         
   369         
   360         Window().SetOrdinalPosition( 0 );
   370         window.SetOrdinalPosition( 0 );
   361         Window().SetPointerGrab( ETrue );
   371         window.SetPointerGrab( ETrue );
   362         Window().ClaimPointerGrab();      
   372         window.ClaimPointerGrab();      
   363         
   373         
   364         TRAP_IGNORE( appui.HandleEnterEditModeL( ETrue ) );                                
   374         TRAP_IGNORE( appui.HandleEnterEditModeL( ETrue ) );                                
   365         }
   375         }
   366     else
   376     else
   367         {
   377         {
   368         Window().SetPointerGrab( EFalse );
   378         window.SetPointerGrab( EFalse );
   369         
   379         
   370         control->DrawableWindow()->SetPointerGrab( ETrue );               
   380         control->DrawableWindow()->SetPointerGrab( ETrue );               
   371         
   381         
   372         TRAP_IGNORE( appui.HandleEnterEditModeL( EFalse ) );                                                
   382         TRAP_IGNORE( appui.HandleEnterEditModeL( EFalse ) );               
   373         }
   383         }
   374     
   384     
   375     // Update background
   385     // Update background
   376     appui.ViewAdapter().BgManager().UpdateScreen();
   386     appui.ViewAdapter().BgManager().UpdateScreen();
   377     }
   387     }
   644     if ( IsVisible() && aType == EEventKey )
   654     if ( IsVisible() && aType == EEventKey )
   645         {
   655         {
   646         CXnNode* focused( iUiEngine.FocusedNode() );
   656         CXnNode* focused( iUiEngine.FocusedNode() );
   647         
   657         
   648         if ( focused && ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
   658         if ( focused && ( aKeyEvent.iScanCode == EStdKeyDevice3 ||
   649             aKeyEvent.iScanCode == EStdKeyEnter ) )
   659             aKeyEvent.iCode == EKeyEnter ) )
   650             {
   660             {
   651             CXnPluginData* plugin( iUiEngine.ViewManager()->
   661             CXnPluginData* plugin( iUiEngine.ViewManager()->
   652                     ActiveViewData().Plugin( focused ) );
   662                     ActiveViewData().Plugin( focused ) );
   653             
   663             
   654             if ( plugin && plugin->Occupied() )
   664             if ( plugin && plugin->Occupied() )
   668                         XnComponentInterface::MakeInterfaceL( 
   678                         XnComponentInterface::MakeInterfaceL( 
   669                             menuIf, menubar->AppIfL() );
   679                             menuIf, menubar->AppIfL() );
   670                         
   680                         
   671                         if ( menuIf )
   681                         if ( menuIf )
   672                             {
   682                             {
   673                             menuIf->TryDisplayingMenuBarL( *id );
   683                             menuIf->TryDisplayingMenuBarL( *id, ETrue );
   674                             iUiEngine.Editor()->SetTargetPlugin( focused );
   684                             iUiEngine.Editor()->SetTargetPlugin( focused );
   675                             }                        
   685                             }                        
   676                         }
   686                         }
   677                     
   687                     
   678                     CleanupStack::PopAndDestroy( id );
   688                     CleanupStack::PopAndDestroy( id );
   829     // Exit from edit mode
   839     // Exit from edit mode
   830     else if ( aState == CXnEditMode::ENone )
   840     else if ( aState == CXnEditMode::ENone )
   831         {                
   841         {                
   832         iDraggingNode = NULL;
   842         iDraggingNode = NULL;
   833         iTargetNode = NULL;
   843         iTargetNode = NULL;
       
   844                 
       
   845         iUiEngine.Editor()->SetTargetPlugin( NULL );
   834         
   846         
   835         iState = aState;
   847         iState = aState;
   836                 
   848                 
   837         MakeVisible( EFalse );
   849         MakeVisible( EFalse );
   838         }   
   850         }