diff options
Diffstat (limited to 'chromium/ui/views/controls/scrollbar')
-rw-r--r-- | chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.h | 3 | ||||
-rw-r--r-- | chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.mm | 48 |
2 files changed, 31 insertions, 20 deletions
diff --git a/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.h b/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.h index 68e804b5d06..4f102e97a09 100644 --- a/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.h +++ b/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.h @@ -11,7 +11,6 @@ #import "components/remote_cocoa/app_shim/views_scrollbar_bridge.h" #include "ui/compositor/layer_animation_observer.h" #include "ui/gfx/animation/slide_animation.h" -#include "ui/gfx/mac/cocoa_scrollbar_painter.h" #include "ui/views/controls/scrollbar/scroll_bar.h" #include "ui/views/views_export.h" @@ -63,7 +62,7 @@ class VIEWS_EXPORT CocoaScrollBar : public ScrollBar, bool IsScrollbarFullyHidden() const; // Get the parameters for painting. - gfx::CocoaScrollbarPainter::Params GetPainterParams() const; + ui::NativeTheme::ExtraParams GetPainterParams() const; protected: // ScrollBar: diff --git a/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.mm b/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.mm index 1b4d5a5d129..05960d9ad3e 100644 --- a/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.mm +++ b/chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.mm @@ -15,8 +15,6 @@ #include "ui/gfx/canvas.h" #include "ui/views/controls/scrollbar/base_scroll_bar_thumb.h" -using gfx::CocoaScrollbarPainter; - namespace views { namespace { @@ -100,9 +98,14 @@ gfx::Size CocoaScrollBarThumb::CalculatePreferredSize() const { void CocoaScrollBarThumb::OnPaint(gfx::Canvas* canvas) { auto params = cocoa_scroll_bar_->GetPainterParams(); // Set the hover state based only on the thumb. - params.hovered = IsStateHovered() || IsStatePressed(); - CocoaScrollbarPainter::PaintThumb( - canvas->sk_canvas(), gfx::RectToSkIRect(GetLocalBounds()), params); + params.scrollbar_extra.is_hovering = IsStateHovered() || IsStatePressed(); + ui::NativeTheme::Part thumb_part = + params.scrollbar_extra.orientation == + ui::NativeTheme::ScrollbarOrientation::kHorizontal + ? ui::NativeTheme::kScrollbarHorizontalThumb + : ui::NativeTheme::kScrollbarVerticalThumb; + GetNativeTheme()->Paint(canvas->sk_canvas(), thumb_part, + ui::NativeTheme::kNormal, GetLocalBounds(), params); } bool CocoaScrollBarThumb::OnMousePressed(const ui::MouseEvent& event) { @@ -208,9 +211,14 @@ void CocoaScrollBar::OnPaint(gfx::Canvas* canvas) { auto params = GetPainterParams(); // Transparency of the track is handled by the View opacity, so always draw // using the non-overlay path. - params.overlay = false; - CocoaScrollbarPainter::PaintTrack( - canvas->sk_canvas(), gfx::RectToSkIRect(GetLocalBounds()), params); + params.scrollbar_extra.is_overlay = false; + ui::NativeTheme::Part track_part = + params.scrollbar_extra.orientation == + ui::NativeTheme::ScrollbarOrientation::kHorizontal + ? ui::NativeTheme::kScrollbarHorizontalTrack + : ui::NativeTheme::kScrollbarVerticalTrack; + GetNativeTheme()->Paint(canvas->sk_canvas(), track_part, + ui::NativeTheme::kNormal, GetLocalBounds(), params); } bool CocoaScrollBar::CanProcessEventsWithinSubtree() const { @@ -400,16 +408,20 @@ bool CocoaScrollBar::IsScrollbarFullyHidden() const { return layer()->opacity() == 0.0f; } -CocoaScrollbarPainter::Params CocoaScrollBar::GetPainterParams() const { - CocoaScrollbarPainter::Params params; - if (IsHorizontal()) - params.orientation = CocoaScrollbarPainter::Orientation::kHorizontal; - else if (base::i18n::IsRTL()) - params.orientation = CocoaScrollbarPainter::Orientation::kVerticalOnLeft; - else - params.orientation = CocoaScrollbarPainter::Orientation::kVerticalOnRight; - params.overlay = GetScrollerStyle() == NSScrollerStyleOverlay; - params.dark_mode = GetNativeTheme()->ShouldUseDarkColors(); +ui::NativeTheme::ExtraParams CocoaScrollBar::GetPainterParams() const { + ui::NativeTheme::ExtraParams params; + if (IsHorizontal()) { + params.scrollbar_extra.orientation = + ui::NativeTheme::ScrollbarOrientation::kHorizontal; + } else if (base::i18n::IsRTL()) { + params.scrollbar_extra.orientation = + ui::NativeTheme::ScrollbarOrientation::kVerticalOnLeft; + } else { + params.scrollbar_extra.orientation = + ui::NativeTheme::ScrollbarOrientation::kVerticalOnRight; + } + params.scrollbar_extra.is_overlay = + GetScrollerStyle() == NSScrollerStyleOverlay; return params; } |