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

Method containerUpdate

src/eepp/ui/uiscrollview.cpp:202–275  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

200}
201
202void UIScrollView::containerUpdate() {
203 if ( NULL == mScrollView )
204 return;
205
206 if ( ScrollBarMode::AlwaysOn == mHScrollMode ) {
207 mHScroll->setVisible( true );
208 mHScroll->setEnabled( true );
209 } else if ( ScrollBarMode::AlwaysOff == mHScrollMode ) {
210 mHScroll->setVisible( false );
211 mHScroll->setEnabled( false );
212 } else {
213 bool visible = mScrollView->getSize().getWidth() >
214 getSize().getWidth() - getPadding().Left - getPadding().Right;
215
216 mHScroll->setVisible( visible );
217 mHScroll->setEnabled( visible );
218 }
219
220 if ( ScrollBarMode::AlwaysOn == mVScrollMode ) {
221 mVScroll->setVisible( true );
222 mVScroll->setEnabled( true );
223 } else if ( ScrollBarMode::AlwaysOff == mVScrollMode ) {
224 mVScroll->setVisible( false );
225 mVScroll->setEnabled( false );
226 } else {
227 bool visible = mScrollView->getSize().getHeight() >
228 getSize().getHeight() - getPadding().Top - getPadding().Bottom;
229
230 mVScroll->setVisible( visible );
231 mVScroll->setEnabled( visible );
232 }
233
234 Sizef size = getSize() - mPadding;
235
236 if ( ScrollViewType::Outside == mViewType ) {
237 if ( mVScroll->isVisible() )
238 size.x -= mVScroll->getSize().getWidth();
239
240 if ( mHScroll->isVisible() )
241 size.y -= mHScroll->getSize().getHeight();
242 }
243
244 mContainer->setPosition( mPadding.Left, mPadding.Top );
245
246 // TODO: Fix layouting to avoid needing this hack.
247 if ( size != mContainer->getSize() )
248 runOnMainThread( [this, size]() { mContainer->setSize( size ); } );
249
250 mVScroll->setPosition( getSize().getWidth() - mVScroll->getSize().getWidth() - mPadding.Right,
251 mPadding.Top );
252 mHScroll->setPosition( mPadding.Left, getSize().getHeight() - mHScroll->getSize().getHeight() -
253 mPadding.Bottom );
254
255 mVScroll->setSize( mVScroll->getSize().getWidth(),
256 getSize().getHeight() - mPadding.Top - mPadding.Bottom );
257 mHScroll->setSize( getSize().getWidth() - mPadding.Left - mPadding.Right -
258 ( mVScroll->isVisible() ? mVScroll->getSize().getWidth() : 0 ),
259 mHScroll->getSize().getHeight() );

Callers

nothing calls this directly

Calls 11

setVisibleMethod · 0.45
setEnabledMethod · 0.45
getWidthMethod · 0.45
getSizeMethod · 0.45
getHeightMethod · 0.45
isVisibleMethod · 0.45
setPositionMethod · 0.45
setSizeMethod · 0.45
setPageStepMethod · 0.45
setClickStepMethod · 0.45
getPageStepMethod · 0.45

Tested by

no test coverage detected