64 |
64 |
65 |
65 |
66 using namespace AknTouchGestureFw; |
66 using namespace AknTouchGestureFw; |
67 using namespace HgVgConstants; |
67 using namespace HgVgConstants; |
68 |
68 |
69 |
69 #ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION |
|
70 #define MEDIAWALL_ORIENTATION_FIX |
|
71 #endif |
70 |
72 |
71 // ============================ MEMBER FUNCTIONS =============================== |
73 // ============================ MEMBER FUNCTIONS =============================== |
72 // ----------------------------------------------------------------------------- |
74 // ----------------------------------------------------------------------------- |
73 // CHgMediaWall::NewL() |
75 // CHgMediaWall::NewL() |
74 // Two-phased constructor. |
76 // Two-phased constructor. |
487 // ----------------------------------------------------------------------------- |
489 // ----------------------------------------------------------------------------- |
488 // |
490 // |
489 void CHgVgMediaWall::HandlePointerEventL( const TPointerEvent& aEvent ) |
491 void CHgVgMediaWall::HandlePointerEventL( const TPointerEvent& aEvent ) |
490 { |
492 { |
491 // Not faded and initialized and the drawing is set to be done to WinGc |
493 // Not faded and initialized and the drawing is set to be done to WinGc |
492 if( !( iFlags & EHgVgMediaWallFaded ) |
494 if( aEvent.iType == TPointerEvent::EButton1Down |
|
495 && !( iFlags & EHgVgMediaWallFaded ) |
493 && !( iFlags & EHgVgMediaWallUninitialized ) |
496 && !( iFlags & EHgVgMediaWallUninitialized ) |
494 && iFlags & EHgVgMediaWallDrawToWindowGC ) |
497 && iFlags & EHgVgMediaWallDrawToWindowGC ) |
495 { |
498 { |
496 // Draw with OpenVg to our surface. |
499 // Draw with OpenVg to our surface. |
497 ClearFlags( EHgVgMediaWallDrawToWindowGC ); |
500 ClearFlags( EHgVgMediaWallDrawToWindowGC ); |
1286 return; |
1289 return; |
1287 } |
1290 } |
1288 |
1291 |
1289 CHgVgMediaWall* self = const_cast<CHgVgMediaWall*>(this); |
1292 CHgVgMediaWall* self = const_cast<CHgVgMediaWall*>(this); |
1290 |
1293 |
1291 if (!self->DrawAll()) |
1294 if (self && !self->DrawAll()) |
1292 return; |
1295 return; |
1293 |
1296 |
1294 iEGL->SwapBuffers(); |
1297 if( iEGL ) |
|
1298 iEGL->SwapBuffers(); |
1295 |
1299 |
1296 } |
1300 } |
1297 |
1301 |
1298 // --------------------------------------------------------------------------- |
1302 // --------------------------------------------------------------------------- |
1299 // CHgVgMediaWall::DoAnimation() |
1303 // CHgVgMediaWall::DoAnimation() |
1300 // --------------------------------------------------------------------------- |
1304 // --------------------------------------------------------------------------- |
1301 // |
1305 // |
1302 void CHgVgMediaWall::DoAnimation() |
1306 void CHgVgMediaWall::DoAnimation() |
1303 { |
1307 { |
|
1308 TBool draw = ETrue; |
1304 switch (iAnimationState) |
1309 switch (iAnimationState) |
1305 { |
1310 { |
1306 case EHgVgMediaWallAnimationStateTransition: |
1311 case EHgVgMediaWallAnimationStateTransition: |
1307 case EHgVgMediaWallAnimationStateFastTransition: |
1312 case EHgVgMediaWallAnimationStateFastTransition: |
1308 { |
1313 { |
1309 DoTransitionAnimation(); |
1314 draw = DoTransitionAnimation(); |
1310 } break; |
1315 } break; |
1311 case EHgVgMediaWallAnimationStateOpening: |
1316 case EHgVgMediaWallAnimationStateOpening: |
1312 case EHgVgMediaWallAnimationStateClosing: |
1317 case EHgVgMediaWallAnimationStateClosing: |
1313 case EHgVgMediaWallAnimationStateIdle: |
1318 case EHgVgMediaWallAnimationStateIdle: |
1314 case EHgVgMediaWallAnimationStateItemOpened: |
1319 case EHgVgMediaWallAnimationStateItemOpened: |
1315 { |
1320 { |
1316 DoSelectionAnimation(); |
1321 draw = DoSelectionAnimation(); |
1317 } break; |
1322 } break; |
1318 } |
1323 } |
1319 |
1324 |
1320 DrawOpenVG(); |
1325 if(draw) |
|
1326 DrawOpenVG(); |
1321 } |
1327 } |
1322 |
1328 |
1323 // --------------------------------------------------------------------------- |
1329 // --------------------------------------------------------------------------- |
1324 // CHgVgMediaWall::DoSelectionAnimation() |
1330 // CHgVgMediaWall::DoSelectionAnimation() |
1325 // --------------------------------------------------------------------------- |
1331 // --------------------------------------------------------------------------- |
1326 // |
1332 // |
1327 void CHgVgMediaWall::DoSelectionAnimation() |
1333 TBool CHgVgMediaWall::DoSelectionAnimation() |
1328 { |
1334 { |
1329 TTime now; |
1335 TTime now; |
1330 now.HomeTime(); |
1336 now.HomeTime(); |
1331 TInt diff = now.MicroSecondsFrom(iAnimationStartTime).Int64(); |
1337 TInt diff = now.MicroSecondsFrom(iAnimationStartTime).Int64(); |
1332 |
1338 |
1334 if (diff > KSelectionAnimationDuration) |
1340 if (diff > KSelectionAnimationDuration) |
1335 diff = KSelectionAnimationDuration; |
1341 diff = KSelectionAnimationDuration; |
1336 |
1342 |
1337 // calculate animation alpha |
1343 // calculate animation alpha |
1338 TReal alpha = (TReal)diff / (TReal)KSelectionAnimationDuration; |
1344 TReal alpha = (TReal)diff / (TReal)KSelectionAnimationDuration; |
|
1345 TBool draw = ETrue; |
1339 |
1346 |
1340 switch (iAnimationState) |
1347 switch (iAnimationState) |
1341 { |
1348 { |
1342 case EHgVgMediaWallAnimationStateClosing: |
1349 case EHgVgMediaWallAnimationStateClosing: |
1343 { |
1350 { |
1352 iAnimationState = EHgVgMediaWallAnimationStateItemOpened; |
1359 iAnimationState = EHgVgMediaWallAnimationStateItemOpened; |
1353 } break; |
1360 } break; |
1354 case EHgVgMediaWallAnimationStateItemOpened: |
1361 case EHgVgMediaWallAnimationStateItemOpened: |
1355 { |
1362 { |
1356 iAnimationTimer->Cancel(); |
1363 iAnimationTimer->Cancel(); |
|
1364 draw = EFalse; |
1357 if (iSelectionObserver) |
1365 if (iSelectionObserver) |
1358 { |
1366 { |
1359 if (iMediaWallStyle == EHgVgMediaWallStyleGrid) |
1367 if (iMediaWallStyle == EHgVgMediaWallStyleGrid) |
1360 { |
1368 { |
1361 TRAP_IGNORE( iSelectionObserver->HandleOpenL(iPickedGridItem, this); ) |
1369 TRAP_IGNORE( iSelectionObserver->HandleOpenL(iPickedGridItem, this); ) |
1368 } break; |
1376 } break; |
1369 case EHgVgMediaWallAnimationStateIdle: |
1377 case EHgVgMediaWallAnimationStateIdle: |
1370 { |
1378 { |
1371 iAnimationTimer->Cancel(); |
1379 iAnimationTimer->Cancel(); |
1372 } break; |
1380 } break; |
1373 } |
1381 } |
|
1382 |
|
1383 return draw; |
1374 } |
1384 } |
1375 |
1385 |
1376 |
1386 |
1377 // --------------------------------------------------------------------------- |
1387 // --------------------------------------------------------------------------- |
1378 // CHgVgMediaWall::DoTransitionAnimation() |
1388 // CHgVgMediaWall::DoTransitionAnimation() |
1379 // --------------------------------------------------------------------------- |
1389 // --------------------------------------------------------------------------- |
1380 // |
1390 // |
1381 void CHgVgMediaWall::DoTransitionAnimation() |
1391 TBool CHgVgMediaWall::DoTransitionAnimation() |
1382 { |
1392 { |
1383 TTime now; |
1393 TTime now; |
1384 now.HomeTime(); |
1394 now.HomeTime(); |
1385 TReal deltaTime = (TReal)now.MicroSecondsFrom(iPrevTime).Int64() / (TReal)KOneSecondInMicroSeconds; |
1395 TReal deltaTime = (TReal)now.MicroSecondsFrom(iPrevTime).Int64() / (TReal)KOneSecondInMicroSeconds; |
1386 iPrevTime = now; |
1396 iPrevTime = now; |
1597 { |
1608 { |
1598 if (aRecreateSurface) |
1609 if (aRecreateSurface) |
1599 iEGL->InitWindowSurfaceL(Window()); |
1610 iEGL->InitWindowSurfaceL(Window()); |
1600 } |
1611 } |
1601 |
1612 |
|
1613 if(!iCompositionSource) |
|
1614 { |
|
1615 iCompositionSource = CAlfCompositionSource::NewL(Window()); |
|
1616 iCompositionSource->EnableAlpha(); |
|
1617 } |
1602 |
1618 |
1603 delete iRenderer; iRenderer = NULL; |
1619 delete iRenderer; iRenderer = NULL; |
1604 delete iArtistLabel; iArtistLabel = NULL; |
1620 delete iArtistLabel; iArtistLabel = NULL; |
1605 delete iAlbumLabel; iAlbumLabel = NULL; |
1621 delete iAlbumLabel; iAlbumLabel = NULL; |
1606 delete iLetterPopup; iLetterPopup = NULL; |
1622 delete iLetterPopup; iLetterPopup = NULL; |
2320 delete iAlbumLabel; iAlbumLabel = NULL; |
2336 delete iAlbumLabel; iAlbumLabel = NULL; |
2321 delete iLetterPopup; iLetterPopup = NULL; |
2337 delete iLetterPopup; iLetterPopup = NULL; |
2322 delete iSkinRenderer; iSkinRenderer = NULL; |
2338 delete iSkinRenderer; iSkinRenderer = NULL; |
2323 delete iEmptyLabel; iEmptyLabel = NULL; |
2339 delete iEmptyLabel; iEmptyLabel = NULL; |
2324 delete iEGL; iEGL = NULL; |
2340 delete iEGL; iEGL = NULL; |
|
2341 delete iCompositionSource; iCompositionSource = NULL; |
2325 } |
2342 } |
2326 |
2343 |
2327 // ----------------------------------------------------------------------------- |
2344 // ----------------------------------------------------------------------------- |
2328 // CHgVgMediaWall::DrawAll() |
2345 // CHgVgMediaWall::DrawAll() |
2329 // ----------------------------------------------------------------------------- |
2346 // ----------------------------------------------------------------------------- |
2499 } |
2516 } |
2500 |
2517 |
2501 |
2518 |
2502 void CHgVgMediaWall::InitLabelsL(TInt aLayoutVariant) |
2519 void CHgVgMediaWall::InitLabelsL(TInt aLayoutVariant) |
2503 { |
2520 { |
2504 TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant); |
2521 TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant); |
2505 TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant); |
2522 TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant); |
2506 |
2523 |
2507 TAknLayoutText t0; |
2524 TAknLayoutText t0; |
2508 TAknLayoutText t1; |
2525 TAknLayoutText t1; |
2509 |
2526 |
2510 t0.LayoutText(iRect, l0); |
2527 t0.LayoutText(iRect, l0); |