summaryrefslogtreecommitdiff
path: root/chromium/ui/views/controls/scrollbar
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/views/controls/scrollbar')
-rw-r--r--chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.h3
-rw-r--r--chromium/ui/views/controls/scrollbar/cocoa_scroll_bar.mm48
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;
}