MCPcopy Create free account
hub / github.com/OpenStarbound/OpenStarbound / offsetFromThumbPosition

Method offsetFromThumbPosition

source/windowing/StarScrollArea.cpp:232–245  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

230}
231
232Vec2I ScrollBar::offsetFromThumbPosition(Vec2I const& thumbPosition) const {
233 auto scrollArea = convert<ScrollArea>(m_parent);
234 if (m_direction == GuiDirection::Vertical) {
235 int scrollSpan = trackSize() - m_thumb->size()[1];
236 int scrollOffset = clamp((thumbPosition[1] - ScrollButtonStackSize), 0, scrollSpan);
237 float scrollRatio = (float)scrollOffset / (float)scrollSpan;
238 return {scrollArea->scrollOffset()[0], ceil(scrollArea->maxScrollPosition()[1] * scrollRatio)};
239 } else {
240 int scrollSpan = trackSize() - m_thumb->size()[0];
241 int scrollOffset = clamp((thumbPosition[0] - ScrollButtonStackSize), 0, scrollSpan);
242 float scrollRatio = (float)scrollOffset / (float)scrollSpan;
243 return {(int)ceil(scrollArea->maxScrollPosition()[0] * scrollRatio), scrollArea->scrollOffset()[1]};
244 }
245}
246
247ScrollArea::ScrollArea() {
248 auto assets = Root::singleton().assets();

Callers 1

sendEventMethod · 0.80

Calls 4

clampFunction · 0.85
scrollOffsetMethod · 0.80
maxScrollPositionMethod · 0.80
sizeMethod · 0.45

Tested by

no test coverage detected