MCPcopy Create free account
hub / github.com/axmolengine/axmol / onScrolled

Method onScrolled

core/ui/UIScrollViewBar.cpp:238–272  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

236}
237
238void ScrollViewBar::onScrolled(const Vec2& outOfBoundary)
239{
240 if (_autoHideEnabled)
241 {
242 _autoHideRemainingTime = _autoHideTime;
243 ProtectedNode::setOpacity(_opacity);
244 }
245
246 Layout* innerContainer = _parent->getInnerContainer();
247
248 float innerContainerMeasure = 0;
249 float scrollViewMeasure = 0;
250 float outOfBoundaryValue = 0;
251 float innerContainerPosition = 0;
252 if (_direction == ScrollView::Direction::VERTICAL)
253 {
254 innerContainerMeasure = innerContainer->getContentSize().height;
255 scrollViewMeasure = _parent->getContentSize().height;
256 outOfBoundaryValue = outOfBoundary.y;
257 innerContainerPosition = -innerContainer->getPositionY();
258 }
259 else if (_direction == ScrollView::Direction::HORIZONTAL)
260 {
261 innerContainerMeasure = innerContainer->getContentSize().width;
262 scrollViewMeasure = _parent->getContentSize().width;
263 outOfBoundaryValue = outOfBoundary.x;
264 innerContainerPosition = -innerContainer->getPositionX();
265 }
266
267 float length = calculateLength(innerContainerMeasure, scrollViewMeasure, outOfBoundaryValue);
268 Vec2 position =
269 calculatePosition(innerContainerMeasure, scrollViewMeasure, innerContainerPosition, outOfBoundaryValue, length);
270 updateLength(length);
271 setPosition(position);
272}
273
274float ScrollViewBar::calculateLength(float innerContainerMeasure, float scrollViewMeasure, float outOfBoundaryValue)
275{

Callers 2

onSizeChangedMethod · 0.80
updateScrollBarMethod · 0.80

Calls 6

setOpacityFunction · 0.85
getInnerContainerMethod · 0.80
setPositionFunction · 0.50
getContentSizeMethod · 0.45
getPositionYMethod · 0.45
getPositionXMethod · 0.45

Tested by

no test coverage detected