| 653 | } |
| 654 | |
| 655 | void SListView::EnsureVisible( int iItem ) |
| 656 | { |
| 657 | if(iItem<0 || iItem>=m_adapter->getCount()) return; |
| 658 | |
| 659 | int iFirstVisible= m_iFirstVisible; |
| 660 | int iLastVisible = m_iFirstVisible + (int)m_lstItems.GetCount(); |
| 661 | |
| 662 | if(iItem>=iFirstVisible && iItem<iLastVisible) |
| 663 | { |
| 664 | if(iItem == iFirstVisible) |
| 665 | { |
| 666 | int pos = m_lvItemLocator->Item2Position(iItem); |
| 667 | OnScroll(TRUE,SB_THUMBPOSITION,pos); |
| 668 | }else if(iItem == iLastVisible-1) |
| 669 | { |
| 670 | if(iItem == m_adapter->getCount()-1) |
| 671 | OnScroll(TRUE,SB_BOTTOM,0); |
| 672 | else |
| 673 | { |
| 674 | int pos = m_lvItemLocator->Item2Position(iItem+1) - m_siVer.nPage; |
| 675 | OnScroll(TRUE,SB_THUMBPOSITION,pos); |
| 676 | } |
| 677 | } |
| 678 | |
| 679 | return; |
| 680 | } |
| 681 | |
| 682 | |
| 683 | if(iItem < iFirstVisible) |
| 684 | {//scroll up |
| 685 | int pos = m_lvItemLocator->Item2Position(iItem); |
| 686 | OnScroll(TRUE,SB_THUMBPOSITION,pos); |
| 687 | }else // if(iItem >= iLastVisible) |
| 688 | {//scroll down |
| 689 | if(iItem == m_adapter->getCount()-1) |
| 690 | { |
| 691 | OnScroll(TRUE,SB_BOTTOM,0); |
| 692 | }else |
| 693 | { |
| 694 | int pos = m_lvItemLocator->Item2Position(iItem+1)-m_siVer.nPage; |
| 695 | OnScroll(TRUE,SB_THUMBPOSITION,pos); |
| 696 | } |
| 697 | } |
| 698 | } |
| 699 | |
| 700 | BOOL SListView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) |
| 701 | { |
nothing calls this directly
no test coverage detected