emailuis/uicomponents/src/fstreevisualizerbase.cpp
branchRCL_3
changeset 80 726fba06891a
parent 73 c8382f7b54ef
equal deleted inserted replaced
73:c8382f7b54ef 80:726fba06891a
    22 #include <StringLoader.h>
    22 #include <StringLoader.h>
    23 #include <avkon.rsg> // R_AVKON_EMPTY_POPUP_LIST_TEXT
    23 #include <avkon.rsg> // R_AVKON_EMPTY_POPUP_LIST_TEXT
    24 #include <centralrepository.h>
    24 #include <centralrepository.h>
    25 
    25 
    26 //////TOOLKIT INCLUDES
    26 //////TOOLKIT INCLUDES
       
    27 // <cmail> SF
    27 #include <alf/alfstatic.h>
    28 #include <alf/alfstatic.h>
    28 #include <alf/alfownership.h>
    29 #include <alf/alfownership.h>
    29 #include <alf/alfevent.h>
    30 #include <alf/alfevent.h>
    30 #include <alf/alfimage.h>
    31 #include <alf/alfimage.h>
    31 #include <alf/alfenv.h>
    32 #include <alf/alfenv.h>
    47 #include <alf/alfmetric.h>
    48 #include <alf/alfmetric.h>
    48 #include <alf/alftimedvalue.h>
    49 #include <alf/alftimedvalue.h>
    49 //visuals
    50 //visuals
    50 #include <alf/alfvisual.h>
    51 #include <alf/alfvisual.h>
    51 #include <alf/alfimagevisual.h>
    52 #include <alf/alfimagevisual.h>
       
    53 // </cmail>
    52 
    54 
    53 
    55 
    54 //////PROJECT INCLUDES
    56 //////PROJECT INCLUDES
    55 #include "fstreevisualizerbase.h"
    57 #include "fstreevisualizerbase.h"
    56 #include "fstreeplainrootvisualizer.h"
    58 #include "fstreeplainrootvisualizer.h"
   360     {
   362     {
   361     // First find first visible item using binary search algorithm
   363     // First find first visible item using binary search algorithm
   362     aItems.Reset();
   364     aItems.Reset();
   363     TInt i(0);
   365     TInt i(0);
   364     aOffset = 0;
   366     aOffset = 0;
       
   367     aBeginIndex = KErrNotFound;
       
   368     
   365     if (aY > Height())
   369     if (aY > Height())
   366         {
   370         {
   367         aHeight = -1;
   371         aHeight = -1;
   368         }
   372         }
   369     else if (aY > 0)
   373     else if (aY > 0)
  1060 
  1064 
  1061 // ---------------------------------------------------------------------------
  1065 // ---------------------------------------------------------------------------
  1062 //  Sets icon for a mark sign.
  1066 //  Sets icon for a mark sign.
  1063 // ---------------------------------------------------------------------------
  1067 // ---------------------------------------------------------------------------
  1064 //
  1068 //
  1065 void CFsTreeVisualizerBase::SetMarkOnIcon(CAlfTexture& aMarkOnIcon)
  1069 void CFsTreeVisualizerBase::SetMarkIcon(CAlfTexture& aMarkIcon)
  1066     {
  1070     {
  1067     FUNC_LOG;
  1071     FUNC_LOG;
  1068     iMarkOnIcon = &aMarkOnIcon;
  1072     iMarkIcon = &aMarkIcon;
  1069     }
       
  1070 
       
  1071 // ---------------------------------------------------------------------------
       
  1072 //  Sets icon for a unmark sign.
       
  1073 // ---------------------------------------------------------------------------
       
  1074 //
       
  1075 void CFsTreeVisualizerBase::SetMarkOffIcon(CAlfTexture& aMarkOffIcon)
       
  1076     {
       
  1077     FUNC_LOG;
       
  1078     iMarkOffIcon = &aMarkOffIcon;
       
  1079     }
  1073     }
  1080 
  1074 
  1081 // ---------------------------------------------------------------------------
  1075 // ---------------------------------------------------------------------------
  1082 //  Returns icon used to mark items.
  1076 //  Returns icon used to mark items.
  1083 // ---------------------------------------------------------------------------
  1077 // ---------------------------------------------------------------------------
  1084 //
  1078 //
  1085 CAlfTexture* CFsTreeVisualizerBase::MarkOnIcon()
  1079 CAlfTexture* CFsTreeVisualizerBase::MarkIcon()
  1086     {
  1080     {
  1087     FUNC_LOG;
  1081     FUNC_LOG;
  1088     return iMarkOnIcon;
  1082     return iMarkIcon;
  1089     }
       
  1090 
       
  1091 // ---------------------------------------------------------------------------
       
  1092 //  Returns icon used to unmark items.
       
  1093 // ---------------------------------------------------------------------------
       
  1094 //
       
  1095 CAlfTexture* CFsTreeVisualizerBase::MarkOffIcon()
       
  1096     {
       
  1097     FUNC_LOG;
       
  1098     return iMarkOffIcon;
       
  1099     }
  1083     }
  1100 
  1084 
  1101 // ---------------------------------------------------------------------------
  1085 // ---------------------------------------------------------------------------
  1102 //
  1086 //
  1103 // ---------------------------------------------------------------------------
  1087 // ---------------------------------------------------------------------------
  1125         {
  1109         {
  1126         MFsTreeItemData* data = NULL;
  1110         MFsTreeItemData* data = NULL;
  1127         data = &(iTreeData->ItemData(aItemId));
  1111         data = &(iTreeData->ItemData(aItemId));
  1128 
  1112 
  1129         vis->UpdateL(*data, IsItemFocused(aItemId) && IsFocusShown(),
  1113         vis->UpdateL(*data, IsItemFocused(aItemId) && IsFocusShown(),
  1130                 iTreeData->Level(aItemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon);
  1114                 iTreeData->Level(aItemId), iMarkIcon, iMenuIcon);
  1131         }
  1115         }
  1132     }
  1116     }
  1133 
  1117 
  1134 // ---------------------------------------------------------------------------
  1118 // ---------------------------------------------------------------------------
  1135 //
  1119 //
  1285                             MFsTreeItemData* data = &iTreeData->ItemData(
  1269                             MFsTreeItemData* data = &iTreeData->ItemData(
  1286                                     iFocusedItem);
  1270                                     iFocusedItem);
  1287                             MakeSelectorVisibleL(EFalse);
  1271                             MakeSelectorVisibleL(EFalse);
  1288                             visualizer->UpdateL(*data, EFalse,
  1272                             visualizer->UpdateL(*data, EFalse,
  1289                                     iTreeData->Level(iFocusedItem),
  1273                                     iTreeData->Level(iFocusedItem),
  1290                                     iMarkOnIcon, iMarkOffIcon, 
  1274                                     iMarkIcon, iMenuIcon, iCurrentScrollSpeed);
  1291                                     iMenuIcon, iCurrentScrollSpeed);
       
  1292                             }
  1275                             }
  1293                         }
  1276                         }
  1294                     }
  1277                     }
  1295                 }
  1278                 }
  1296             iListLayout->UpdateChildrenLayout();
  1279             iListLayout->UpdateChildrenLayout();
  1297             }
       
  1298         }
       
  1299     }
       
  1300 
       
  1301 // ---------------------------------------------------------------------------
       
  1302 //  The functions sets wether all item in the list should be always in
       
  1303 //  extended state or in normal state.
       
  1304 // ---------------------------------------------------------------------------
       
  1305 //
       
  1306 void CFsTreeVisualizerBase::SetMarkingModeL( TBool aMarkingMode )
       
  1307     {
       
  1308     FUNC_LOG;
       
  1309     // Do not change this to: IsMarkingMode() != aAlwaysExtended, because
       
  1310     // it will not work. TBool is defined as TInt and thus this comparison
       
  1311     // comes out as TInt != TInt, which always evaluates true in this case.
       
  1312     if ( ( IsMarkingMode() && !aMarkingMode ) || 
       
  1313          ( !IsMarkingMode() && aMarkingMode ) )
       
  1314         {
       
  1315         iFlags.Assign(EMarkingMode, aMarkingMode);
       
  1316         TFsTreeIterator treeIter(
       
  1317                 iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID));
       
  1318         while (treeIter.HasNext())
       
  1319             {
       
  1320             TFsTreeItemId itemId(treeIter.Next());
       
  1321             if (itemId != KFsTreeNoneID && !iTreeData->IsNode(itemId))
       
  1322                 {
       
  1323                 MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId));
       
  1324                 ApplyListSpecificValuesToItem(itemviz);
       
  1325                 }
       
  1326             }
       
  1327             const TBool isUpdating(iWorld.IsUpdating());
       
  1328         if (!isUpdating)
       
  1329             {
       
  1330             iWorld.BeginUpdate();
       
  1331             }
       
  1332         iWorld.RemoveAllL();
       
  1333         treeIter = iTreeData->Iterator(KFsTreeRootID, KFsTreeRootID,
       
  1334                 KFsTreeIteratorSkipCollapsedFlag);
       
  1335         while (treeIter.HasNext())
       
  1336             {
       
  1337             TFsTreeItemId itemId(treeIter.Next());
       
  1338             if (itemId != KFsTreeNoneID)
       
  1339                 {
       
  1340                 MFsTreeItemVisualizer* itemviz(iTreeData->ItemVisualizer(itemId));
       
  1341                 iWorld.AppendL(itemId, itemviz->Size());
       
  1342                 }
       
  1343             }
       
  1344         iViewPort.ClearCache();
       
  1345         if (!isUpdating)
       
  1346             {
       
  1347             iWorld.EndUpdateL();
       
  1348             }
  1280             }
  1349         }
  1281         }
  1350     }
  1282     }
  1351 
  1283 
  1352 // ---------------------------------------------------------------------------
  1284 // ---------------------------------------------------------------------------
  1778         visualizer = iTreeData->ItemVisualizer( iFocusedItem );
  1710         visualizer = iTreeData->ItemVisualizer( iFocusedItem );
  1779 
  1711 
  1780         if ( visualizer )
  1712         if ( visualizer )
  1781             {
  1713             {
  1782             visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), EFalse,
  1714             visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), EFalse,
  1783             		iTreeData->Level( iFocusedItem ), iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0 );
  1715             		iTreeData->Level( iFocusedItem ), iMarkIcon, iMenuIcon, 0 );
  1784             }
  1716             }
  1785 
  1717 
  1786         iFocusedItem = aItemId;
  1718         iFocusedItem = aItemId;
  1787         }
  1719         }
  1788 
  1720 
  1789     visualizer = iTreeData->ItemVisualizer( iFocusedItem );
  1721     visualizer = iTreeData->ItemVisualizer( iFocusedItem );
  1790 
  1722 
  1791     if ( visualizer )
  1723     if ( visualizer )
  1792         {
  1724         {
  1793         visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), IsFocusShown(),
  1725         visualizer->UpdateL( iTreeData->ItemData( iFocusedItem ), IsFocusShown(),
  1794                              iTreeData->Level( iFocusedItem ), iMarkOnIcon, 
  1726                 iTreeData->Level( iFocusedItem ), iMarkIcon, iMenuIcon, 0 );
  1795                              iMarkOffIcon, iMenuIcon, 0 );
       
  1796         }
  1727         }
  1797 
  1728 
  1798     if ( iFocusedItem != KFsTreeNoneID )
  1729     if ( iFocusedItem != KFsTreeNoneID )
  1799         {
  1730         {
  1800         UpdateSelectorVisualL();
  1731         UpdateSelectorVisualL();
  1839 
  1770 
  1840 // ---------------------------------------------------------------------------
  1771 // ---------------------------------------------------------------------------
  1841 // Sets an item as first visible one in the list.
  1772 // Sets an item as first visible one in the list.
  1842 // ---------------------------------------------------------------------------
  1773 // ---------------------------------------------------------------------------
  1843 //
  1774 //
       
  1775 // <cmail>
  1844 void CFsTreeVisualizerBase::SetFirstVisibleItemL(const TFsTreeItemId /*aItemId*/)
  1776 void CFsTreeVisualizerBase::SetFirstVisibleItemL(const TFsTreeItemId /*aItemId*/)
  1845     {
  1777     {
  1846     FUNC_LOG;
  1778     FUNC_LOG;
  1847     }
  1779     }
  1848 
  1780 
  1854     {
  1786     {
  1855     FUNC_LOG;
  1787     FUNC_LOG;
  1856     TFsTreeItemId retId = KFsTreeNoneID;
  1788     TFsTreeItemId retId = KFsTreeNoneID;
  1857     if (iVisibleItems.Count())
  1789     if (iVisibleItems.Count())
  1858         {
  1790         {
       
  1791         // <cmail>
       
  1792         //        TRAP_IGNORE( ClearVisibleItemsListL(EFalse) );
       
  1793         // </cmail>
  1859         retId = iVisibleItems[0];
  1794         retId = iVisibleItems[0];
  1860         }
  1795         }
  1861     else
  1796     else
  1862         {
  1797         {
  1863         retId = KFsTreeNoneID;
  1798         retId = KFsTreeNoneID;
  1887 
  1822 
  1888 // ---------------------------------------------------------------------------
  1823 // ---------------------------------------------------------------------------
  1889 // Displays the list.
  1824 // Displays the list.
  1890 // ---------------------------------------------------------------------------
  1825 // ---------------------------------------------------------------------------
  1891 //
  1826 //
       
  1827 // <cmail>
  1892 void CFsTreeVisualizerBase::ShowListL(const TBool aFadeIn,
  1828 void CFsTreeVisualizerBase::ShowListL(const TBool aFadeIn,
  1893         const TBool aSlideIn)
  1829         const TBool aSlideIn)
  1894     {
  1830     {
  1895     FUNC_LOG;
  1831     FUNC_LOG;
  1896     iVisualizationState = EFsTreeVisible;
  1832     iVisualizationState = EFsTreeVisible;
  1897     if (iTreeData->Count() == 0)
  1833     if (iTreeData->Count() == 0)
  1898         {
  1834         {
  1899         iRootVisualizer->ShowL(*iRootLayout);
  1835         iRootVisualizer->ShowL(*iRootLayout);
  1900         iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon, 
  1836         iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, iMenuIcon);
  1901                                   iMarkOffIcon, iMenuIcon);
       
  1902         }
  1837         }
  1903     else
  1838     else
  1904         {
  1839         {
  1905         const TBool showFocus = IsFocusShown();
  1840         const TBool showFocus = IsFocusShown();
  1906         for (TUint i = 0; i < iVisibleItems.Count(); ++i)
  1841         for (TUint i = 0; i < iVisibleItems.Count(); ++i)
  1911 
  1846 
  1912             TBool itemFocused( showFocus && IsItemFocused(itemId) );
  1847             TBool itemFocused( showFocus && IsItemFocused(itemId) );
  1913 			if ( visualizer )
  1848 			if ( visualizer )
  1914 				{
  1849 				{
  1915 	        	visualizer->UpdateL(iTreeData->ItemData(itemId), itemFocused,
  1850 	        	visualizer->UpdateL(iTreeData->ItemData(itemId), itemFocused,
  1916 	                iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon,
  1851 	                iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
  1917 	                0);
  1852 	                0);
  1918 				}
  1853 				}
  1919             }
  1854             }
  1920         }
  1855         }
  1921     UpdateViewPortL();
  1856     UpdateViewPortL();
  1988     iFadeEffect->FadeIn();
  1923     iFadeEffect->FadeIn();
  1989     iSlideEffect->SlideIn(slideInDir);
  1924     iSlideEffect->SlideIn(slideInDir);
  1990 
  1925 
  1991     UpdateScrollBarL();
  1926     UpdateScrollBarL();
  1992     }
  1927     }
       
  1928 // </cmail>
  1993 
  1929 
  1994 // ---------------------------------------------------------------------------
  1930 // ---------------------------------------------------------------------------
  1995 // The function assures that the list view is correct.
  1931 // The function assures that the list view is correct.
  1996 // ---------------------------------------------------------------------------
  1932 // ---------------------------------------------------------------------------
  1997 //
  1933 //
  2590         if (vis)
  2526         if (vis)
  2591             {
  2527             {
  2592             vis->UpdateL(iTreeData->ItemData(aItemId),
  2528             vis->UpdateL(iTreeData->ItemData(aItemId),
  2593                     IsItemFocused(aItemId) && IsFocusShown(),
  2529                     IsItemFocused(aItemId) && IsFocusShown(),
  2594                     iTreeData->Level(aItemId),
  2530                     iTreeData->Level(aItemId),
  2595                     iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0);
  2531                     iMarkIcon, iMenuIcon, 0);
  2596             }
  2532             }
  2597         }
  2533         }
  2598     }
  2534     }
  2599 
  2535 
  2600 // ---------------------------------------------------------------------------
  2536 // ---------------------------------------------------------------------------
  2656 //
  2592 //
  2657 TBool CFsTreeVisualizerBase::IsItemsAlwaysExtended()
  2593 TBool CFsTreeVisualizerBase::IsItemsAlwaysExtended()
  2658     {
  2594     {
  2659     FUNC_LOG;
  2595     FUNC_LOG;
  2660     return iFlags.IsSet(EItemsAlwaysExtended);
  2596     return iFlags.IsSet(EItemsAlwaysExtended);
  2661     }
       
  2662 
       
  2663 // ---------------------------------------------------------------------------
       
  2664 //  The function returns if marking mode is on or off
       
  2665 // ---------------------------------------------------------------------------
       
  2666 //
       
  2667 TBool CFsTreeVisualizerBase::IsMarkingMode()
       
  2668     {
       
  2669     FUNC_LOG;
       
  2670     return iFlags.IsSet(EMarkingMode);
       
  2671     }
  2597     }
  2672 
  2598 
  2673 // ---------------------------------------------------------------------------
  2599 // ---------------------------------------------------------------------------
  2674 // Set the background texture, clears the background color.
  2600 // Set the background texture, clears the background color.
  2675 // ---------------------------------------------------------------------------
  2601 // ---------------------------------------------------------------------------
  2804         if (!iWatermark)
  2730         if (!iWatermark)
  2805             {
  2731             {
  2806             iWatermark
  2732             iWatermark
  2807                     = CFsWatermark::NewL(*iOwnerControl, *iWatermarkLayout);
  2733                     = CFsWatermark::NewL(*iOwnerControl, *iWatermarkLayout);
  2808             }
  2734             }
       
  2735         // <cmail>
  2809         iWatermark->SetWatermarkTextureL(*aTexture);
  2736         iWatermark->SetWatermarkTextureL(*aTexture);
       
  2737         // </cmail>
  2810         }
  2738         }
  2811     else
  2739     else
  2812         {
  2740         {
  2813         delete iWatermark;
  2741         delete iWatermark;
  2814         iWatermark = NULL;
  2742         iWatermark = NULL;
  2916                 iPhysics->StopPhysics();
  2844                 iPhysics->StopPhysics();
  2917                 }
  2845                 }
  2918             if (!iWorld.IsUpdating())
  2846             if (!iWorld.IsUpdating())
  2919                 {
  2847                 {
  2920                 iRootVisualizer->ShowL(*iRootLayout);
  2848                 iRootVisualizer->ShowL(*iRootLayout);
  2921                 iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon,
  2849                 iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon,
  2922                         iMarkOffIcon, iMenuIcon);
  2850                         iMenuIcon);
  2923                 }
  2851                 }
  2924             iVisibleItems.Reset();
  2852             iVisibleItems.Reset();
  2925             iWorld.RemoveAllL();
  2853             iWorld.RemoveAllL();
  2926             iFocusedItem = KFsTreeNoneID;
  2854             iFocusedItem = KFsTreeNoneID;
  2927             }
  2855             }
  2939                     itemId);
  2867                     itemId);
  2940             if (visualizer)
  2868             if (visualizer)
  2941                 {
  2869                 {
  2942                 visualizer->UpdateL(iTreeData->ItemData(itemId),
  2870                 visualizer->UpdateL(iTreeData->ItemData(itemId),
  2943                         IsItemFocused(itemId), iTreeData->Level(itemId),
  2871                         IsItemFocused(itemId), iTreeData->Level(itemId),
  2944                         iMarkOnIcon, iMarkOffIcon, iMenuIcon, 0);
  2872                         iMarkIcon, iMenuIcon, 0);
  2945                 }
  2873                 }
  2946             }
  2874             }
  2947             break;
  2875             break;
  2948 
  2876 
  2949         default:
  2877         default:
  2999     {
  2927     {
  3000     FUNC_LOG;
  2928     FUNC_LOG;
  3001     if (iTreeData->Count() == 0)
  2929     if (iTreeData->Count() == 0)
  3002         {
  2930         {
  3003         iRootVisualizer->ShowL(*iRootLayout);
  2931         iRootVisualizer->ShowL(*iRootLayout);
  3004         iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkOnIcon, 
  2932         iRootVisualizer->UpdateL(*iRootData, EFalse, 0, iMarkIcon, iMenuIcon);
  3005                 iMarkOffIcon, iMenuIcon);
       
  3006         }
  2933         }
  3007     else
  2934     else
  3008         {
  2935         {
  3009         }
  2936         }
  3010     }
  2937     }
  3336             }
  3263             }
  3337         }
  3264         }
  3338 
  3265 
  3339     if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
  3266     if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
  3340         {
  3267         {
  3341         TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3268             // <cmail> Touch
       
  3269             TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3342                             MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
  3270                             MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
  3343                             KFsTreeNoneID ));
  3271                             KFsTreeNoneID ));
       
  3272         // </cmail>
  3344         }
  3273         }
  3345 
  3274 
  3346     if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
  3275     if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
  3347         {
  3276         {
  3348         TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3277             // <cmail> Touch
       
  3278             TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3349                             MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
  3279                             MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
  3350                             KFsTreeNoneID ));
  3280                             KFsTreeNoneID ));
       
  3281         // </cmail>
  3351         }
  3282         }
  3352     }
  3283     }
  3353 
  3284 
  3354 // ---------------------------------------------------------------------------
  3285 // ---------------------------------------------------------------------------
  3355 // From MFsSlideEffectObserver
  3286 // From MFsSlideEffectObserver
  3394             }
  3325             }
  3395         }
  3326         }
  3396 
  3327 
  3397     if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
  3328     if (iVisualizationState == EFsTreeVisible && iVisualizerObserver)
  3398         {
  3329         {
  3399         TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3330             // <cmail> Touch
       
  3331             TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3400                             MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
  3332                             MFsTreeVisualizerObserver::EFsTreeListVisualizerShown,
  3401                             KFsTreeNoneID ));
  3333                             KFsTreeNoneID ));
  3402 
  3334 
  3403         }
  3335         }
  3404 
  3336 
  3405     if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
  3337     if (iVisualizationState == EFsTreeHidden && iVisualizerObserver)
  3406         {
  3338         {
  3407         TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3339             TRAP_IGNORE(iVisualizerObserver->TreeVisualizerEventL(
  3408                             MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
  3340                             MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden,
  3409                             KFsTreeNoneID ));
  3341                             KFsTreeNoneID ));
       
  3342         // </cmail>
  3410         }
  3343         }
  3411     }
  3344     }
  3412 
  3345 
  3413 // ---------------------------------------------------------------------------
  3346 // ---------------------------------------------------------------------------
  3414 // From MAlfActionObserver
  3347 // From MAlfActionObserver
  3860             MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer(itemId);
  3793             MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer(itemId);
  3861             if (visualizer)
  3794             if (visualizer)
  3862                 {
  3795                 {
  3863                 visualizer->UpdateL(iTreeData->ItemData(itemId),
  3796                 visualizer->UpdateL(iTreeData->ItemData(itemId),
  3864 					IsItemFocused(itemId) && IsFocusShown(),
  3797 					IsItemFocused(itemId) && IsFocusShown(),
  3865                     iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon,
  3798                     iTreeData->Level(itemId), iMarkIcon, iMenuIcon, 0, EFalse);
  3866                     iMenuIcon, 0, EFalse);
       
  3867                 }
  3799                 }
  3868             }
  3800             }
  3869         UpdateSelectorVisualL();
  3801         UpdateSelectorVisualL();
  3870         }
  3802         }
  3871 
  3803 
  3931         CAlfImageBrush* border = CAlfImageBrush::NewL(iOwnerControl->Env(),
  3863         CAlfImageBrush* border = CAlfImageBrush::NewL(iOwnerControl->Env(),
  3932                 TAlfImage(*aBorderTexture));
  3864                 TAlfImage(*aBorderTexture));
  3933         border->SetLayer(EAlfBrushLayerBackground);
  3865         border->SetLayer(EAlfBrushLayerBackground);
  3934 
  3866 
  3935         border->SetBorders(-8, -8, -8, -8);
  3867         border->SetBorders(-8, -8, -8, -8);
       
  3868         //<cmail>
       
  3869         // layout values needed here (not: only used from FS action menu)
       
  3870         //</cmail>
  3936         iBorderLayout->SetPadding(TPoint(5, 5));
  3871         iBorderLayout->SetPadding(TPoint(5, 5));
  3937 
  3872 
  3938         if (iBorderLayout->Brushes()->Count() > 0)
  3873         if (iBorderLayout->Brushes()->Count() > 0)
  3939             {
  3874             {
  3940             iBorderLayout->Brushes()->Remove(0);
  3875             iBorderLayout->Brushes()->Remove(0);
  4612         MFsTreeItemVisualizer *aItemVis)
  4547         MFsTreeItemVisualizer *aItemVis)
  4613     {
  4548     {
  4614     FUNC_LOG;
  4549     FUNC_LOG;
  4615     //list can have all items in extended or in a normal state
  4550     //list can have all items in extended or in a normal state
  4616     aItemVis->SetAlwaysExtended(IsItemsAlwaysExtended());
  4551     aItemVis->SetAlwaysExtended(IsItemsAlwaysExtended());
  4617     
       
  4618     aItemVis->SetMarkingMode(IsMarkingMode());
       
  4619 
  4552 
  4620     //global indentation in pixels for a list component
  4553     //global indentation in pixels for a list component
  4621     aItemVis->SetIndentation(iLevelIndentation);
  4554     aItemVis->SetIndentation(iLevelIndentation);
  4622 
  4555 
  4623     //global indentation in pixels for a list component
  4556     //global indentation in pixels for a list component
  4713             isFocused = ETrue;
  4646             isFocused = ETrue;
  4714             }
  4647             }
  4715         }
  4648         }
  4716     return isFocused;
  4649     return isFocused;
  4717     }
  4650     }
       
  4651 
       
  4652 // <cmail> "Base class modifications for using touch"
  4718 
  4653 
  4719 // ---------------------------------------------------------------------------
  4654 // ---------------------------------------------------------------------------
  4720 //  C++ constructor.
  4655 //  C++ constructor.
  4721 // ---------------------------------------------------------------------------
  4656 // ---------------------------------------------------------------------------
  4722 //
  4657 //
  4759     FUNC_LOG;
  4694     FUNC_LOG;
  4760     iFlags.Set( EAutoRefresh );
  4695     iFlags.Set( EAutoRefresh );
  4761     iFlags.Assign( EPopupMode, aPopUpMode );
  4696     iFlags.Assign( EPopupMode, aPopUpMode );
  4762     iFlags.Set( EExpandCollapseOnLongTap );
  4697     iFlags.Set( EExpandCollapseOnLongTap );
  4763     }
  4698     }
       
  4699 // </cmail>
  4764 
  4700 
  4765 // ---------------------------------------------------------------------------
  4701 // ---------------------------------------------------------------------------
  4766 //  Second phase constructor.
  4702 //  Second phase constructor.
  4767 // ---------------------------------------------------------------------------
  4703 // ---------------------------------------------------------------------------
  4768 //
  4704 //
  4972         }
  4908         }
  4973     else
  4909     else
  4974         {
  4910         {
  4975         UpdatePhysicsL();
  4911         UpdatePhysicsL();
  4976         }
  4912         }
       
  4913     UpdateScrollBarL();
  4977     }
  4914     }
  4978 
  4915 
  4979 // ---------------------------------------------------------------------------
  4916 // ---------------------------------------------------------------------------
  4980 // ViewPort updated
  4917 // ViewPort updated
  4981 // ---------------------------------------------------------------------------
  4918 // ---------------------------------------------------------------------------
  5017     			{
  4954     			{
  5018     			MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer(
  4955     			MFsTreeItemVisualizer* visualizer = iTreeData->ItemVisualizer(
  5019     											itemId);
  4956     											itemId);
  5020     			visualizer->UpdateL(iTreeData->ItemData(itemId),
  4957     			visualizer->UpdateL(iTreeData->ItemData(itemId),
  5021     							IsItemFocused(itemId) && IsFocusShown(),
  4958     							IsItemFocused(itemId) && IsFocusShown(),
  5022     							iTreeData->Level(itemId), iMarkOnIcon, 
  4959     							iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
  5023     							iMarkOffIcon, iMenuIcon, 0);
  4960     							0);
  5024     			}
  4961     			}
  5025     		}
  4962     		}
  5026     	CleanupStack::PopAndDestroy();
  4963     	CleanupStack::PopAndDestroy();
  5027     	}
  4964     	}
  5028 
  4965 
  5074             TAlfTimedPoint tpItemSize( listInnerWidth, size.iHeight );
  5011             TAlfTimedPoint tpItemSize( listInnerWidth, size.iHeight );
  5075             CAlfLayout& visualizerLayout(visualizer->Layout());
  5012             CAlfLayout& visualizerLayout(visualizer->Layout());
  5076             visualizerLayout.SetSize(tpItemSize);
  5013             visualizerLayout.SetSize(tpItemSize);
  5077         	visualizer->UpdateL(iTreeData->ItemData(itemId),
  5014         	visualizer->UpdateL(iTreeData->ItemData(itemId),
  5078                 IsItemFocused(itemId) && IsFocusShown(),
  5015                 IsItemFocused(itemId) && IsFocusShown(),
  5079                 iTreeData->Level(itemId), iMarkOnIcon, iMarkOffIcon, iMenuIcon,
  5016                 iTreeData->Level(itemId), iMarkIcon, iMenuIcon,
  5080                 0);
  5017                 0);
  5081             visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId);
  5018             visualizerLayout.PropertySetIntegerL(KPropertyItemId(), itemId);
  5082             visualizerLayout.Brushes()->AppendL(iBorderBrush,
  5019             visualizerLayout.Brushes()->AppendL(iBorderBrush,
  5083                     EAlfDoesNotHaveOwnership);
  5020                     EAlfDoesNotHaveOwnership);
  5084             CAlfBrush* bgBrush(NULL);
  5021             CAlfBrush* bgBrush(NULL);
  5531 TBool CFsTreeVisualizerBase::IsFocusShown()
  5468 TBool CFsTreeVisualizerBase::IsFocusShown()
  5532     {
  5469     {
  5533     return ( iTouchPressed || iFocusVisible ) && iFlags.IsClear( EListPanning );
  5470     return ( iTouchPressed || iFocusVisible ) && iFlags.IsClear( EListPanning );
  5534     }
  5471     }
  5535 
  5472 
       
  5473 
       
  5474 // </cmail>