uifw/ganes/src/HgVgMediaWall.cpp
branchRCL_3
changeset 16 71dd06cfe933
parent 10 9f56a4e1b8ab
child 18 0aa5fbdfbc30
equal deleted inserted replaced
15:08e69e956a8c 16:71dd06cfe933
    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.
   136             
   138             
   137     ActivateL ( );
   139     ActivateL ( );
   138 #ifdef MEDIAWALL_ORIENTATION_FIX
   140 #ifdef MEDIAWALL_ORIENTATION_FIX
   139     iCoeEnv->WsSession().Flush();
   141     iCoeEnv->WsSession().Flush();
   140 #endif
   142 #endif
       
   143     
   141     
   144     
   142     SetMopParent( aParent );
   145     SetMopParent( aParent );
   143     SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallUninitialized );
   146     SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallUninitialized );
   144     
   147     
   145     }
   148     }
   325     delete iDefaultIcon;
   328     delete iDefaultIcon;
   326     delete iManager;
   329     delete iManager;
   327     delete iKeyScrollingTimer;
   330     delete iKeyScrollingTimer;
   328     delete iAnimationTimer;
   331     delete iAnimationTimer;
   329     delete iDelayedInit;
   332     delete iDelayedInit;
   330     //delete iCompositionSource;
       
   331     delete iEGL;
   333     delete iEGL;
   332     delete iSpring;
   334     delete iSpring;
   333     delete iSurfaceBitmap;
   335     delete iSurfaceBitmap;
   334     
   336     
   335     iPopupText1.Close();
   337     iPopupText1.Close();
   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;
  1404                     TRAP_IGNORE(
  1414                     TRAP_IGNORE(
  1405                         iSelectionObserver->HandleSelectL((int)iSpring->EndX(), this);  )
  1415                         iSelectionObserver->HandleSelectL((int)iSpring->EndX(), this);  )
  1406                 }
  1416                 }
  1407             }
  1417             }
  1408         }
  1418         }
  1409                         
  1419     
       
  1420     return ETrue;                    
  1410     }
  1421     }
  1411 
  1422 
  1412 void CHgVgMediaWall::HandleTransitionAnimationStop()
  1423 void CHgVgMediaWall::HandleTransitionAnimationStop()
  1413     {
  1424     {
  1414     if (iAnimationTimer->IsActive() && (iAnimationState == EHgVgMediaWallAnimationStateTransition ||
  1425     if (iAnimationTimer->IsActive() && (iAnimationState == EHgVgMediaWallAnimationStateTransition ||
  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);