emailuis/uicomponents/src/fstreelist.cpp
changeset 0 8466d47a6819
child 1 12c456ceeff2
equal deleted inserted replaced
-1:000000000000 0:8466d47a6819
       
     1 /*
       
     2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Freestyle list component implementation
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 //////SYSTEM INCLUDES
       
    21 
       
    22 //////TOOLKIT INCLUDES
       
    23 // <cmail> SF
       
    24 #include "emailtrace.h"
       
    25 #include <alf/alfenv.h>
       
    26 // </cmail>
       
    27 
       
    28 //////PROJECT INCLUDES
       
    29 //<cmail> removed __FS_ALFRED_SUPPORT flag
       
    30 //#include <fsconfig.h>
       
    31 //</cmail> removed __FS_ALFRED_SUPPORT flag
       
    32 #include "fstreelist.h"
       
    33 #include "fstreecontrol.h"
       
    34 #include "fstree.h"
       
    35 #include "fstreeitem.h"
       
    36 #include "fstreenode.h"
       
    37 #include "fsgenericpanic.h"
       
    38 #include "fstreeitemdata.h"
       
    39 #include "fstreeitemvisualizer.h"
       
    40 #include "fstreenodevisualizer.h"
       
    41 #include "fstreelistobserver.h"
       
    42 #include "fstreevisualizerbase.h"
       
    43 #include "fstextstylemanager.h"
       
    44 #include "fstreeobserver.h"
       
    45 #include "fsalftextstylemanager.h"
       
    46 #include "fsscrollbarset.h"
       
    47 
       
    48 
       
    49 // ======== MEMBER FUNCTIONS ========
       
    50 
       
    51 // ---------------------------------------------------------------------------
       
    52 // Two-phased constructor.
       
    53 // ---------------------------------------------------------------------------
       
    54 //
       
    55 EXPORT_C CFsTreeList* CFsTreeList::NewL( CFsTreeVisualizerBase& aTreeV,
       
    56                                          CAlfEnv& aEnv )
       
    57     {
       
    58     FUNC_LOG;
       
    59     CFsTreeList* self = new( ELeave ) CFsTreeList( aEnv, aTreeV );
       
    60     CleanupStack::PushL( self );
       
    61     self->ConstructL( aEnv );
       
    62     CleanupStack::Pop( self );
       
    63     return self;
       
    64     }
       
    65 
       
    66 // ---------------------------------------------------------------------------
       
    67 // C++ destructor.
       
    68 // ---------------------------------------------------------------------------
       
    69 //
       
    70 EXPORT_C CFsTreeList::~CFsTreeList()
       
    71     {
       
    72     FUNC_LOG;
       
    73     delete iTree;
       
    74     delete iTreeVisualizer;
       
    75     delete iTextStyleManager;
       
    76     iObservers.Close();
       
    77     }
       
    78 
       
    79 // ---------------------------------------------------------------------------
       
    80 //  Adds observer to the list of observers
       
    81 // ---------------------------------------------------------------------------
       
    82 EXPORT_C void CFsTreeList::AddObserverL(
       
    83     MFsTreeListObserver& aTreeListObserver )
       
    84     {
       
    85     FUNC_LOG;
       
    86     iObservers.AppendL(&aTreeListObserver);
       
    87     }
       
    88 
       
    89 // ---------------------------------------------------------------------------
       
    90 //  Removes observer from the list of observers
       
    91 // ---------------------------------------------------------------------------
       
    92 
       
    93 EXPORT_C void CFsTreeList::RemoveObserver(
       
    94     MFsTreeListObserver& aTreeListObserver )
       
    95     {
       
    96     FUNC_LOG;
       
    97     TInt ind = iObservers.Find( &aTreeListObserver );
       
    98     if ( ind >= 0 )
       
    99         {
       
   100         iObservers.Remove( ind );
       
   101         }
       
   102     }
       
   103 
       
   104 // ---------------------------------------------------------------------------
       
   105 // Returns a control associated with the component.
       
   106 // ---------------------------------------------------------------------------
       
   107 //
       
   108 EXPORT_C CAlfControl* CFsTreeList::TreeControl( ) const
       
   109     {
       
   110     FUNC_LOG;
       
   111     return iTreeControl;
       
   112     }
       
   113 
       
   114 // ---------------------------------------------------------------------------
       
   115 // Inserts new item as a child of parent given by Id with the given position.
       
   116 // ---------------------------------------------------------------------------
       
   117 //
       
   118 EXPORT_C TFsTreeItemId CFsTreeList::InsertItemL( MFsTreeItemData& aItemD,
       
   119                                                  MFsTreeItemVisualizer& aItemV,
       
   120                                                  const TFsTreeItemId aParent,
       
   121                                                  const TInt aIndex,
       
   122                                                  const TBool aAllowRefresh )
       
   123     {
       
   124     FUNC_LOG;
       
   125     iTreeVisualizer->SetAutoRefreshAtInsert( aAllowRefresh );
       
   126     return iTree->InsertItemL(aItemD,aItemV,aParent,aIndex);
       
   127     }
       
   128 
       
   129 // ---------------------------------------------------------------------------
       
   130 // Inserts new node as a child of parent given by Id with the given position.
       
   131 // ---------------------------------------------------------------------------
       
   132 //
       
   133 EXPORT_C TFsTreeItemId CFsTreeList::InsertNodeL( MFsTreeItemData& aItemD,
       
   134                                                  MFsTreeNodeVisualizer& aNodeV,
       
   135                                                  const TFsTreeItemId aParent,
       
   136                                                  const TInt aIndex,
       
   137                                                  const TBool aAllowRefresh )
       
   138     {
       
   139     FUNC_LOG;
       
   140     iTreeVisualizer->SetAutoRefreshAtInsert( aAllowRefresh );
       
   141     return iTree->InsertNodeL(aItemD, aNodeV, aParent, aIndex);
       
   142     }
       
   143 
       
   144 // ---------------------------------------------------------------------------
       
   145 //  Remove all items from the list.
       
   146 // ---------------------------------------------------------------------------
       
   147 //
       
   148 EXPORT_C void CFsTreeList::RemoveL( const TFsTreeItemId aItemId )
       
   149     {
       
   150     FUNC_LOG;
       
   151     iTree->RemoveL(aItemId);
       
   152     }
       
   153 
       
   154 // ---------------------------------------------------------------------------
       
   155 //  Remove all items from the list.
       
   156 // ---------------------------------------------------------------------------
       
   157 //
       
   158 EXPORT_C void CFsTreeList::RemoveAllL()
       
   159     {
       
   160     FUNC_LOG;
       
   161     iTree->RemoveL(KFsTreeRootID);
       
   162     }
       
   163 
       
   164 // ---------------------------------------------------------------------------
       
   165 //  Remove all children of the selected node.
       
   166 // ---------------------------------------------------------------------------
       
   167 //
       
   168 EXPORT_C void CFsTreeList::RemoveChildrenL( const TFsTreeItemId aNodeId )
       
   169     {
       
   170     FUNC_LOG;
       
   171     for ( TInt childIndex = 0; childIndex < iTree->CountChildren(aNodeId);
       
   172                                                     childIndex++ )
       
   173         {
       
   174         iTree->RemoveL(iTree->Child(aNodeId, childIndex));
       
   175         }
       
   176     }
       
   177 
       
   178 
       
   179 // ---------------------------------------------------------------------------
       
   180 //  Moves the item with given Id to the list of children of parent with
       
   181 //  given id
       
   182 // ---------------------------------------------------------------------------
       
   183 //
       
   184 EXPORT_C void CFsTreeList::MoveItemL( const TFsTreeItemId aItemId,
       
   185         const TFsTreeItemId aTargetNode, const TInt aIndex )
       
   186     {
       
   187     FUNC_LOG;
       
   188     TBool subtreeItem = EFalse;
       
   189     TFsTreeItemId treeItem = aTargetNode;
       
   190     while (treeItem!=KFsTreeRootID)
       
   191         {
       
   192         treeItem = iTree->Parent(treeItem);
       
   193         if (treeItem==aItemId)
       
   194             {
       
   195             subtreeItem = ETrue;
       
   196             break;
       
   197             }
       
   198         }
       
   199 
       
   200     if (subtreeItem)
       
   201         {
       
   202         User::Leave(EFsListPanicMovingNodeToItsChild);
       
   203         }
       
   204     else
       
   205         {
       
   206         iTree->MoveL( aItemId, aTargetNode, aIndex );
       
   207         }
       
   208     }
       
   209 
       
   210 // ---------------------------------------------------------------------------
       
   211 //  Checks if a node has children, if parameter is omitted, root of the list
       
   212 //  is checked to indicate if the list is empty.
       
   213 // ---------------------------------------------------------------------------
       
   214 //
       
   215 EXPORT_C TBool CFsTreeList::IsEmpty( const TFsTreeItemId aNodeId ) const
       
   216     {
       
   217     FUNC_LOG;
       
   218     TBool result = ETrue;
       
   219 
       
   220     if (aNodeId == KFsTreeRootID)
       
   221         {
       
   222         if (iTree->Count() > 0)
       
   223             {
       
   224             result = EFalse;
       
   225             }
       
   226         }
       
   227     else
       
   228         {
       
   229         if (iTree->CountChildren(aNodeId) > 0)
       
   230             {
       
   231             result = EFalse;
       
   232             }
       
   233         }
       
   234 
       
   235     return result;
       
   236     }
       
   237 
       
   238 // ---------------------------------------------------------------------------
       
   239 //  Returns the level of an item in tree.
       
   240 // ---------------------------------------------------------------------------
       
   241 //
       
   242 EXPORT_C TUint CFsTreeList::Level( const TFsTreeItemId aItemId ) const
       
   243     {
       
   244     FUNC_LOG;
       
   245     return iTree->Level(aItemId);
       
   246     }
       
   247 
       
   248 // ---------------------------------------------------------------------------
       
   249 //  Remove all children of the selected node.
       
   250 // ---------------------------------------------------------------------------
       
   251 //
       
   252 EXPORT_C TUint CFsTreeList::Count() const
       
   253     {
       
   254     FUNC_LOG;
       
   255     return iTree->Count();
       
   256     }
       
   257 
       
   258 // ---------------------------------------------------------------------------
       
   259 //  Gets the number of children of the given node
       
   260 // ---------------------------------------------------------------------------
       
   261 //
       
   262 EXPORT_C TUint CFsTreeList::CountChildren( const TFsTreeItemId aNodeId ) const
       
   263     {
       
   264     FUNC_LOG;
       
   265     return iTree->CountChildren( aNodeId );
       
   266     }
       
   267 
       
   268 // ---------------------------------------------------------------------------
       
   269 //  Gets the id of a child of the specified node with the position given
       
   270 // ---------------------------------------------------------------------------
       
   271 //
       
   272 EXPORT_C TFsTreeItemId CFsTreeList::Child( const TFsTreeItemId aNodeId,
       
   273                                             const TUint aIndex ) const
       
   274     {
       
   275     FUNC_LOG;
       
   276     return iTree->Child( aNodeId,  aIndex );
       
   277     }
       
   278 
       
   279 // ---------------------------------------------------------------------------
       
   280 //  Gets the index of a child with the specified id.
       
   281 // ---------------------------------------------------------------------------
       
   282 //
       
   283 EXPORT_C TUint CFsTreeList::ChildIndex(const TFsTreeItemId aNodeId,
       
   284         const TFsTreeItemId aItemId ) const
       
   285     {
       
   286     FUNC_LOG;
       
   287     return iTree->ChildIndex(aNodeId, aItemId);
       
   288     }
       
   289 
       
   290 // ---------------------------------------------------------------------------
       
   291 //  Gets the parent's id for the specified item.
       
   292 // ---------------------------------------------------------------------------
       
   293 //
       
   294 EXPORT_C TFsTreeItemId CFsTreeList::Parent(const TFsTreeItemId aItemId) const
       
   295     {
       
   296     FUNC_LOG;
       
   297     return iTree->Parent(aItemId);
       
   298     }
       
   299 
       
   300 // ---------------------------------------------------------------------------
       
   301 //  Checks whether the item with specified id belongs to the list.
       
   302 // ---------------------------------------------------------------------------
       
   303 //
       
   304 EXPORT_C TBool CFsTreeList::Contains( const TFsTreeItemId aItemId ) const
       
   305     {
       
   306     FUNC_LOG;
       
   307     return iTree->Contains(aItemId);
       
   308     }
       
   309 
       
   310 // ---------------------------------------------------------------------------
       
   311 //  Checks if item is node or not.
       
   312 // ---------------------------------------------------------------------------
       
   313 //
       
   314 EXPORT_C TBool CFsTreeList::IsNode( const TFsTreeItemId aItemId ) const
       
   315     {
       
   316     FUNC_LOG;
       
   317     return iTree->IsNode(aItemId);
       
   318     }
       
   319 
       
   320 //---------------------------------------------------------------------------
       
   321 // Sets focus state of list component
       
   322 //---------------------------------------------------------------------------
       
   323 EXPORT_C void CFsTreeList::SetFocusedL( const TBool aFocused )
       
   324     {
       
   325     FUNC_LOG;
       
   326     iListFocused = aFocused;
       
   327     iTreeControl->SetFocused( iListFocused );
       
   328     iTreeVisualizer->SetFocusedL( iListFocused );
       
   329     }
       
   330 
       
   331 //---------------------------------------------------------------------------
       
   332 // Returns state of the focus
       
   333 //---------------------------------------------------------------------------
       
   334 EXPORT_C TBool CFsTreeList::IsFocused() const
       
   335     {
       
   336     FUNC_LOG;
       
   337     return iListFocused;
       
   338     }
       
   339 
       
   340 // ---------------------------------------------------------------------------
       
   341 //  The function sets duration of the slide-in effect.
       
   342 // ---------------------------------------------------------------------------
       
   343 //
       
   344 EXPORT_C void CFsTreeList::SetSlideInDuration ( TInt aTimeMiliseconds )
       
   345     {
       
   346     FUNC_LOG;
       
   347     iTreeVisualizer->SetSlideInDuration ( aTimeMiliseconds );
       
   348     }
       
   349 
       
   350 // ---------------------------------------------------------------------------
       
   351 //  The function returns slide in effect's duration.
       
   352 // ---------------------------------------------------------------------------
       
   353 //
       
   354 EXPORT_C TInt CFsTreeList::SlideInDuration ( ) const
       
   355     {
       
   356     FUNC_LOG;
       
   357     return iTreeVisualizer->SlideInDuration ( );
       
   358     }
       
   359 
       
   360 // ---------------------------------------------------------------------------
       
   361 //  The function sets direction of the slide in effect.
       
   362 // ---------------------------------------------------------------------------
       
   363 //
       
   364 EXPORT_C void CFsTreeList::SetSlideInDirection (
       
   365                                 MFsTreeVisualizer::TFsSlideEffect aDirection )
       
   366     {
       
   367     FUNC_LOG;
       
   368     iTreeVisualizer->SetSlideInDirection ( aDirection );
       
   369     }
       
   370 
       
   371 // ---------------------------------------------------------------------------
       
   372 //  The function returns direction of the slide in effect.
       
   373 // ---------------------------------------------------------------------------
       
   374 //
       
   375 EXPORT_C MFsTreeVisualizer::TFsSlideEffect
       
   376                                        CFsTreeList::SlideInDirection ( ) const
       
   377     {
       
   378     FUNC_LOG;
       
   379     return iTreeVisualizer->SlideInDirection ( );
       
   380     }
       
   381 
       
   382 // ---------------------------------------------------------------------------
       
   383 //  The function sets duration of the slide-out effect.
       
   384 // ---------------------------------------------------------------------------
       
   385 //
       
   386 EXPORT_C void CFsTreeList::SetSlideOutDuration ( TInt aTimeMiliseconds )
       
   387     {
       
   388     FUNC_LOG;
       
   389     iTreeVisualizer->SetSlideOutDuration ( aTimeMiliseconds );
       
   390     }
       
   391 
       
   392 // ---------------------------------------------------------------------------
       
   393 //  The function returns slide out effect's duration.
       
   394 // ---------------------------------------------------------------------------
       
   395 //
       
   396 EXPORT_C TInt CFsTreeList::SlideOutDuration ( ) const
       
   397     {
       
   398     FUNC_LOG;
       
   399     return iTreeVisualizer->SlideOutDuration ( );
       
   400     }
       
   401 
       
   402 // ---------------------------------------------------------------------------
       
   403 //  The function sets direction of the slide out effect.
       
   404 // ---------------------------------------------------------------------------
       
   405 //
       
   406 EXPORT_C void CFsTreeList::SetSlideOutDirection (
       
   407                                 MFsTreeVisualizer::TFsSlideEffect aDirection )
       
   408     {
       
   409     FUNC_LOG;
       
   410     iTreeVisualizer->SetSlideOutDirection ( aDirection );
       
   411     }
       
   412 
       
   413 // ---------------------------------------------------------------------------
       
   414 //  The function returns direction of the slide out effect.
       
   415 // ---------------------------------------------------------------------------
       
   416 //
       
   417 EXPORT_C MFsTreeVisualizer::TFsSlideEffect
       
   418                                       CFsTreeList::SlideOutDirection ( ) const
       
   419     {
       
   420     FUNC_LOG;
       
   421     return iTreeVisualizer->SlideOutDirection ( );
       
   422     }
       
   423 
       
   424 // ---------------------------------------------------------------------------
       
   425 //  Returns information about looping type of the list.
       
   426 // ---------------------------------------------------------------------------
       
   427 //
       
   428 EXPORT_C TFsTreeListLoopingType CFsTreeList::LoopingType() const
       
   429     {
       
   430     FUNC_LOG;
       
   431     TFsTreeListLoopingType loopingType = EFsTreeListLoopingDisabled;
       
   432 
       
   433     if ( iTreeVisualizer )
       
   434         {
       
   435         loopingType = iTreeVisualizer->LoopingType();
       
   436         }
       
   437 
       
   438     return loopingType;
       
   439     }
       
   440 
       
   441 // ---------------------------------------------------------------------------
       
   442 // Returns information whether list is markable, non-markable or
       
   443 // multi-markable
       
   444 // ---------------------------------------------------------------------------
       
   445 //
       
   446 EXPORT_C CFsTreeList::TFsTreeListMarkType CFsTreeList::MarkType() const
       
   447     {
       
   448     FUNC_LOG;
       
   449     return iMarkType;
       
   450     }
       
   451 
       
   452 // ---------------------------------------------------------------------------
       
   453 // OLD API - to be removed.
       
   454 // Returns information about scrollbars used by list visual
       
   455 // ---------------------------------------------------------------------------
       
   456 //
       
   457 EXPORT_C CFsTreeList::TFsTreeListScrollbars CFsTreeList::HasScrollBars() const
       
   458     {
       
   459     FUNC_LOG;
       
   460     return iHasScrollBars;
       
   461     }
       
   462 
       
   463 // ---------------------------------------------------------------------------
       
   464 // Old API - to be removed
       
   465 // Enables or disables scrollbars
       
   466 // ---------------------------------------------------------------------------
       
   467 //
       
   468 EXPORT_C void CFsTreeList::SetScrollBarsL( const TFsTreeListScrollbars aFlag )
       
   469     {
       
   470     FUNC_LOG;
       
   471     iHasScrollBars = aFlag;
       
   472     if ( aFlag == EFsTreeListNoScrollbars )
       
   473         {
       
   474         iTreeVisualizer->SetVScrollBarL( EFalse );
       
   475         }
       
   476     else if ( aFlag == EFsTreeListVerticalScrollbar )
       
   477         {
       
   478         iTreeVisualizer->SetVScrollBarL( ETrue );
       
   479         }
       
   480     }
       
   481 
       
   482 // ---------------------------------------------------------------------------
       
   483 // Returns information about scrollbars used by list visual
       
   484 // ---------------------------------------------------------------------------
       
   485 //
       
   486 EXPORT_C TFsScrollbarVisibility CFsTreeList::ScrollbarVisibility() const
       
   487     {
       
   488     FUNC_LOG;
       
   489     return iTreeVisualizer->ScrollbarVisibility();
       
   490     }
       
   491 
       
   492 // ---------------------------------------------------------------------------
       
   493 // Enables or disables scrollbars
       
   494 // ---------------------------------------------------------------------------
       
   495 //
       
   496 EXPORT_C void CFsTreeList::SetScrollbarVisibilityL(const TFsScrollbarVisibility aVisibility)
       
   497     {
       
   498     FUNC_LOG;
       
   499     iTreeVisualizer->SetScrollBarVisibilityL(aVisibility);
       
   500     }
       
   501 
       
   502 // ---------------------------------------------------------------------------
       
   503 //  Sets type of list's looping.
       
   504 // ---------------------------------------------------------------------------
       
   505 //
       
   506 EXPORT_C void CFsTreeList::SetLoopingType(
       
   507                                    const TFsTreeListLoopingType aLoopingType )
       
   508     {
       
   509     FUNC_LOG;
       
   510     if ( iTreeVisualizer )
       
   511         {
       
   512         iTreeVisualizer->SetLoopingType( aLoopingType );
       
   513         }
       
   514     }
       
   515 
       
   516 // ---------------------------------------------------------------------------
       
   517 // The functions sets fade-in's effect duration.
       
   518 // ---------------------------------------------------------------------------
       
   519 //
       
   520 EXPORT_C void CFsTreeList::SetFadeInEffectTime( TInt aFadeTime )
       
   521     {
       
   522     FUNC_LOG;
       
   523     iTreeVisualizer->SetFadeInEffectTime( aFadeTime );
       
   524     }
       
   525 
       
   526 // ---------------------------------------------------------------------------
       
   527 // The functions returns fade-in's effect duration.
       
   528 // ---------------------------------------------------------------------------
       
   529 //
       
   530 EXPORT_C TInt CFsTreeList::FadeInEffectTime( )
       
   531     {
       
   532     FUNC_LOG;
       
   533     return iTreeVisualizer->FadeInEffectTime( );
       
   534     }
       
   535 
       
   536 // ---------------------------------------------------------------------------
       
   537 // The functions sets fade-out's effect duration.
       
   538 // ---------------------------------------------------------------------------
       
   539 //
       
   540 EXPORT_C void CFsTreeList::SetFadeOutEffectTime( TInt aFadeTime )
       
   541     {
       
   542     FUNC_LOG;
       
   543     iTreeVisualizer->SetFadeOutEffectTime ( aFadeTime );
       
   544     }
       
   545 
       
   546 // ---------------------------------------------------------------------------
       
   547 // The functions returns fade-out's effect duration.
       
   548 // ---------------------------------------------------------------------------
       
   549 //
       
   550 EXPORT_C TInt CFsTreeList::FadeOutEffectTime( )
       
   551     {
       
   552     FUNC_LOG;
       
   553     return iTreeVisualizer->FadeOutEffectTime();
       
   554     }
       
   555 
       
   556 // ---------------------------------------------------------------------------
       
   557 // Function sets the time of list scroll per item and the scroll
       
   558 // acceleration rate.
       
   559 // ---------------------------------------------------------------------------
       
   560 //
       
   561 EXPORT_C void CFsTreeList::SetScrollTime ( TInt aScrollTime,
       
   562                                            TReal aScrollAcceleration )
       
   563     {
       
   564     FUNC_LOG;
       
   565     iTreeVisualizer->SetScrollTime( aScrollTime, aScrollAcceleration );
       
   566     }
       
   567 
       
   568 // ---------------------------------------------------------------------------
       
   569 // Function gets the values of scroll speed and its acceleration rate.
       
   570 // ---------------------------------------------------------------------------
       
   571 //
       
   572 EXPORT_C void CFsTreeList::GetScrollTime( TInt& aScrollTime,
       
   573                                           TReal& aScrollAcceleration )
       
   574     {
       
   575     FUNC_LOG;
       
   576     iTreeVisualizer->GetScrollTime( aScrollTime, aScrollAcceleration );
       
   577     }
       
   578 
       
   579 // ---------------------------------------------------------------------------
       
   580 // Gets the currently focused (highlighted) item id.
       
   581 // ---------------------------------------------------------------------------
       
   582 //
       
   583 EXPORT_C TFsTreeItemId CFsTreeList::FocusedItem() const
       
   584     {
       
   585     FUNC_LOG;
       
   586     return iTreeVisualizer->FocusedItem();
       
   587     }
       
   588 
       
   589 // ---------------------------------------------------------------------------
       
   590 // Sets the focus (highlight) upon the item with given id.
       
   591 // ---------------------------------------------------------------------------
       
   592 //
       
   593 EXPORT_C void CFsTreeList::SetFocusedItemL( const TFsTreeItemId aItemId )
       
   594     {
       
   595     FUNC_LOG;
       
   596     iTreeVisualizer->SetFocusedItemL(aItemId);
       
   597     }
       
   598 
       
   599 // ---------------------------------------------------------------------------
       
   600 //  Checks whether the item with specified id is marked.
       
   601 // ---------------------------------------------------------------------------
       
   602 //
       
   603 EXPORT_C TBool CFsTreeList::IsMarked( const TFsTreeItemId aItemId ) const
       
   604     {
       
   605     FUNC_LOG;
       
   606     return iTreeVisualizer->IsMarked( aItemId );
       
   607     }
       
   608 
       
   609 // ---------------------------------------------------------------------------
       
   610 //  Marks the item.
       
   611 // ---------------------------------------------------------------------------
       
   612 //
       
   613 EXPORT_C void CFsTreeList::MarkItemL( const TFsTreeItemId aItemId, TBool aMarked )
       
   614     {
       
   615     FUNC_LOG;
       
   616     iTreeVisualizer-> MarkItemL( aItemId, aMarked );
       
   617     }
       
   618 
       
   619 // ---------------------------------------------------------------------------
       
   620 // Enables or disables marking of list items.
       
   621 // ---------------------------------------------------------------------------
       
   622 //
       
   623 EXPORT_C void CFsTreeList::SetMarkTypeL( const TFsTreeListMarkType aFlag )
       
   624     {
       
   625     FUNC_LOG;
       
   626     iMarkType = aFlag;
       
   627 
       
   628     switch ( iMarkType )
       
   629     {
       
   630     case EFsTreeListNonMarkable:
       
   631         {
       
   632         iTreeVisualizer->MarkAllItemsL( EFalse );
       
   633         break;
       
   634         }
       
   635     case EFsTreeListMarkable:
       
   636         {
       
   637         RArray<TFsTreeItemId> markedItems;
       
   638         iTreeVisualizer->GetMarkedItemsL( markedItems );
       
   639         iTreeVisualizer->MarkAllItemsL( EFalse );
       
   640         if ( markedItems.Count() > 0 )
       
   641             {
       
   642             iTreeVisualizer->MarkItemL( markedItems[0], ETrue );
       
   643             }
       
   644         break;
       
   645         }
       
   646     case EFsTreeListMultiMarkable:
       
   647         {
       
   648         break;
       
   649         }
       
   650     }
       
   651     }
       
   652 
       
   653 // ---------------------------------------------------------------------------
       
   654 //  Get items indentation in pixels.
       
   655 // ---------------------------------------------------------------------------
       
   656 //
       
   657 EXPORT_C TInt CFsTreeList::Indentation() const
       
   658     {
       
   659     FUNC_LOG;
       
   660     return iTreeVisualizer->Indentation();
       
   661     }
       
   662 
       
   663 // ---------------------------------------------------------------------------
       
   664 //  Set items indentation in pixels.
       
   665 // ---------------------------------------------------------------------------
       
   666 //
       
   667 EXPORT_C void CFsTreeList::SetIndentationL( const TInt aIndentation )
       
   668     {
       
   669     FUNC_LOG;
       
   670     iTreeVisualizer->SetIndentationL( aIndentation );
       
   671     }
       
   672 
       
   673 // ---------------------------------------------------------------------------
       
   674 //  The functions sets wether all item in the list should be always in
       
   675 //  extended state or in normal state.
       
   676 // ---------------------------------------------------------------------------
       
   677 //
       
   678 EXPORT_C void CFsTreeList::SetItemsAlwaysExtendedL ( TBool aAlwaysExtended )
       
   679     {
       
   680     FUNC_LOG;
       
   681     iTreeVisualizer->SetItemsAlwaysExtendedL ( aAlwaysExtended );
       
   682     }
       
   683 
       
   684 // ---------------------------------------------------------------------------
       
   685 //  The function returns if items are always in extended state or in normal.
       
   686 // ---------------------------------------------------------------------------
       
   687 //
       
   688 EXPORT_C TBool CFsTreeList::IsItemsAlwaysExtended ( )
       
   689     {
       
   690     FUNC_LOG;
       
   691     TBool alwaysExtended = EFalse;
       
   692     alwaysExtended = iTreeVisualizer->IsItemsAlwaysExtended();
       
   693     return alwaysExtended;
       
   694     }
       
   695 
       
   696 // ---------------------------------------------------------------------------
       
   697 //  C++ constructor.
       
   698 // ---------------------------------------------------------------------------
       
   699 //
       
   700 EXPORT_C CFsTreeList::CFsTreeList( CAlfEnv& aEnv, CFsTreeVisualizerBase& aTreeV )
       
   701     : iEnv(&aEnv),
       
   702       iListFocused (ETrue)
       
   703     {
       
   704     FUNC_LOG;
       
   705     iTreeVisualizer = &aTreeV;
       
   706     }
       
   707 
       
   708 // ---------------------------------------------------------------------------
       
   709 //  Second phase constructor.
       
   710 // ---------------------------------------------------------------------------
       
   711 //
       
   712 EXPORT_C void CFsTreeList::ConstructL( CAlfEnv& aEnv )
       
   713     {
       
   714     FUNC_LOG;
       
   715     iTextStyleManager = CFsAlfTextStyleManager::NewL( aEnv.TextStyleManager() );
       
   716     iTree = CFsTree::NewL(*iTreeVisualizer, *(iTreeVisualizer->RootItemData()),
       
   717                                       *(iTreeVisualizer->RootNodeVisualizer()));
       
   718     iTreeVisualizer->SetTreeData(*iTree);
       
   719     iTreeControl = CFsTreeControl::NewL(aEnv, *iTree, *iTreeVisualizer);
       
   720     iTreeVisualizer->ShowListL( EFalse );
       
   721     iTreeVisualizer->SetVisualizerObserver( this );
       
   722     }
       
   723 
       
   724 // ---------------------------------------------------------------------------
       
   725 //  Expand the node.
       
   726 // ---------------------------------------------------------------------------
       
   727 //
       
   728 EXPORT_C void CFsTreeList::ExpandNodeL( const TFsTreeItemId aNodeId )
       
   729     {
       
   730     FUNC_LOG;
       
   731     iTreeVisualizer->ExpandNodeL(aNodeId);
       
   732     }
       
   733 
       
   734 // ---------------------------------------------------------------------------
       
   735 //  Collapse the node.
       
   736 // ---------------------------------------------------------------------------
       
   737 //
       
   738 EXPORT_C void CFsTreeList::CollapseNodeL( const TFsTreeItemId aNodeId )
       
   739     {
       
   740     FUNC_LOG;
       
   741     iTreeVisualizer->CollapseNodeL(aNodeId);
       
   742     }
       
   743 
       
   744 // ---------------------------------------------------------------------------
       
   745 //  Copy the list of marked items.
       
   746 // ---------------------------------------------------------------------------
       
   747 //
       
   748 EXPORT_C void CFsTreeList::GetMarkedItemsL(
       
   749                                        RFsTreeItemIdList& aMarkedItems ) const
       
   750     {
       
   751     FUNC_LOG;
       
   752     iTreeVisualizer->GetMarkedItemsL(aMarkedItems);
       
   753     }
       
   754 
       
   755 // ---------------------------------------------------------------------------
       
   756 //  Gets the reference to the item/node data (const).
       
   757 // ---------------------------------------------------------------------------
       
   758 //
       
   759 EXPORT_C MFsTreeItemData& CFsTreeList::ItemData(
       
   760         const TFsTreeItemId aItemId) const
       
   761     {
       
   762     FUNC_LOG;
       
   763     return iTree->ItemData(aItemId);
       
   764     }
       
   765 
       
   766 // ---------------------------------------------------------------------------
       
   767 //  Sets the reference to the item/node data.
       
   768 // ---------------------------------------------------------------------------
       
   769 //
       
   770 EXPORT_C void CFsTreeList::SetItemDataL( MFsTreeItemData& aData,
       
   771         const TFsTreeItemId aItemId )
       
   772     {
       
   773     FUNC_LOG;
       
   774     MFsTreeItemData* data = &iTree->ItemData(aItemId);
       
   775     delete data;
       
   776     iTree->SetItemData(aData, aItemId);
       
   777     iTreeVisualizer->TreeEventL(
       
   778             MFsTreeObserver::EFsTreeItemDataChanged,
       
   779             MFsTreeObserver::TFsTreeEventParams(aItemId, KFsTreeNoneID, -1) );
       
   780     }
       
   781 
       
   782 // ---------------------------------------------------------------------------
       
   783 //  Gets the reference to the item visualizer (const).
       
   784 // ---------------------------------------------------------------------------
       
   785 //
       
   786 EXPORT_C MFsTreeItemVisualizer& CFsTreeList::ItemVisualizer(
       
   787         const TFsTreeItemId aItemId ) const
       
   788     {
       
   789     FUNC_LOG;
       
   790     return *iTree->ItemVisualizer(aItemId);
       
   791     }
       
   792 
       
   793 // ---------------------------------------------------------------------------
       
   794 //  Sets the pointer to the item visualizer and refreshes item.
       
   795 // ---------------------------------------------------------------------------
       
   796 //
       
   797 EXPORT_C void CFsTreeList::SetItemVisualizerL(
       
   798         MFsTreeItemVisualizer& aVisualizer,
       
   799         const TFsTreeItemId aItemId )
       
   800     {
       
   801     FUNC_LOG;
       
   802     MFsTreeItemVisualizer* visualizer = iTree->ItemVisualizer(aItemId);
       
   803     visualizer->Hide(iTreeVisualizer->ItemExpansionDelay());
       
   804     delete visualizer;
       
   805     iTree->SetItemVisualizer(aVisualizer, aItemId);
       
   806     iTreeVisualizer->TreeEventL(
       
   807             MFsTreeObserver::EFsTreeItemVisualizerChanged,
       
   808             MFsTreeObserver::TFsTreeEventParams(aItemId, KFsTreeNoneID, -1));
       
   809     }
       
   810 
       
   811 // ---------------------------------------------------------------------------
       
   812 //  Check whether the node is expanded or collapsed.
       
   813 // ---------------------------------------------------------------------------
       
   814 //
       
   815 EXPORT_C TBool CFsTreeList::IsExpanded( const TFsTreeItemId aNodeId )
       
   816     {
       
   817     FUNC_LOG;
       
   818     return iTree->NodeVisualizer(aNodeId)->IsExpanded();
       
   819     }
       
   820 
       
   821 // ---------------------------------------------------------------------------
       
   822 //  Gets the reference to the tree visualizer
       
   823 // ---------------------------------------------------------------------------
       
   824 //
       
   825 EXPORT_C CFsTreeVisualizerBase& CFsTreeList::TreeVisualizer() const
       
   826     {
       
   827     FUNC_LOG;
       
   828     return *iTreeVisualizer;
       
   829     }
       
   830 
       
   831 // ---------------------------------------------------------------------------
       
   832 //  Sets a tree visualizer for the list
       
   833 // ---------------------------------------------------------------------------
       
   834 //
       
   835 EXPORT_C void CFsTreeList::SetTreeVisualizer( CFsTreeVisualizerBase& aTreeV )
       
   836     {
       
   837     FUNC_LOG;
       
   838     iTreeVisualizer = &aTreeV;
       
   839 
       
   840     if (iTree)
       
   841         {
       
   842         iTreeVisualizer->SetTreeData(*iTree);
       
   843         }
       
   844 
       
   845     }
       
   846 
       
   847 // ---------------------------------------------------------------------------
       
   848 //  Shows the list visual
       
   849 // ---------------------------------------------------------------------------
       
   850 //
       
   851 EXPORT_C void CFsTreeList::ShowListL( const TBool aFadeIn,
       
   852                                       const TBool aSlideIn )
       
   853     {
       
   854     FUNC_LOG;
       
   855     //SetFocusedL(ETrue);
       
   856     iTreeVisualizer->ShowListL( aFadeIn, aSlideIn );
       
   857     }
       
   858 
       
   859 // ---------------------------------------------------------------------------
       
   860 //  Shows the list visual
       
   861 // ---------------------------------------------------------------------------
       
   862 //
       
   863 EXPORT_C void CFsTreeList::SetDirectTouchMode( const TBool aDirectTouchMode )
       
   864     {
       
   865     FUNC_LOG;
       
   866     iTreeVisualizer->SetDirectTouchMode( aDirectTouchMode );
       
   867     }
       
   868 
       
   869 
       
   870 // ---------------------------------------------------------------------------
       
   871 //  Hides the list visual
       
   872 // ---------------------------------------------------------------------------
       
   873 //
       
   874 EXPORT_C void CFsTreeList::HideListL( const TBool aFadeOut,
       
   875                                      const TBool aSlideOut )
       
   876     {
       
   877     FUNC_LOG;
       
   878     //SetFocusedL(EFalse);
       
   879     iTreeVisualizer->HideList( aFadeOut, aSlideOut );
       
   880     }
       
   881 
       
   882 // ---------------------------------------------------------------------------
       
   883 //  Sets visiblity of the border
       
   884 // ---------------------------------------------------------------------------
       
   885 //
       
   886 EXPORT_C void CFsTreeList::SetBorderL( const TBool aVisible,
       
   887     CAlfTexture* aBorderTexture )
       
   888     {
       
   889     FUNC_LOG;
       
   890     iTreeVisualizer->SetBorderL( aVisible, aBorderTexture );
       
   891     }
       
   892 
       
   893 // ---------------------------------------------------------------------------
       
   894 //  Sets visiblity of the border
       
   895 // ---------------------------------------------------------------------------
       
   896 //
       
   897 EXPORT_C void CFsTreeList::SetShadowL( const TBool aVisible )
       
   898     {
       
   899     FUNC_LOG;
       
   900     iTreeVisualizer->SetShadowL( aVisible );
       
   901     }
       
   902 
       
   903 // ---------------------------------------------------------------------------
       
   904 //
       
   905 // ---------------------------------------------------------------------------
       
   906 //
       
   907 EXPORT_C TInt CFsTreeList::GetItemDisplayRectTarget ( const TFsTreeItemId aItemId, TAlfRealRect& aRect )
       
   908     {
       
   909     FUNC_LOG;
       
   910     TInt retVal(KErrNotFound);
       
   911     if (iTree->Contains( aItemId ))
       
   912         {
       
   913         retVal = iTreeVisualizer->GetItemDisplayRectTarget( aItemId, aRect );
       
   914         }
       
   915     return retVal;
       
   916     }
       
   917 
       
   918 // ---------------------------------------------------------------------------
       
   919 //  Returns pointer to the menu list assigned to the item
       
   920 // ---------------------------------------------------------------------------
       
   921 //
       
   922 EXPORT_C CFsTreeList* CFsTreeList::ItemMenu(
       
   923     TFsTreeItemId aItemId )
       
   924     {
       
   925     FUNC_LOG;
       
   926     return iTree->ItemVisualizer(aItemId)->Menu();
       
   927     }
       
   928 
       
   929 // ---------------------------------------------------------------------------
       
   930 //  Retrieves events from tree visualizer
       
   931 // ---------------------------------------------------------------------------
       
   932 //
       
   933 // <cmail> Touch
       
   934 EXPORT_C void CFsTreeList::TreeVisualizerEventL(
       
   935         const TFsTreeVisualizerEvent aEvent,
       
   936         const TFsTreeItemId aId ) const
       
   937 // </cmail>
       
   938     {
       
   939     FUNC_LOG;
       
   940     MFsTreeListObserver::TFsTreeListEvent listEvent;
       
   941 
       
   942     switch ( aEvent )
       
   943     {
       
   944     // <cmail> "Base class modifications for using touch"
       
   945     case MFsTreeVisualizerObserver::EFsTreeItemTouchAction:
       
   946         {
       
   947         listEvent = MFsTreeListObserver::EFsTreeListItemTouchAction;
       
   948         break;
       
   949         }
       
   950     case MFsTreeVisualizerObserver::EFsTreeItemTouchLongTap:
       
   951         {
       
   952         listEvent = MFsTreeListObserver::EFsTreeListItemTouchLongTap;
       
   953         break;
       
   954         }
       
   955     case MFsTreeVisualizerObserver::EFsTreeItemTouchFocused:
       
   956         {
       
   957         listEvent = MFsTreeListObserver::EFsTreeListItemTouchFocused;
       
   958         break;
       
   959         }
       
   960 
       
   961     // </cmail>
       
   962 
       
   963     case MFsTreeVisualizerObserver::EFsTreeItemSelected:
       
   964         {
       
   965         listEvent = MFsTreeListObserver::EFsTreeItemSelected;
       
   966         break;
       
   967         }
       
   968     case MFsTreeVisualizerObserver::EFsTreeItemWithMenuSelected:
       
   969         {
       
   970         listEvent = MFsTreeListObserver::EFsTreeItemWithMenuSelected;
       
   971         break;
       
   972         }
       
   973     case MFsTreeVisualizerObserver::EFsTreeKeyRightArrow:
       
   974         {
       
   975         listEvent = MFsTreeListObserver::EFsTreeListKeyRightArrow;
       
   976         break;
       
   977         }
       
   978     case MFsTreeVisualizerObserver::EFsTreeKeyLeftArrow:
       
   979         {
       
   980         listEvent = MFsTreeListObserver::EFsTreeListKeyLeftArrow;
       
   981         break;
       
   982         }
       
   983     case MFsTreeVisualizerObserver::EFsTreeListVisualizerShown:
       
   984         {
       
   985         listEvent = MFsTreeListObserver::EFsTreeListShown;
       
   986         break;
       
   987         }
       
   988     case MFsTreeVisualizerObserver::EFsTreeListVisualizerHidden:
       
   989         {
       
   990         listEvent = MFsTreeListObserver::EFsTreeListHidden;
       
   991         break;
       
   992         }
       
   993     case MFsTreeVisualizerObserver::EFsTreeItemWillGetFocused:
       
   994         {
       
   995         listEvent = MFsTreeListObserver::EFsTreeListItemWillGetFocused;
       
   996         break;
       
   997         }
       
   998 
       
   999     // <cmail>
       
  1000     // Pass on the collapse/expand events.
       
  1001     case MFsTreeVisualizerObserver::EFsTreeListItemCollapsed:
       
  1002         {
       
  1003         listEvent = MFsTreeListObserver::EFsTreeListItemCollapsed;
       
  1004         break;
       
  1005         }
       
  1006     case MFsTreeVisualizerObserver::EFsTreeListItemExpanded:
       
  1007         {
       
  1008         listEvent = MFsTreeListObserver::EFsTreeListItemExpanded;
       
  1009         break;
       
  1010         }
       
  1011     case MFsTreeVisualizerObserver::EFsTreeListCollapsedAll:
       
  1012         {
       
  1013         listEvent = MFsTreeListObserver::EFsTreeListCollapsedAll;
       
  1014         break;
       
  1015         }
       
  1016     case MFsTreeVisualizerObserver::EFsTreeListExpandedAll:
       
  1017         {
       
  1018         listEvent = MFsTreeListObserver::EFsTreeListExpandedAll;
       
  1019         break;
       
  1020         }
       
  1021     // </cmail>
       
  1022 
       
  1023     default:
       
  1024         {
       
  1025         return;
       
  1026         }
       
  1027     }
       
  1028 
       
  1029     for ( TInt c = 0; c < iObservers.Count(); c++ )
       
  1030         {
       
  1031         // <cmail> Touch
       
  1032         iObservers[c]->TreeListEventL(
       
  1033             listEvent,
       
  1034             aId);
       
  1035         // </cmail>
       
  1036         }
       
  1037     }
       
  1038 
       
  1039 // ---------------------------------------------------------------------------
       
  1040 // Gets the reference to the text style manager.
       
  1041 // ---------------------------------------------------------------------------
       
  1042 EXPORT_C CFsAlfTextStyleManager& CFsTreeList::TextStyleManager() const
       
  1043     {
       
  1044     FUNC_LOG;
       
  1045     return *iTextStyleManager;
       
  1046     }
       
  1047 
       
  1048 
       
  1049 // ---------------------------------------------------------------------------
       
  1050 //  Sets the type of text marquee.
       
  1051 // ---------------------------------------------------------------------------
       
  1052 //
       
  1053 EXPORT_C void CFsTreeList::SetTextMarqueeType(const TFsTextMarqueeType aMarquee)
       
  1054     {
       
  1055     FUNC_LOG;
       
  1056     iTreeVisualizer->SetTextMarqueeType( aMarquee );
       
  1057     }
       
  1058 
       
  1059 
       
  1060 // ---------------------------------------------------------------------------
       
  1061 //  Returns the type of text marquee.
       
  1062 // ---------------------------------------------------------------------------
       
  1063 //
       
  1064 EXPORT_C TFsTextMarqueeType CFsTreeList::TextMarqueeType() const
       
  1065     {
       
  1066     FUNC_LOG;
       
  1067     return iTreeVisualizer->TextMarqueeType();
       
  1068     }
       
  1069 
       
  1070 
       
  1071 // ---------------------------------------------------------------------------
       
  1072 //  Sets the speed of marquee.
       
  1073 // ---------------------------------------------------------------------------
       
  1074 //
       
  1075 EXPORT_C void CFsTreeList::SetTextMarqueeSpeed ( const TInt aPixelsPerSec )
       
  1076     {
       
  1077     FUNC_LOG;
       
  1078     iTreeVisualizer->SetTextMarqueeSpeed ( aPixelsPerSec );
       
  1079     }
       
  1080 
       
  1081 
       
  1082 // ---------------------------------------------------------------------------
       
  1083 //  Returns the speed of marquee.
       
  1084 // ---------------------------------------------------------------------------
       
  1085 //
       
  1086 EXPORT_C TInt CFsTreeList::TextMarqueeSpeed ( ) const
       
  1087     {
       
  1088     FUNC_LOG;
       
  1089     return iTreeVisualizer->TextMarqueeSpeed( );
       
  1090     }
       
  1091 
       
  1092 
       
  1093 // ---------------------------------------------------------------------------
       
  1094 //  Sets delay for text marquee start.
       
  1095 // ---------------------------------------------------------------------------
       
  1096 //
       
  1097 EXPORT_C void CFsTreeList::SetTextMarqueeStartDelay ( const TInt aStartDelay )
       
  1098     {
       
  1099     FUNC_LOG;
       
  1100     iTreeVisualizer->SetTextMarqueeStartDelay ( aStartDelay );
       
  1101     }
       
  1102 
       
  1103 
       
  1104 // ---------------------------------------------------------------------------
       
  1105 //  Returns delay for text marquee.
       
  1106 // ---------------------------------------------------------------------------
       
  1107 //
       
  1108 EXPORT_C TInt CFsTreeList::TextMarqueeStartDelay () const
       
  1109     {
       
  1110     FUNC_LOG;
       
  1111     return iTreeVisualizer->TextMarqueeStartDelay( );
       
  1112     }
       
  1113 
       
  1114 
       
  1115 // ---------------------------------------------------------------------------
       
  1116 //  Sets a delay for each cycle start.
       
  1117 // ---------------------------------------------------------------------------
       
  1118 //
       
  1119 EXPORT_C void CFsTreeList::SetTextMarqueeCycleStartDelay ( const TInt aCycleStartDelay )
       
  1120     {
       
  1121     FUNC_LOG;
       
  1122     iTreeVisualizer->SetTextMarqueeCycleStartDelay ( aCycleStartDelay );
       
  1123     }
       
  1124 
       
  1125 
       
  1126 // ---------------------------------------------------------------------------
       
  1127 //  Returns a delay for each cycle start.
       
  1128 // ---------------------------------------------------------------------------
       
  1129 //
       
  1130 EXPORT_C TInt CFsTreeList::TextMarqueeCycleStartDelay () const
       
  1131     {
       
  1132     FUNC_LOG;
       
  1133     return iTreeVisualizer->TextMarqueeCycleStartDelay( );
       
  1134     }
       
  1135 
       
  1136 
       
  1137 // ---------------------------------------------------------------------------
       
  1138 //  Sets number of marquee cycles.
       
  1139 // ---------------------------------------------------------------------------
       
  1140 //
       
  1141 EXPORT_C void CFsTreeList::SetTextMarqueeRepetitions ( const TInt aMarqueeRepetitions )
       
  1142     {
       
  1143     FUNC_LOG;
       
  1144     iTreeVisualizer->SetTextMarqueeRepetitions ( aMarqueeRepetitions );
       
  1145     }
       
  1146 
       
  1147 
       
  1148 // ---------------------------------------------------------------------------
       
  1149 //  Returns number of marquee cycles.
       
  1150 // ---------------------------------------------------------------------------
       
  1151 //
       
  1152 EXPORT_C TInt CFsTreeList::TextMarqueeRepetitions ( ) const
       
  1153     {
       
  1154     FUNC_LOG;
       
  1155     return iTreeVisualizer->TextMarqueeRepetitions( );
       
  1156     }
       
  1157 
       
  1158 // ---------------------------------------------------------------------------
       
  1159 //  Returns number of marquee cycles.
       
  1160 // ---------------------------------------------------------------------------
       
  1161 //
       
  1162 EXPORT_C void CFsTreeList::DisableKineticScrolling( TBool aDisable )
       
  1163     {
       
  1164     iTreeVisualizer->DisableKineticScrolling( aDisable );
       
  1165     }
       
  1166 
       
  1167 //EOF
       
  1168