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