diff -r f9bb0fca356a -r 0fd27995241b javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtuiutils.cpp --- a/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtuiutils.cpp Fri Apr 30 10:40:48 2010 +0300 +++ b/javauis/eswt_akn/org.eclipse.ercp.swt.s60/native/src/swtuiutils.cpp Tue May 11 16:07:20 2010 +0300 @@ -35,6 +35,7 @@ #include "swtdisplaybase.h" _LIT(KSeparator, "-"); +const TInt KVariationFullScreen = 3; // ======== MEMBER FUNCTIONS ======== @@ -676,15 +677,15 @@ &appUi, NULL, CEikButtonGroupContainer::EAddToStack); - + // The Cba will be made visible by the firtst top shell to show // or by the first child Shell with commands to show. iCba->MakeVisible(EFalse); - + #ifdef RD_JAVA_S60_RELEASE_9_2 static_cast(iCba->ButtonGroup())->EnableItemSpecificSoftkey(EFalse); #endif - + const TSize screenSize = iDisplay.CoeEnv()->ScreenDevice()->SizeInPixels(); iCba->SetBoundingRect(TRect(screenSize)); @@ -744,7 +745,7 @@ // Bring back on screen and activate the new Shell. MoveToEndOfQueue(*iActiveShell); - + TRAP_IGNORE(UpdateStatusPaneL()); iActiveShell->Control()->ShowSilently(); @@ -753,7 +754,7 @@ // Remember the new top most Shell for Shell activability changes. iLastTopMostShell = TopMostTopShell(); - + SetShellFade(iActiveShell, ETrue); } @@ -865,7 +866,7 @@ { if (!iStatusPane) return; - + HideIndicator(EEikStatusPaneUidSignal); HideIndicator(EEikStatusPaneUidBattery); HideIndicator(EEikStatusPaneUidIndic); @@ -1134,7 +1135,7 @@ // CSwtUiUtils::UpdateStatusPaneL // From MSwtUiUtils // Calls to this should be kept to a severe minimum! This function is not anymore -// responsible of resizing the topmost shells since Shell's bounds should not +// responsible of resizing the topmost shells since Shell's bounds should not // depend on the current status pane height(See CSwtShell::DefaultBounds()). // --------------------------------------------------------------------------- // @@ -1273,22 +1274,22 @@ iStatusPane->SwitchLayoutL(R_AVKON_STATUS_PANE_LAYOUT_SMALL_WITH_SIGNAL_PANE); } iStatusPane->MakeVisible(ETrue); - + java::ui::CoreUiAvkonAppUi* appUi = java::ui::CoreUiAvkonEswt::getInstance().getJavaUiAppUi(); if (appUi && appUi->hidesIndicators()) { HideIndicators(); } - + // The above relies on DrawDeferred which is too slow for some cases. - // For instance, the pane must draw immediately when the app draws the + // For instance, the pane must draw immediately when the app draws the // first time otherwise the startup screenshot will miss the pane. iStatusPane->DrawNow(); } - + // This will cause HandleStatusPaneSizeChange notifications again iStatusPane->SetObserver(this); - + // Shells are trusted to have the correct size already. } @@ -1305,9 +1306,9 @@ { return; } - + ASSERT(!iActiveShell); - + // Update flag iFocusLost = EFalse; TBool getFocused(EFalse); @@ -1316,7 +1317,7 @@ getFocused = iNextFocusedControl->SetSwtFocus(KSwtFocusByForce); iNextFocusedControl = NULL; } - + if (getFocused) { // do nothing @@ -1524,7 +1525,7 @@ iInlineFont = NULL; iInlineFontHeight = -1; iInlinePadding.iTop = -1; - + // Sometimes CBA bounds are incorrect at this point in the case we have // a dialog shell active. As a result Shell gets wrong size. // Set the bounds here to make sure they are always correct. @@ -1613,6 +1614,11 @@ return; } iCba->MakeVisible(aVisible); + +#ifdef RD_JAVA_S60_RELEASE_9_2 + // To enable clock pane in landscape after MIDlet was started + iCba->SetBoundingRect(TRect(0, 0, 0, 0)); +#endif // RD_JAVA_S60_RELEASE_9_2 } // --------------------------------------------------------------------------- @@ -1654,6 +1660,26 @@ // From MSwtUiUtils // --------------------------------------------------------------------------- // +TRect CSwtUiUtils::TaskTipRect() const +{ + TRect screenRect; + AknLayoutUtils::LayoutMetricsRect(AknLayoutUtils::EScreen, screenRect); + TAknLayoutRect layoutMainPane = CSwtLafFacade::GetLayoutRect( + CSwtLafFacade::EMainEswtPane, + screenRect, + KVariationFullScreen); + TRect mainPaneRect = layoutMainPane.Rect(); + TAknLayoutRect layoutShell = CSwtLafFacade::GetLayoutRect( + CSwtLafFacade::EPopupEswtTasktipWindow, + mainPaneRect); + return layoutShell.Rect(); +} + +// --------------------------------------------------------------------------- +// CSwtUiUtils::HandleFreeRamEventL +// From MSwtUiUtils +// --------------------------------------------------------------------------- +// void CSwtUiUtils::HandleFreeRamEventL(TInt aEventType) { const TInt count = iShells.Count();