OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "ui/gfx/native_theme_chromeos.h" | 5 #include "ui/gfx/native_theme_chromeos.h" |
6 | 6 |
7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
8 #include "base/logging.h" | 8 #include "base/logging.h" |
9 #include "grit/gfx_resources.h" | 9 #include "grit/gfx_resources.h" |
10 #include "third_party/skia/include/effects/SkGradientShader.h" | |
11 #include "third_party/skia/include/core/SkPaint.h" | 10 #include "third_party/skia/include/core/SkPaint.h" |
12 #include "third_party/skia/include/core/SkPath.h" | 11 #include "third_party/skia/include/core/SkPath.h" |
13 #include "third_party/skia/include/core/SkShader.h" | 12 #include "third_party/skia/include/core/SkShader.h" |
| 13 #include "third_party/skia/include/effects/SkGradientShader.h" |
14 #include "ui/base/resource/resource_bundle.h" | 14 #include "ui/base/resource/resource_bundle.h" |
15 #include "ui/gfx/insets.h" | 15 #include "ui/gfx/insets.h" |
16 #include "ui/gfx/rect.h" | 16 #include "ui/gfx/rect.h" |
17 #include "ui/gfx/size.h" | 17 #include "ui/gfx/size.h" |
18 #include "ui/gfx/skbitmap_operations.h" | 18 #include "ui/gfx/skbitmap_operations.h" |
19 | 19 |
20 namespace { | 20 namespace { |
21 | 21 |
22 // Color constants. See theme_draw for details. | 22 // Color constants. See theme_draw for details. |
23 | 23 |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
130 | 130 |
131 void GetGradientPaintForRect(const gfx::Rect& rect, | 131 void GetGradientPaintForRect(const gfx::Rect& rect, |
132 const SkColor* colors, | 132 const SkColor* colors, |
133 const SkScalar* stops, | 133 const SkScalar* stops, |
134 int count, | 134 int count, |
135 SkPaint* paint) { | 135 SkPaint* paint) { |
136 paint->setStyle(SkPaint::kFill_Style); | 136 paint->setStyle(SkPaint::kFill_Style); |
137 paint->setAntiAlias(true); | 137 paint->setAntiAlias(true); |
138 | 138 |
139 SkPoint points[2]; | 139 SkPoint points[2]; |
140 points[0].set(SkIntToScalar(rect.x()), SkIntToScalar(rect.y())); | 140 points[0].iset(rect.x(), rect.y()); |
141 points[1].set(SkIntToScalar(rect.x()), SkIntToScalar(rect.bottom())); | 141 points[1].iset(rect.x(), rect.bottom()); |
142 | 142 |
143 SkShader* shader = SkGradientShader::CreateLinear(points, | 143 SkShader* shader = SkGradientShader::CreateLinear(points, |
144 colors, stops, count, SkShader::kClamp_TileMode); | 144 colors, stops, count, SkShader::kClamp_TileMode); |
145 | 145 |
146 paint->setShader(shader); | 146 paint->setShader(shader); |
147 // Unref shader after paint takes ownership, otherwise never deleted. | 147 // Unref shader after paint takes ownership, otherwise never deleted. |
148 shader->unref(); | 148 shader->unref(); |
149 } | 149 } |
150 | 150 |
151 void GetGradientPaintForRect(const gfx::Rect& rect, | 151 void GetGradientPaintForRect(const gfx::Rect& rect, |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
219 paint->setColor(kIndicatorStrokeColor); | 219 paint->setColor(kIndicatorStrokeColor); |
220 } | 220 } |
221 | 221 |
222 void GetRadioIndicatorGradientPaint(const gfx::Rect bounds, | 222 void GetRadioIndicatorGradientPaint(const gfx::Rect bounds, |
223 gfx::NativeThemeBase::State state, | 223 gfx::NativeThemeBase::State state, |
224 SkPaint* paint) { | 224 SkPaint* paint) { |
225 paint->setStyle(SkPaint::kFill_Style); | 225 paint->setStyle(SkPaint::kFill_Style); |
226 paint->setAntiAlias(true); | 226 paint->setAntiAlias(true); |
227 | 227 |
228 SkPoint points[2]; | 228 SkPoint points[2]; |
229 points[0].set(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.y())); | 229 points[0].iset(bounds.x(), bounds.y()); |
230 points[1].set(SkIntToScalar(bounds.x()), SkIntToScalar(bounds.bottom())); | 230 points[1].iset(bounds.x(), bounds.bottom()); |
231 | 231 |
232 static const SkScalar kGradientPoints[2] = { | 232 static const SkScalar kGradientPoints[2] = { |
233 SkIntToScalar(0), | 233 SkIntToScalar(0), |
234 SkIntToScalar(1) | 234 SkIntToScalar(1) |
235 }; | 235 }; |
236 | 236 |
237 if (state == gfx::NativeThemeBase::kDisabled) { | 237 if (state == gfx::NativeThemeBase::kDisabled) { |
238 static const SkColor kGradientColors[2] = { | 238 static const SkColor kGradientColors[2] = { |
239 kRadioIndicatorDisabledGradient0, | 239 kRadioIndicatorDisabledGradient0, |
240 kRadioIndicatorDisabledGradient1 | 240 kRadioIndicatorDisabledGradient1 |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
582 background_color | 582 background_color |
583 }; | 583 }; |
584 | 584 |
585 const SkScalar gradient_points[3] = { | 585 const SkScalar gradient_points[3] = { |
586 SkIntToScalar(0), | 586 SkIntToScalar(0), |
587 SkDoubleToScalar(4.0 / rect.height()), | 587 SkDoubleToScalar(4.0 / rect.height()), |
588 SkIntToScalar(1) | 588 SkIntToScalar(1) |
589 }; | 589 }; |
590 | 590 |
591 SkPoint points[2]; | 591 SkPoint points[2]; |
592 points[0].set(SkIntToScalar(rect.x()), SkIntToScalar(rect.y())); | 592 points[0].iset(rect.x(), rect.y()); |
593 points[1].set(SkIntToScalar(rect.x()), SkIntToScalar(rect.bottom())); | 593 points[1].iset(rect.x(), rect.bottom()); |
594 | 594 |
595 GetGradientPaintForRect(rect, | 595 GetGradientPaintForRect(rect, gradient_colors, gradient_points, |
596 gradient_colors, gradient_points, arraysize(gradient_points), | 596 arraysize(gradient_points), &fill_paint); |
597 &fill_paint); | |
598 } | 597 } |
599 | 598 |
600 SkPath border; | 599 SkPath border; |
601 GetRoundRectPath(rect, kBorderCornerRadius, &border); | 600 GetRoundRectPath(rect, kBorderCornerRadius, &border); |
602 canvas->drawPath(border, fill_paint); | 601 canvas->drawPath(border, fill_paint); |
603 | 602 |
604 SkPaint stroke_paint; | 603 SkPaint stroke_paint; |
605 GetStrokePaint(state, &stroke_paint); | 604 GetStrokePaint(state, &stroke_paint); |
606 canvas->drawPath(border, stroke_paint); | 605 canvas->drawPath(border, stroke_paint); |
607 } | 606 } |
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
669 SK_ColorWHITE, | 668 SK_ColorWHITE, |
670 SkColorSetRGB(0xF0, 0xF0, 0xF0) | 669 SkColorSetRGB(0xF0, 0xF0, 0xF0) |
671 }; | 670 }; |
672 | 671 |
673 static const SkScalar kGradientPoints[2] = { | 672 static const SkScalar kGradientPoints[2] = { |
674 SkIntToScalar(0), | 673 SkIntToScalar(0), |
675 SkIntToScalar(1) | 674 SkIntToScalar(1) |
676 }; | 675 }; |
677 | 676 |
678 SkPoint points[2]; | 677 SkPoint points[2]; |
679 points[0].set(SkIntToScalar(0), SkIntToScalar(0)); | 678 points[0].iset(0, 0); |
680 points[1].set(SkIntToScalar(0), SkIntToScalar(rect.height())); | 679 points[1].iset(0, rect.height()); |
681 | 680 |
682 SkShader* shader = SkGradientShader::CreateLinear(points, | 681 SkShader* shader = SkGradientShader::CreateLinear(points, |
683 kGradientColors, kGradientPoints, arraysize(kGradientPoints), | 682 kGradientColors, kGradientPoints, arraysize(kGradientPoints), |
684 SkShader::kRepeat_TileMode); | 683 SkShader::kRepeat_TileMode); |
685 DCHECK(shader); | 684 DCHECK(shader); |
686 | 685 |
687 SkPaint paint; | 686 SkPaint paint; |
688 paint.setShader(shader); | 687 paint.setShader(shader); |
689 shader->unref(); | 688 shader->unref(); |
690 | 689 |
691 paint.setStyle(SkPaint::kFill_Style); | 690 paint.setStyle(SkPaint::kFill_Style); |
692 paint.setXfermodeMode(SkXfermode::kSrc_Mode); | 691 paint.setXfermodeMode(SkXfermode::kSrc_Mode); |
693 | 692 |
694 SkRect sk_rect; | 693 canvas->drawRect(gfx::RectToSkRect(gfx::Rect(rect.size())), paint); |
695 sk_rect.set(SkIntToScalar(0), SkIntToScalar(0), | |
696 SkIntToScalar(rect.width()), SkIntToScalar(rect.height())); | |
697 canvas->drawRect(sk_rect, paint); | |
698 } | 694 } |
699 | 695 |
700 void NativeThemeChromeos::PaintProgressBar(SkCanvas* canvas, | 696 void NativeThemeChromeos::PaintProgressBar(SkCanvas* canvas, |
701 State state, | 697 State state, |
702 const gfx::Rect& rect, | 698 const gfx::Rect& rect, |
703 const ProgressBarExtraParams& progress_bar) const { | 699 const ProgressBarExtraParams& progress_bar) const { |
704 static const int kBorderWidth = 1; | 700 static const int kBorderWidth = 1; |
705 static const SkColor kBackgroundColors[] = { | 701 static const SkColor kBackgroundColors[] = { |
706 kProgressBarBackgroundGradient0, | 702 kProgressBarBackgroundGradient0, |
707 kProgressBarBackgroundGradient1, | 703 kProgressBarBackgroundGradient1, |
(...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 | 831 |
836 if (stroke_border) { | 832 if (stroke_border) { |
837 SkPaint stroke_paint; | 833 SkPaint stroke_paint; |
838 GetStrokePaint(state, &stroke_paint); | 834 GetStrokePaint(state, &stroke_paint); |
839 canvas->drawPath(border, stroke_paint); | 835 canvas->drawPath(border, stroke_paint); |
840 } | 836 } |
841 } | 837 } |
842 | 838 |
843 } // namespace gfx | 839 } // namespace gfx |
844 | 840 |
OLD | NEW |