int ScrollbarGroup::scrollSize(WebCore::ScrollbarOrientation orientation) const { WebPluginScrollbarImpl* webScrollbar = orientation == HorizontalScrollbar ? m_horizontalScrollbar : m_verticalScrollbar; if (!webScrollbar) return 0; Scrollbar* scrollbar = webScrollbar->scrollbar(); return scrollbar->totalSize() - scrollbar->visibleSize(); }
bool ScrollableArea::scroll(ScrollDirection direction, ScrollGranularity granularity, float multiplier) { ScrollbarOrientation orientation; Scrollbar* scrollbar; if (direction == ScrollUp || direction == ScrollDown) { orientation = VerticalScrollbar; scrollbar = verticalScrollbar(); } else { orientation = HorizontalScrollbar; scrollbar = horizontalScrollbar(); } if (!scrollbar) return false; float step = 0; switch (granularity) { case ScrollByLine: step = scrollbar->lineStep(); break; case ScrollByPage: step = scrollbar->pageStep(); break; case ScrollByDocument: step = scrollbar->totalSize(); break; case ScrollByPixel: case ScrollByPrecisePixel: step = scrollbar->pixelStep(); break; case ScrollByPixelVelocity: break; } if (granularity != ScrollByPixelVelocity && (direction == ScrollUp || direction == ScrollLeft)) multiplier = -multiplier; return scrollAnimator()->scroll(orientation, granularity, step, multiplier); }
int ScrollView::scrollSize(ScrollbarOrientation orientation) const { Scrollbar* scrollbar = ((orientation == HorizontalScrollbar) ? m_horizontalScrollbar : m_verticalScrollbar).get(); return scrollbar ? (scrollbar->totalSize() - scrollbar->visibleSize()) : 0; }