emailuis/uicomponents/src/fstreeplaintwolineitemvisualizer.cpp
branchRCL_3
changeset 80 726fba06891a
parent 73 c8382f7b54ef
equal deleted inserted replaced
73:c8382f7b54ef 80:726fba06891a
    10 * Nokia Corporation - initial contribution.
    10 * Nokia Corporation - initial contribution.
    11 *
    11 *
    12 * Contributors:
    12 * Contributors:
    13 *
    13 *
    14 *  Description : A visualizer for data items with plain text.
    14 *  Description : A visualizer for data items with plain text.
    15 *  Version     : %version: tr1sido#18 %
    15 *  Version     : %version: tr1sido#17 %
    16 *
    16 *
    17 */
    17 */
    18 
    18 
       
    19 
       
    20 //<cmail> removed __FS_ALFRED_SUPPORT flag
       
    21 //#include <fsconfig.h>
       
    22 //</cmail> removed __FS_ALFRED_SUPPORT flag
    19 #include "emailtrace.h"
    23 #include "emailtrace.h"
    20 #include <AknsUtils.h>
    24 #include <AknsUtils.h>
    21 #include <touchlogicalfeedback.h>
    25 #include <touchlogicalfeedback.h>
    22 
    26 
    23 #include "fstreeplaintwolineitemvisualizer.h"
    27 #include "fstreeplaintwolineitemvisualizer.h"
    24 #include "fstreeplaintwolineitemdata.h"
    28 #include "fstreeplaintwolineitemdata.h"
    25 #include "fsgenericpanic.h"
    29 #include "fsgenericpanic.h"
    26 #include "fslayoutmanager.h"
    30 #include "fslayoutmanager.h"
    27 #include "fstextstylemanager.h"
    31 #include "fstextstylemanager.h"
    28 #include "fsmarqueeclet.h"
    32 #include "fsmarqueeclet.h"
    29 
    33 // <cmail> SF
    30 #include <alf/alfanchorlayout.h>
    34 #include <alf/alfanchorlayout.h>
    31 #include <alf/alfimagevisual.h>
    35 #include <alf/alfimagevisual.h>
    32 #include <alf/alfviewportlayout.h>
    36 #include <alf/alfviewportlayout.h>
    33 #include <alf/alftextvisual.h>
    37 #include <alf/alftextvisual.h>
    34 #include <alf/alfimage.h>
    38 #include <alf/alfimage.h>
    35 #include <alf/alfenv.h>
    39 #include <alf/alfenv.h>
    36 #include <alf/alfcontrol.h>
    40 #include <alf/alfcontrol.h>
       
    41 
    37 #include <alf/alfevent.h>
    42 #include <alf/alfevent.h>
    38 #include <alf/alfmappingfunctions.h>
    43 #include <alf/alfmappingfunctions.h>
       
    44 // </cmail>
    39 
    45 
    40 // ======== MEMBER FUNCTIONS ========
    46 // ======== MEMBER FUNCTIONS ========
    41 
    47 
    42 // ---------------------------------------------------------------------------
    48 // ---------------------------------------------------------------------------
    43 // Two-phased constructor.
    49 // Two-phased constructor.
   264     TAlfTimedPoint tpSubjTextTl, tpSubjTextBr;
   270     TAlfTimedPoint tpSubjTextTl, tpSubjTextBr;
   265     TAlfTimedPoint tpPrevTextTl, tpPrevTextBr;
   271     TAlfTimedPoint tpPrevTextTl, tpPrevTextBr;
   266     
   272     
   267     CFsLayoutManager::TFsLayoutMetrics
   273     CFsLayoutManager::TFsLayoutMetrics
   268         mainIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1,
   274         mainIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1,
   269         markIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1,
   275         markIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG4,
   270         menuIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG3,
   276         menuIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG3,
   271         sizeMetrics     = CFsLayoutManager::EFsLmListSingleDycRowPane,
   277         sizeMetrics     = CFsLayoutManager::EFsLmListSingleDycRowPane,
   272         exSizeMetrics   = CFsLayoutManager::EFsLmListSingleFsDycPane,
   278         exSizeMetrics   = CFsLayoutManager::EFsLmListSingleFsDycPane,
   273         preSizeMetrics  = CFsLayoutManager::EFsLmListSingleFsDycPane,
   279         preSizeMetrics  = CFsLayoutManager::EFsLmListSingleFsDycPane,
   274         flagIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1;
   280         flagIconMetrics = CFsLayoutManager::EFsLmListSingleDycRowPaneG1;
   335             iDateTimeTextVisual->SetOpacity(opacity);
   341             iDateTimeTextVisual->SetOpacity(opacity);
   336             }
   342             }
   337 
   343 
   338         if (aData->IsIconSet())
   344         if (aData->IsIconSet())
   339             {
   345             {
   340             if ( iFlags & KFsTreeListMarkingMode )
   346             if (iFlags & KFsTreeListItemMarked)
   341                 {
   347                 {
   342                 if ((iFlags & KFsTreeListItemHasMenu)
   348                 if ((iFlags & KFsTreeListItemHasMenu)
   343                         && (iFlags & KFsTreeListItemFocused))
   349                         && (iFlags & KFsTreeListItemFocused))
   344                     {
   350                     {
   345                     //mainIcon + markIcon + menuIcon
   351                     //mainIcon + markIcon + menuIcon
   394                     }
   400                     }
   395                 else
   401                 else
   396                     {
   402                     {
   397                     //mainIcon + markIcon
   403                     //mainIcon + markIcon
   398                     mainIconMetrics =
   404                     mainIconMetrics =
   399                         CFsLayoutManager::EFsLmListSingleDycRowPaneG2;
   405                         CFsLayoutManager::EFsLmListSingleDycRowPaneG1;
   400                     mainIconVariety = 2;
   406                     mainIconVariety = 4;
   401                     markIconMetrics =
   407                     markIconMetrics =
   402                         CFsLayoutManager::EFsLmListSingleDycRowPaneG1;
   408                         CFsLayoutManager::EFsLmListSingleDycRowPaneG4;
   403                     markIconVariety = 2;
   409                     markIconVariety = 3;
   404                     firstLineTextParentVariety = 2;
   410                     firstLineTextParentVariety = 4;
   405                     if (firstLineTextFields==1)
   411                     if (firstLineTextFields==1)
   406                         {
   412                         {
   407                         firstLineTextMetrics[0] =
   413                         firstLineTextMetrics[0] =
   408                             CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   414                             CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   409                         firstLineTextVarieties[0] = 4;
   415                         firstLineTextVarieties[0] = 4;
   410                         }
   416                         }
   411                     else if (firstLineTextFields==2)
   417                     else if (firstLineTextFields==2)
   412                         {
   418                         {
   413                         firstLineTextMetrics[0] =
   419                         firstLineTextMetrics[0] =
   414                             CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   420                             CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   415                         firstLineTextVarieties[0] = 11;
   421                         firstLineTextVarieties[0] = 13;
   416                         firstLineTextMetrics[1] =
   422                         firstLineTextMetrics[1] =
   417                             CFsLayoutManager::EFsLmListSingleDycRowTextPaneT2;
   423                             CFsLayoutManager::EFsLmListSingleDycRowTextPaneT2;
   418                         firstLineTextVarieties[1] = 2;
   424                         firstLineTextVarieties[1] = 4;
   419                         }
   425                         }
   420                     }
   426                     }
   421                 }
   427                 }
   422             else
   428             else
   423                 {
   429                 {
   644                 {
   650                 {
   645                 secondLineTextMetrics = CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   651                 secondLineTextMetrics = CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   646                 secondLineTextVariety = 8;
   652                 secondLineTextVariety = 8;
   647                 }
   653                 }
   648             }
   654             }
       
   655         //<cmail> ???
   649         thirdLineTextMetrics = CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   656         thirdLineTextMetrics = CFsLayoutManager::EFsLmListSingleDycRowTextPaneT1;
   650         thirdLineTextVariety = 4;
   657         thirdLineTextVariety = 4;
       
   658         //</cmail>
   651         }
   659         }
   652     else
   660     else
   653         {
   661         {
   654 
   662 
   655         firstLineTextFields = 3;
   663         firstLineTextFields = 3;
  1356             opacity.SetValueNow(0.0f);
  1364             opacity.SetValueNow(0.0f);
  1357             iIconFlagVisual->SetOpacity(opacity);
  1365             iIconFlagVisual->SetOpacity(opacity);
  1358             }
  1366             }
  1359         }
  1367         }
  1360 
  1368 
  1361     if ( iFlags & KFsTreeListMarkingMode && iIconMark )
  1369     if ( IsMarked() && iIconMarked )
  1362         {       
  1370         {
  1363 
  1371         if (iIconMarked)
  1364         TRect iconRowParent = currentSize;        
  1372             {
  1365         if (markIconRow > 0)
  1373             TRect iconRowParent = currentSize;
  1366             {
  1374             if (markIconRow > 0)
  1367             CFsLayoutManager::LayoutMetricsRect(currentSize, CFsLayoutManager::EFsLmListSingleDycRowPane, iconRowParent, markIconRow, markIconRow);
  1375                 {
  1368             }
  1376                 CFsLayoutManager::LayoutMetricsRect(currentSize, CFsLayoutManager::EFsLmListSingleDycRowPane, iconRowParent, markIconRow, markIconRow);
  1369         CFsLayoutManager::LayoutMetricsRect(
  1377                 }
  1370             iconRowParent,
  1378             CFsLayoutManager::LayoutMetricsRect(
  1371             markIconMetrics,
  1379                     iconRowParent,
  1372             rect,
  1380                     markIconMetrics,
  1373             markIconVariety);
  1381                     rect,
  1374 
  1382                     markIconVariety);
  1375         tpMarkIconTl.SetTarget(TAlfRealPoint(rect.iTl));			
  1383             tpMarkIconTl.SetTarget(TAlfRealPoint(rect.iTl));
  1376         tpMarkIconBr.SetTarget(TAlfRealPoint(rect.iBr));
  1384             tpMarkIconBr.SetTarget(TAlfRealPoint(rect.iBr));
  1377 
  1385 
  1378         TInt iconMarkedVisIndex = iLayout->FindVisual(iIconMark);
  1386             TInt iconMarkedVisIndex =
  1379 
  1387                                  iLayout->FindVisual(iIconMarked);
  1380         if ( iconMarkedVisIndex != KErrNotFound )
  1388             if ( iconMarkedVisIndex != KErrNotFound )
  1381             {
  1389                 {
  1382             tpMarkIconTl.SetStyle(EAlfTimedValueStyleSineWave);
  1390                 tpMarkIconTl.SetStyle(EAlfTimedValueStyleSineWave);
  1383             iLayout->SetAnchor(EAlfAnchorTopLeft,
  1391                 iLayout->SetAnchor(EAlfAnchorTopLeft,
  1384                 iconMarkedVisIndex,
  1392                     iconMarkedVisIndex,
  1385                 EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
  1393                     EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
  1386                 EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
  1394                     EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
  1387                 tpMarkIconTl );
  1395                     tpMarkIconTl );
  1388             tpMarkIconBr.SetStyle(EAlfTimedValueStyleSineWave);
  1396                 tpMarkIconBr.SetStyle(EAlfTimedValueStyleSineWave);
  1389             iLayout->SetAnchor(EAlfAnchorBottomRight,
  1397                 iLayout->SetAnchor(EAlfAnchorBottomRight,
  1390                 iconMarkedVisIndex,
  1398                     iconMarkedVisIndex,
  1391                 EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
  1399                     EAlfAnchorOriginLeft,EAlfAnchorOriginTop,
  1392                 EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
  1400                     EAlfAnchorMetricAbsolute,EAlfAnchorMetricAbsolute,
  1393                 tpMarkIconBr );
  1401                     tpMarkIconBr );
  1394  	        opacity.SetValueNow(1.0f);
  1402                 }
  1395             iIconMark->SetOpacity(opacity);							
  1403             }
  1396             }
  1404         opacity.SetValueNow(1.0f);
       
  1405         iIconMarked->SetOpacity(opacity);
  1397         }
  1406         }
  1398     else
  1407     else
  1399         {
  1408         {
  1400         if (iIconMark)
  1409         if (iIconMarked)
  1401             {
  1410         	{
  1402             opacity.SetValueNow(0.0f);
  1411         	opacity.SetValueNow(0.0f);
  1403             iIconMark->SetOpacity(opacity);
  1412         	iIconMarked->SetOpacity(opacity);
  1404             }
  1413         	}
  1405         }
  1414         }
  1406 
  1415 
  1407     if ( iPreviewPaneTextVisual )
  1416     if ( iPreviewPaneTextVisual )
  1408         {
  1417         {
  1409         if ( IsPreviewPaneOn() && ((iFlags & KFsTreeListItemAlwaysExtended) ||
  1418         if ( IsPreviewPaneOn() && ((iFlags & KFsTreeListItemAlwaysExtended) ||
  1439                 }
  1448                 }
  1440             }
  1449             }
  1441 
  1450 
  1442         }
  1451         }
  1443     iLayout->UpdateChildrenLayout();
  1452     iLayout->UpdateChildrenLayout();
       
  1453     // </cmail>
  1444     }
  1454     }
  1445 
  1455 
  1446 // ---------------------------------------------------------------------------
  1456 // ---------------------------------------------------------------------------
  1447 // From class MFsTreeItemVisualizer.
  1457 // From class MFsTreeItemVisualizer.
  1448 // A call to this function means that the item is requested to draw itself
  1458 // A call to this function means that the item is requested to draw itself
  1494             iSecondaryTextVisual = CAlfTextVisual::AddNewL(iOwnerControl,
  1504             iSecondaryTextVisual = CAlfTextVisual::AddNewL(iOwnerControl,
  1495                     iSecViewport);
  1505                     iSecViewport);
  1496             iSecondaryTextVisual->SetFlag( EAlfVisualFlagIgnorePointer );
  1506             iSecondaryTextVisual->SetFlag( EAlfVisualFlagIgnorePointer );
  1497             }
  1507             }
  1498 
  1508 
  1499         if (!iIconMark)
  1509         if (!iIconMarked)
  1500             {
  1510             {
  1501             iIconMark = CAlfImageVisual::AddNewL( iOwnerControl, iLayout );
  1511             iIconMarked = CAlfImageVisual::AddNewL( iOwnerControl, iLayout );
  1502             iIconMark->SetScaleMode( CAlfImageVisual::EScaleFit );
  1512             iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFit );
  1503             iIconMark->SetFlag( EAlfVisualFlagIgnorePointer );
  1513             iIconMarked->SetFlag( EAlfVisualFlagIgnorePointer );
  1504             }
  1514             }
  1505 
  1515 
  1506         if (!iIconMenu)
  1516         if (!iIconMenu)
  1507             {
  1517             {
  1508             iIconMenu = CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
  1518             iIconMenu =
       
  1519                         CAlfImageVisual::AddNewL(iOwnerControl, iLayout);
  1509             iIconMenu->SetScaleMode( CAlfImageVisual::EScaleFit );
  1520             iIconMenu->SetScaleMode( CAlfImageVisual::EScaleFit );
  1510             iIconMenu->SetFlag( EAlfVisualFlagIgnorePointer );
  1521             iIconMenu->SetFlag( EAlfVisualFlagIgnorePointer );
  1511             }
  1522             }
  1512 
  1523 
  1513         if (!iIconFlagVisual)
  1524         if (!iIconFlagVisual)
  1551 // ---------------------------------------------------------------------------
  1562 // ---------------------------------------------------------------------------
  1552 //
  1563 //
  1553 void CFsTreePlainTwoLineItemVisualizer::UpdateL( const MFsTreeItemData& aData,
  1564 void CFsTreePlainTwoLineItemVisualizer::UpdateL( const MFsTreeItemData& aData,
  1554                                           TBool aFocused,
  1565                                           TBool aFocused,
  1555                                           const TUint aLevel,
  1566                                           const TUint aLevel,
  1556                                           CAlfTexture*& aMarkOnIcon,
  1567                                           CAlfTexture*& aMarkIcon,
  1557                                           CAlfTexture*& aMarkOffIcon,                                          
       
  1558                                           CAlfTexture*& aMenuIcon,
  1568                                           CAlfTexture*& aMenuIcon,
  1559                                           const TUint aTimeout,
  1569                                           const TUint aTimeout,
  1560                                           TBool aUpdateData)
  1570                                           TBool aUpdateData)
  1561     {
  1571     {
  1562     FUNC_LOG;
  1572     FUNC_LOG;
  1734                                           iFlags & KFsTreeListItemTextShadow);
  1744                                           iFlags & KFsTreeListItemTextShadow);
  1735                 iDateTimeTextVisual->SetColor( textColor );
  1745                 iDateTimeTextVisual->SetColor( textColor );
  1736                 iDateTimeTextVisual->SetTextStyle( styleId );
  1746                 iDateTimeTextVisual->SetTextStyle( styleId );
  1737                 }
  1747                 }
  1738 
  1748 
  1739             if ( IsMarked() && iIconMark && aMarkOnIcon )
  1749             if ( IsMarked() && iIconMarked && aMarkIcon )
  1740                 {
  1750                 {
  1741                 iIconMark->SetScaleMode( CAlfImageVisual::EScaleFit );
  1751                 iIconMarked->SetScaleMode( CAlfImageVisual::EScaleFit );
  1742                 iIconMark->SetImage( *aMarkOnIcon );
  1752                 iIconMarked->SetImage( *aMarkIcon );
  1743                 }
       
  1744             else if ( !IsMarked() && iIconMark && aMarkOffIcon )
       
  1745                 {
       
  1746                 iIconMark->SetScaleMode( CAlfImageVisual::EScaleFit );
       
  1747                 iIconMark->SetImage( *aMarkOffIcon );
       
  1748                 }
  1753                 }
  1749 
  1754 
  1750             //menu icon - visible only when item is focused
  1755             //menu icon - visible only when item is focused
  1751             if ((iFlags & KFsTreeListItemHasMenu) && (iFlags & KFsTreeListItemFocused))
  1756             if ((iFlags & KFsTreeListItemHasMenu) && (iFlags & KFsTreeListItemFocused))
  1752                 {
  1757                 {