Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(220)

Unified Diff: ui/native_theme/native_theme_mac.mm

Issue 1671313002: MacViews: Overlay Scrollbars with Show/Hide Animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « ui/native_theme/native_theme_mac.h ('k') | ui/views/cocoa/views_scrollbar_bridge.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ui/native_theme/native_theme_mac.mm
diff --git a/ui/native_theme/native_theme_mac.mm b/ui/native_theme/native_theme_mac.mm
index 43eb1296316e424026f8bee6f435ea1696b25d8e..e81c60c2f4d8ede2f7780f446262546a0d964bb2 100644
--- a/ui/native_theme/native_theme_mac.mm
+++ b/ui/native_theme/native_theme_mac.mm
@@ -19,20 +19,6 @@
namespace {
-const SkColor kScrollerTrackGradientColors[] = {
- SkColorSetRGB(0xEF, 0xEF, 0xEF),
- SkColorSetRGB(0xF9, 0xF9, 0xF9),
- SkColorSetRGB(0xFD, 0xFD, 0xFD),
- SkColorSetRGB(0xF6, 0xF6, 0xF6) };
-const SkColor kScrollerTrackInnerBorderColor = SkColorSetRGB(0xE4, 0xE4, 0xE4);
-const SkColor kScrollerTrackOuterBorderColor = SkColorSetRGB(0xEF, 0xEF, 0xEF);
-const SkColor kScrollerThumbColor = SkColorSetARGB(0x38, 0, 0, 0);
-const SkColor kScrollerThumbHoverColor = SkColorSetARGB(0x80, 0, 0, 0);
-const int kScrollerTrackBorderWidth = 1;
-
-// The amount the thumb is inset from both the ends and the sides of the track.
-const int kScrollerThumbInset = 3;
-
// Values calculated by reading pixels and solving simultaneous equations
// derived from "A over B" alpha compositing. Steps: Sample the semi-transparent
// pixel over two backgrounds; P1, P2 over backgrounds B1, B2. Use the color
@@ -240,131 +226,6 @@ SkColor NativeThemeMac::GetSystemColor(ColorId color_id) const {
}
}
-void NativeThemeMac::PaintScrollbarTrack(
- SkCanvas* canvas,
- Part part,
- State state,
- const ScrollbarTrackExtraParams& extra_params,
- const gfx::Rect& rect) const {
- // Emulate the non-overlay scroller style from OSX 10.7 and later.
- SkPoint gradient_bounds[2];
- if (part == kScrollbarVerticalTrack) {
- gradient_bounds[0].set(rect.x(), rect.y());
- gradient_bounds[1].set(rect.right(), rect.y());
- } else {
- DCHECK_EQ(part, kScrollbarHorizontalTrack);
- gradient_bounds[0].set(rect.x(), rect.y());
- gradient_bounds[1].set(rect.x(), rect.bottom());
- }
- skia::RefPtr<SkShader> shader = skia::AdoptRef(
- SkGradientShader::CreateLinear(gradient_bounds,
- kScrollerTrackGradientColors,
- NULL,
- arraysize(kScrollerTrackGradientColors),
- SkShader::kClamp_TileMode));
- SkPaint gradient;
- gradient.setShader(shader.get());
-
- SkIRect track_rect = gfx::RectToSkIRect(rect);
- canvas->drawIRect(track_rect, gradient);
-
- // Draw inner and outer line borders.
- if (part == kScrollbarVerticalTrack) {
- SkPaint paint;
- paint.setColor(kScrollerTrackInnerBorderColor);
- canvas->drawRectCoords(track_rect.left(),
- track_rect.top(),
- track_rect.left() + kScrollerTrackBorderWidth,
- track_rect.bottom(),
- paint);
- paint.setColor(kScrollerTrackOuterBorderColor);
- canvas->drawRectCoords(track_rect.right() - kScrollerTrackBorderWidth,
- track_rect.top(),
- track_rect.right(),
- track_rect.bottom(),
- paint);
- } else {
- SkPaint paint;
- paint.setColor(kScrollerTrackInnerBorderColor);
- canvas->drawRectCoords(track_rect.left(),
- track_rect.top(),
- track_rect.right(),
- track_rect.top() + kScrollerTrackBorderWidth,
- paint);
- paint.setColor(kScrollerTrackOuterBorderColor);
- canvas->drawRectCoords(track_rect.left(),
- track_rect.bottom() - kScrollerTrackBorderWidth,
- track_rect.right(),
- track_rect.bottom(),
- paint);
- }
-}
-
-void NativeThemeMac::PaintScrollbarThumb(SkCanvas* canvas,
- Part part,
- State state,
- const gfx::Rect& rect) const {
- gfx::Rect thumb_rect(rect);
- switch (part) {
- case kScrollbarHorizontalThumb:
- thumb_rect.Inset(0, kScrollerTrackBorderWidth, 0, 0);
- break;
- case kScrollbarVerticalThumb:
- thumb_rect.Inset(kScrollerTrackBorderWidth, 0, 0, 0);
- break;
- default:
- NOTREACHED();
- break;
- }
-
- thumb_rect.Inset(kScrollerThumbInset, kScrollerThumbInset);
-
- SkPaint paint;
- paint.setAntiAlias(true);
- paint.setColor(state == kHovered ? thumb_active_color_
- : thumb_inactive_color_);
- const SkScalar radius = std::min(rect.width(), rect.height());
- canvas->drawRoundRect(gfx::RectToSkRect(thumb_rect), radius, radius, paint);
-}
-
-void NativeThemeMac::PaintScrollbarCorner(SkCanvas* canvas,
- State state,
- const gfx::Rect& rect) const {
- DCHECK_GT(rect.width(), 0);
- DCHECK_GT(rect.height(), 0);
-
- // Draw radial gradient from top-left corner.
- skia::RefPtr<SkShader> shader = skia::AdoptRef(
- SkGradientShader::CreateRadial(SkPoint::Make(rect.x(), rect.y()),
- rect.width(),
- kScrollerTrackGradientColors,
- NULL,
- arraysize(kScrollerTrackGradientColors),
- SkShader::kClamp_TileMode));
- SkPaint gradient;
- gradient.setStyle(SkPaint::kFill_Style);
- gradient.setAntiAlias(true);
- gradient.setShader(shader.get());
- canvas->drawRect(gfx::RectToSkRect(rect), gradient);
-
- // Draw inner border corner point.
- canvas->drawPoint(rect.x(), rect.y(), kScrollerTrackInnerBorderColor);
-
- // Draw outer borders.
- SkPaint paint;
- paint.setColor(kScrollerTrackOuterBorderColor);
- canvas->drawRectCoords(rect.right() - kScrollerTrackBorderWidth,
- rect.y(),
- rect.right(),
- rect.bottom(),
- paint);
- canvas->drawRectCoords(rect.x(),
- rect.bottom() - kScrollerTrackBorderWidth,
- rect.right(),
- rect.bottom(),
- paint);
-}
-
void NativeThemeMac::PaintMenuPopupBackground(
SkCanvas* canvas,
const gfx::Size& size,
@@ -406,10 +267,6 @@ void NativeThemeMac::PaintMenuItemBackground(
}
NativeThemeMac::NativeThemeMac() {
- set_scrollbar_button_length(0);
- SetScrollbarColors(kScrollerThumbColor,
- kScrollerThumbHoverColor,
- kScrollerTrackGradientColors[0]);
}
NativeThemeMac::~NativeThemeMac() {
« no previous file with comments | « ui/native_theme/native_theme_mac.h ('k') | ui/views/cocoa/views_scrollbar_bridge.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698