#include "third_party/blink/renderer/core/scroll/scrollbar_theme_overlay.h"
#include "third_party/blink/public/platform/web_theme_engine.h"
#include "third_party/blink/renderer/core/scroll/scrollable_area.h"
#include "third_party/blink/renderer/core/scroll/scrollbar.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h"
#include "third_party/blink/renderer/platform/theme/web_theme_engine_helper.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "ui/gfx/geometry/transform.h"
#include <algorithm>
namespace blink {
ScrollbarThemeOverlay& ScrollbarThemeOverlay::GetInstance() { … }
ScrollbarThemeOverlay::ScrollbarThemeOverlay(int thumb_thickness_default_dip,
int scrollbar_margin_default_dip,
int thumb_thickness_thin_dip,
int scrollbar_margin_thin_dip)
: … { … }
bool ScrollbarThemeOverlay::ShouldRepaintAllPartsOnInvalidation() const { … }
ScrollbarPart ScrollbarThemeOverlay::PartsToInvalidateOnThumbPositionChange(
const Scrollbar&,
float old_position,
float new_position) const { … }
int ScrollbarThemeOverlay::ScrollbarThickness(
float scale_from_dip,
EScrollbarWidth scrollbar_width) const { … }
int ScrollbarThemeOverlay::ScrollbarMargin(
float scale_from_dip,
EScrollbarWidth scrollbar_width) const { … }
bool ScrollbarThemeOverlay::UsesOverlayScrollbars() const { … }
base::TimeDelta ScrollbarThemeOverlay::OverlayScrollbarFadeOutDelay() const { … }
base::TimeDelta ScrollbarThemeOverlay::OverlayScrollbarFadeOutDuration() const { … }
int ScrollbarThemeOverlay::ThumbLength(const Scrollbar& scrollbar) const { … }
int ScrollbarThemeOverlay::ThumbThickness(
float scale_from_dip,
EScrollbarWidth scrollbar_width) const { … }
bool ScrollbarThemeOverlay::HasThumb(const Scrollbar& scrollbar) const { … }
gfx::Rect ScrollbarThemeOverlay::BackButtonRect(const Scrollbar&) const { … }
gfx::Rect ScrollbarThemeOverlay::ForwardButtonRect(const Scrollbar&) const { … }
gfx::Rect ScrollbarThemeOverlay::TrackRect(const Scrollbar& scrollbar) const { … }
gfx::Rect ScrollbarThemeOverlay::ThumbRect(const Scrollbar& scrollbar) const { … }
void ScrollbarThemeOverlay::PaintThumb(GraphicsContext& context,
const Scrollbar& scrollbar,
const gfx::Rect& rect) { … }
ScrollbarPart ScrollbarThemeOverlay::HitTest(const Scrollbar& scrollbar,
const gfx::Point& position) const { … }
bool ScrollbarThemeOverlay::UsesNinePatchThumbResource() const { … }
gfx::Size ScrollbarThemeOverlay::NinePatchThumbCanvasSize(
const Scrollbar& scrollbar) const { … }
gfx::Rect ScrollbarThemeOverlay::NinePatchThumbAperture(
const Scrollbar& scrollbar) const { … }
int ScrollbarThemeOverlay::MinimumThumbLength(
const Scrollbar& scrollbar) const { … }
}