int ScrollbarThemeOverlay::thumbPosition(const ScrollbarThemeClient& scrollbar) { if (!scrollbar.totalSize()) return 0; int trackLen = trackLength(scrollbar); float proportion = static_cast<float>(scrollbar.currentPos()) / scrollbar.totalSize(); return round(proportion * trackLen); }
void ScrollbarThemeAura::paintButton(GraphicsContext& gc, const ScrollbarThemeClient& scrollbar, const IntRect& rect, ScrollbarPart part) { DisplayItem::Type displayItemType = buttonPartToDisplayItemType(part); if (DrawingRecorder::useCachedDrawingIfPossible(gc, scrollbar, displayItemType)) return; PartPaintingParams params = buttonPartPaintingParams(scrollbar, scrollbar.currentPos(), part); if (!params.shouldPaint) return; DrawingRecorder recorder(gc, scrollbar, displayItemType, rect); Platform::current()->themeEngine()->paint(gc.canvas(), params.part, params.state, WebRect(rect), 0); }