uifw/AvKon/aknhlist/src/akntreelistphysicshandler.cpp
changeset 14 3320e4e6e8bb
parent 0 2f259fa3e83a
equal deleted inserted replaced
0:2f259fa3e83a 14:3320e4e6e8bb
   291             {
   291             {
   292             // touch down has occured on an item, which requires feedback
   292             // touch down has occured on an item, which requires feedback
   293             // also on up event -> play basic list feedback
   293             // also on up event -> play basic list feedback
   294             if ( iFeedback )
   294             if ( iFeedback )
   295                  {
   295                  {
   296                  TTouchLogicalFeedback fbType = ETouchFeedbackList;
   296                  TTouchLogicalFeedback fbType = ETouchFeedbackBasicItem;
   297                  if ( iItemToBeSelected != NULL )
   297                  if ( iItemToBeSelected != NULL )
   298                      {
   298                      {
   299                      if ( iItemToBeSelected->IsLeaf() && iItemToBeSelected->IsMarkable() )
   299                      if ( iItemToBeSelected->IsLeaf() && iItemToBeSelected->IsMarkable() )
   300                          {
   300                          {
   301                          fbType = ETouchFeedbackCheckbox;
   301                          fbType = ETouchFeedbackCheckbox;
   395                         if ( item->Node() )
   395                         if ( item->Node() )
   396                             {
   396                             {
   397                             // item is a non-focused node, play basic list
   397                             // item is a non-focused node, play basic list
   398                             // feedback
   398                             // feedback
   399                             iFeedback->InstantFeedback( iTreeListView, 
   399                             iFeedback->InstantFeedback( iTreeListView, 
   400                                                         ETouchFeedbackList );
   400                                                         ETouchFeedbackBasicItem );
   401                             
   401                             
   402                             // next up event causes for the node to collapse,
   402                             // next up event causes for the node to collapse,
   403                             // play feedback on up event
   403                             // play feedback on up event
   404                             iPlayFeedbackOnUp = ETrue;
   404                             iPlayFeedbackOnUp = ETrue;
   405                             }
   405                             }
   406                         else
   406                         else
   407                             {
   407                             {
   408                             // item is a non-focused leaf, play sensitive 
   408                             // item is a non-focused leaf, play sensitive 
   409                             // feedback
   409                             // feedback
   410                             iFeedback->InstantFeedback( iTreeListView, 
   410                             iFeedback->InstantFeedback( iTreeListView, 
   411                                                         ETouchFeedbackSensitiveList );
   411                                                         ETouchFeedbackSensitiveItem );
   412                             }
   412                             }
   413                         }
   413                         }
   414                     }
   414                     }
   415                  // item will be selected only if flicking was not ongoing   
   415                  // item will be selected only if flicking was not ongoing   
   416                  else if ( !wasFlicking )
   416                  else if ( !wasFlicking )
   420                     iFlags.Set( EFlagPDHighlightToFocusedItem );
   420                     iFlags.Set( EFlagPDHighlightToFocusedItem );
   421                     // touch down on focused item, while not flicking
   421                     // touch down on focused item, while not flicking
   422                     if ( iFeedback )
   422                     if ( iFeedback )
   423                         {
   423                         {
   424                         iFeedback->InstantFeedback( iTreeListView,
   424                         iFeedback->InstantFeedback( iTreeListView,
   425                                                     ETouchFeedbackList );
   425                                                     ETouchFeedbackBasicItem );
   426                         
   426                         
   427                         // next up event cause an action on the screen,
   427                         // next up event cause an action on the screen,
   428                         // play feedback on up event
   428                         // play feedback on up event
   429                         iPlayFeedbackOnUp = ETrue;
   429                         iPlayFeedbackOnUp = ETrue;
   430                         }
   430                         }
   550 // CAknTreeListPhysicsHandler::SetItemHeight
   550 // CAknTreeListPhysicsHandler::SetItemHeight
   551 // ---------------------------------------------------------------------------
   551 // ---------------------------------------------------------------------------
   552 //
   552 //
   553 void CAknTreeListPhysicsHandler::SetItemHeight( const TInt& aHeight )
   553 void CAknTreeListPhysicsHandler::SetItemHeight( const TInt& aHeight )
   554     {
   554     {
   555     if( iScrollIndex > 0 && iItemHeight > 0 && aHeight != iItemHeight )
       
   556         {
       
   557         iScrollIndex = ( iScrollIndex / iItemHeight ) * aHeight;
       
   558         }
       
   559     iItemHeight = aHeight;
   555     iItemHeight = aHeight;
   560     }
   556     }
   561 
   557 
   562 
   558 
   563 // ---------------------------------------------------------------------------
   559 // ---------------------------------------------------------------------------
   888             {
   884             {
   889             if ( bottomItem != iOldBottomItem )
   885             if ( bottomItem != iOldBottomItem )
   890                 {
   886                 {
   891                 if ( bottomItem != iTree->VisibleItemCount() - 1 )
   887                 if ( bottomItem != iTree->VisibleItemCount() - 1 )
   892                     iFeedback->InstantFeedback( iTreeListView,
   888                     iFeedback->InstantFeedback( iTreeListView,
   893                                                 ETouchFeedbackSensitiveList,
   889                                                 ETouchFeedbackSensitiveItem,
   894                                                 feedbackType,
   890                                                 feedbackType,
   895                                                 TPointerEvent() );
   891                                                 TPointerEvent() );
   896                 }
   892                 }
   897             }
   893             }
   898         else if ( bottomItem == iTree->VisibleItemCount() )
   894         else if ( bottomItem == iTree->VisibleItemCount() )
   899             {
   895             {
   900             if ( upperItem != iOldTopItem )
   896             if ( upperItem != iOldTopItem )
   901                 {
   897                 {
   902                 iFeedback->InstantFeedback( iTreeListView,
   898                 iFeedback->InstantFeedback( iTreeListView,
   903                                             ETouchFeedbackSensitiveList,
   899                                             ETouchFeedbackSensitiveItem,
   904                                             feedbackType,
   900                                             feedbackType,
   905                                             TPointerEvent() );
   901                                             TPointerEvent() );
   906                 }
   902                 }
   907             }
   903             }
   908         else if ( upperItem >= 0 || bottomItem < iTree->VisibleItemCount() )
   904         else if ( upperItem >= 0 || bottomItem < iTree->VisibleItemCount() )
   909             {
   905             {
   910             if ( upperItem < iOldTopItem || bottomItem > iOldBottomItem )
   906             if ( upperItem < iOldTopItem || bottomItem > iOldBottomItem )
   911                 {
   907                 {
   912                 iFeedback->InstantFeedback( iTreeListView,
   908                 iFeedback->InstantFeedback( iTreeListView,
   913                                             ETouchFeedbackSensitiveList,
   909                                             ETouchFeedbackSensitiveItem,
   914                                             feedbackType,
   910                                             feedbackType,
   915                                             TPointerEvent() );
   911                                             TPointerEvent() );
   916                 }
   912                 }
   917             }
   913             }
   918             iOldTopItem = upperItem;
   914             iOldTopItem = upperItem;