diff -r 3d340a0166ff -r 941195f2d488 uifw/ganes/src/HgVgMediaWall.cpp --- a/uifw/ganes/src/HgVgMediaWall.cpp Tue May 11 16:27:42 2010 +0300 +++ b/uifw/ganes/src/HgVgMediaWall.cpp Tue May 25 12:58:19 2010 +0300 @@ -387,7 +387,11 @@ } else { - FillSystemGcWithSkin( ); + // draw with alpha to make a hole to composition layer + SystemGc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); + SystemGc().SetBrushColor(TRgb(0,0,0,0)); + SystemGc().Clear(); + DrawOpenVG(); } } else @@ -396,8 +400,7 @@ SystemGc().SetDrawMode(CGraphicsContext::EDrawModeWriteAlpha); SystemGc().SetBrushColor(TRgb(0,0,0,0)); SystemGc().Clear(); - - DrawOpenVG(); + DrawOpenVG(); } } @@ -484,7 +487,6 @@ { // Not faded and initialized and the drawing is set to be done to WinGc if( aEvent.iType == TPointerEvent::EButton1Down - && !( iFlags & EHgVgMediaWallFaded ) && !( iFlags & EHgVgMediaWallUninitialized ) && iFlags & EHgVgMediaWallDrawToWindowGC ) { @@ -735,6 +737,15 @@ iKeyRepeats = 0; iKeyScrollingState = ENoKeyScrolling; iPointerDown = EFalse; + + // Not faded and initialized and the drawing is set to be done to WinGc + if( !( iFlags & EHgVgMediaWallUninitialized ) + && iFlags & EHgVgMediaWallDrawToWindowGC ) + { + // Draw with OpenVg to our surface. + ClearFlags( EHgVgMediaWallDrawToWindowGC ); + DrawNow(); + } } // ----------------------------------------------------------------------------- @@ -854,12 +865,14 @@ { if( iSelectedIndex != KErrNotFound && iSelectionObserver ) { - TRAP_IGNORE( StartOpeningAnimationL(ETrue ); ) + TRAP_IGNORE( DoStartOpeningAnimationL( ); ) return EKeyWasConsumed; } return EKeyWasNotConsumed; } - default: + default: + TChar key(aKeyEvent.iCode); + SearchItem(key); break; } @@ -1169,13 +1182,13 @@ iAnimationTimer->Cancel(); } - SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallFaded ); + SetFlags( EHgVgMediaWallDrawToWindowGC ); DrawNow(); } if( aType == KEikMessageUnfadeWindows ) { - ClearFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallFaded ); + ClearFlags( EHgVgMediaWallDrawToWindowGC ); DrawNow(); } @@ -2212,6 +2225,10 @@ TInt y = aIndex % iRowCount; StartAnimationToPosition(x, y, ETrue); } + else if (aIndex >= 0 && aIndex < iItems.Count()) + { + StartAnimationToPosition(aIndex, 0, ETrue); + } return ETrue; } @@ -2587,4 +2604,48 @@ } +TBool CHgVgMediaWall::SearchItem( TChar& aFirstLetter ) + { + + TInt searchStartIndex = iSelectedIndex+1; + + // From selected to end + for(TInt i = searchStartIndex; i < iItems.Count(); ++i) + { + if(iItems[i]->Title().Length() > 0 ) + { + TChar compare( iItems[i]->Title()[0] ); + compare.UpperCase(); + aFirstLetter.UpperCase(); + + if(compare - aFirstLetter == 0) + { + iSelectedIndex = i; + StartAnimationToPosition(iSelectedIndex, ETrue); + return ETrue; + } + } + } + + // From beginning to selected - 1 + for(TInt i = 0; i < iSelectedIndex; ++i) + { + if(iItems[i]->Title().Length() > 0 ) + { + TChar compare( iItems[i]->Title()[0] ); + compare.UpperCase(); + aFirstLetter.UpperCase(); + + if(compare - aFirstLetter == 0) + { + iSelectedIndex = i; + StartAnimationToPosition(iSelectedIndex, ETrue); + return ETrue; + } + } + } + + return EFalse; + } + // End of File