#include "third_party/blink/renderer/core/scroll/scrollbar_theme.h"
#include <optional>
#include "build/build_config.h"
#include "cc/input/scrollbar.h"
#include "third_party/blink/public/common/input/web_mouse_event.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/core/scroll/scrollbar_theme_overlay_mock.h"
#include "third_party/blink/renderer/platform/graphics/color.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context.h"
#include "third_party/blink/renderer/platform/graphics/graphics_context_state_saver.h"
#include "third_party/blink/renderer/platform/graphics/paint/cull_rect.h"
#include "third_party/blink/renderer/platform/graphics/paint/drawing_display_item.h"
#include "third_party/blink/renderer/platform/graphics/paint/drawing_recorder.h"
#include "third_party/blink/renderer/platform/graphics/paint/paint_controller.h"
#include "third_party/blink/renderer/platform/theme/web_theme_engine_helper.h"
#include "ui/color/color_provider.h"
#if !BUILDFLAG(IS_MAC)
#include "third_party/blink/public/platform/web_theme_engine.h"
#endif
namespace blink {
ScrollbarPart ScrollbarTheme::HitTestRootFramePosition(
const Scrollbar& scrollbar,
const gfx::Point& position_in_root_frame) const { … }
ScrollbarPart ScrollbarTheme::HitTest(const Scrollbar& scrollbar,
const gfx::Point& test_position) const { … }
void ScrollbarTheme::PaintScrollCorner(
GraphicsContext& context,
const ScrollableArea& scrollable_area,
const DisplayItemClient& display_item_client,
const gfx::Rect& corner_rect) { … }
void ScrollbarTheme::PaintTickmarks(GraphicsContext& context,
const Scrollbar& scrollbar,
const gfx::Rect& rect) { … }
base::TimeDelta ScrollbarTheme::OverlayScrollbarFadeOutDelay() const { … }
base::TimeDelta ScrollbarTheme::OverlayScrollbarFadeOutDuration() const { … }
int ScrollbarTheme::ThumbPosition(const Scrollbar& scrollbar,
float scroll_position) const { … }
int ScrollbarTheme::ThumbLength(const Scrollbar& scrollbar) const { … }
int ScrollbarTheme::TrackPosition(const Scrollbar& scrollbar) const { … }
int ScrollbarTheme::TrackLength(const Scrollbar& scrollbar) const { … }
gfx::Rect ScrollbarTheme::ThumbRect(const Scrollbar& scrollbar) const { … }
void ScrollbarTheme::SplitTrack(const Scrollbar& scrollbar,
const gfx::Rect& unconstrained_track_rect,
gfx::Rect& before_thumb_rect,
gfx::Rect& thumb_rect,
gfx::Rect& after_thumb_rect) const { … }
base::TimeDelta ScrollbarTheme::InitialAutoscrollTimerDelay() const { … }
base::TimeDelta ScrollbarTheme::AutoscrollTimerDelay() const { … }
ScrollbarTheme& ScrollbarTheme::GetTheme() { … }
void ScrollbarTheme::PaintTrackBackgroundAndButtons(GraphicsContext& context,
const Scrollbar& scrollbar,
const gfx::Rect& rect) { … }
void ScrollbarTheme::PaintTrackAndButtons(GraphicsContext& context,
const Scrollbar& scrollbar,
const gfx::Rect& rect) { … }
}