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; |