MCPcopy Create free account
hub / github.com/cinience/RedisStudio / ProcessScrollBar

Method ProcessScrollBar

DuiLib/Core/UIContainer.cpp:761–807  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

759 }
760
761 void CContainerUI::ProcessScrollBar(RECT rc, int cxRequired, int cyRequired)
762 {
763 if( m_pHorizontalScrollBar != NULL && m_pHorizontalScrollBar->IsVisible() ) {
764 RECT rcScrollBarPos = { rc.left, rc.bottom, rc.right, rc.bottom + m_pHorizontalScrollBar->GetFixedHeight()};
765 m_pHorizontalScrollBar->SetPos(rcScrollBarPos);
766 }
767
768 if( m_pVerticalScrollBar == NULL ) return;
769
770 if( cyRequired > rc.bottom - rc.top && !m_pVerticalScrollBar->IsVisible() ) {
771 m_pVerticalScrollBar->SetVisible(true);
772 m_pVerticalScrollBar->SetScrollRange(cyRequired - (rc.bottom - rc.top));
773 m_pVerticalScrollBar->SetScrollPos(0);
774 m_bScrollProcess = true;
775 SetPos(m_rcItem);
776 m_bScrollProcess = false;
777 return;
778 }
779 // No scrollbar required
780 if( !m_pVerticalScrollBar->IsVisible() ) return;
781
782 // Scroll not needed anymore?
783 int cyScroll = cyRequired - (rc.bottom - rc.top);
784 if( cyScroll <= 0 && !m_bScrollProcess) {
785 m_pVerticalScrollBar->SetVisible(false);
786 m_pVerticalScrollBar->SetScrollPos(0);
787 m_pVerticalScrollBar->SetScrollRange(0);
788 SetPos(m_rcItem);
789 }
790 else
791 {
792 RECT rcScrollBarPos = { rc.right, rc.top, rc.right + m_pVerticalScrollBar->GetFixedWidth(), rc.bottom };
793 m_pVerticalScrollBar->SetPos(rcScrollBarPos);
794
795 if( m_pVerticalScrollBar->GetScrollRange() != cyScroll ) {
796 int iScrollPos = m_pVerticalScrollBar->GetScrollPos();
797 m_pVerticalScrollBar->SetScrollRange(::abs(cyScroll));
798 if( m_pVerticalScrollBar->GetScrollRange() == 0 ) {
799 m_pVerticalScrollBar->SetVisible(false);
800 m_pVerticalScrollBar->SetScrollPos(0);
801 }
802 if( iScrollPos > m_pVerticalScrollBar->GetScrollPos() ) {
803 SetPos(m_rcItem);
804 }
805 }
806 }
807 }
808
809 bool CContainerUI::SetSubControlText( LPCTSTR pstrSubControlName,LPCTSTR pstrText )
810 {

Callers

nothing calls this directly

Calls 9

IsVisibleMethod · 0.80
GetFixedHeightMethod · 0.80
SetScrollRangeMethod · 0.80
GetFixedWidthMethod · 0.80
SetPosMethod · 0.45
SetVisibleMethod · 0.45
SetScrollPosMethod · 0.45
GetScrollRangeMethod · 0.45
GetScrollPosMethod · 0.45

Tested by

no test coverage detected