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