MCPcopy Create free account
hub / github.com/SOUI2/soui / EnsureVisible

Method EnsureVisible

SOUI/src/control/SListView.cpp:655–698  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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 {

Callers

nothing calls this directly

Calls 3

getCountMethod · 0.45
GetCountMethod · 0.45
Item2PositionMethod · 0.45

Tested by

no test coverage detected