MCPcopy Create free account
hub / github.com/SpartanJ/eepp / onContentSizeChange

Method onContentSizeChange

src/eepp/ui/uiscrollablewidget.cpp:101–181  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

99}
100
101void UIScrollableWidget::onContentSizeChange() {
102 Sizef contentSize( getContentSize() );
103
104 if ( ScrollBarMode::AlwaysOn == mHScrollMode ) {
105 mHScroll->setVisible( true )->setEnabled( true );
106 } else if ( ScrollBarMode::AlwaysOff == mHScrollMode ) {
107 mHScroll->setVisible( false )->setEnabled( false );
108 } else {
109 Float totW =
110 getPixelsSize().getWidth() - getPixelsPadding().Left - getPixelsPadding().Right;
111
112 if ( mScrollViewType == ScrollViewType::Outside )
113 totW -= mVScroll->getPixelsSize().getWidth();
114
115 bool visible = contentSize.getWidth() > totW;
116
117 mHScroll->setVisible( visible )->setEnabled( visible );
118 }
119
120 if ( ScrollBarMode::AlwaysOn == mVScrollMode ) {
121 mVScroll->setVisible( true )->setEnabled( true );
122 } else if ( ScrollBarMode::AlwaysOff == mVScrollMode ) {
123 mVScroll->setVisible( false )->setEnabled( false );
124 } else {
125 Float totH =
126 getPixelsSize().getHeight() - getPixelsPadding().Top - getPixelsPadding().Bottom -
127 ( ScrollBarMode::AlwaysOff == mHScrollMode ? 0
128 : mHScroll->getPixelsSize().getHeight() );
129
130 bool visible = contentSize.getHeight() > totH;
131
132 mVScroll->setVisible( visible )->setEnabled( visible );
133 }
134
135 if ( ScrollBarMode::Auto == mHScrollMode ) {
136 Float totW =
137 getPixelsSize().getWidth() - getPixelsPadding().Left - getPixelsPadding().Right -
138 ( mVScroll->isVisible() &&
139 ( mScrollViewType == ScrollViewType::Outside || mVScroll->getAlpha() != 0.f )
140 ? mVScroll->getPixelsSize().getWidth()
141 : 0 );
142
143 bool visible = contentSize.getWidth() > totW;
144
145 mHScroll->setVisible( visible )->setEnabled( visible );
146 }
147
148 Sizef size = getPixelsSize() - mPaddingPx;
149
150 if ( ScrollViewType::Outside == mScrollViewType ) {
151 if ( mVScroll->isVisible() )
152 size.x -= mVScroll->getPixelsSize().getWidth();
153
154 if ( mHScroll->isVisible() )
155 size.y -= mHScroll->getPixelsSize().getHeight();
156 }
157
158 mVScroll->setPixelsPosition( getPixelsSize().getWidth() - mVScroll->getPixelsSize().getWidth() -

Callers

nothing calls this directly

Calls 11

setPixelsPositionMethod · 0.80
setEnabledMethod · 0.45
setVisibleMethod · 0.45
getWidthMethod · 0.45
getPixelsSizeMethod · 0.45
getHeightMethod · 0.45
isVisibleMethod · 0.45
setPixelsSizeMethod · 0.45
setPageStepMethod · 0.45
setClickStepMethod · 0.45
getPageStepMethod · 0.45

Tested by

no test coverage detected