| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/native_theme/native_theme_aurawin.h" | 5 #include "ui/native_theme/native_theme_aurawin.h" |
| 6 | 6 |
| 7 #include "grit/ui_resources.h" | 7 #include "grit/ui_resources.h" |
| 8 #include "third_party/skia/include/core/SkCanvas.h" | 8 #include "third_party/skia/include/core/SkCanvas.h" |
| 9 #include "ui/base/nine_image_painter_factory.h" | 9 #include "ui/base/nine_image_painter_factory.h" |
| 10 #include "ui/base/resource/resource_bundle.h" | 10 #include "ui/base/resource/resource_bundle.h" |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 102 State state) const { | 102 State state) const { |
| 103 if (direction == kInnerSpinButton) { | 103 if (direction == kInnerSpinButton) { |
| 104 NativeThemeAura::PaintArrowButton(gc, rect, direction, state); | 104 NativeThemeAura::PaintArrowButton(gc, rect, direction, state); |
| 105 return; | 105 return; |
| 106 } | 106 } |
| 107 PaintPainter(GetOrCreatePainter( | 107 PaintPainter(GetOrCreatePainter( |
| 108 kScrollbarArrowButtonImages, state, | 108 kScrollbarArrowButtonImages, state, |
| 109 scrollbar_arrow_button_painters_), | 109 scrollbar_arrow_button_painters_), |
| 110 gc, rect); | 110 gc, rect); |
| 111 | 111 |
| 112 // The arrow is slightly offset to better balance with the thumb. | |
| 113 gfx::Rect arrow_rect(rect); | |
| 114 if (direction == kScrollbarDownArrow || direction == kScrollbarUpArrow) | |
| 115 arrow_rect.Offset(1, 0); | |
| 116 else | |
| 117 arrow_rect.Offset(0, 1); | |
| 118 | |
| 119 // Aura-win uses slightly different arrow colors. | 112 // Aura-win uses slightly different arrow colors. |
| 120 SkColor arrow_color = GetArrowColor(state); | 113 SkColor arrow_color = GetArrowColor(state); |
| 121 switch (state) { | 114 switch (state) { |
| 122 case kHovered: | 115 case kHovered: |
| 123 case kNormal: | 116 case kNormal: |
| 124 arrow_color = SkColorSetRGB(0x50, 0x50, 0x50); | 117 arrow_color = SkColorSetRGB(0x50, 0x50, 0x50); |
| 125 break; | 118 break; |
| 126 case kPressed: | 119 case kPressed: |
| 127 arrow_color = SK_ColorWHITE; | 120 arrow_color = SK_ColorWHITE; |
| 128 default: | 121 default: |
| 129 break; | 122 break; |
| 130 } | 123 } |
| 131 PaintArrow(gc, arrow_rect, direction, arrow_color); | 124 PaintArrow(gc, rect, direction, arrow_color); |
| 132 } | 125 } |
| 133 | 126 |
| 134 void NativeThemeAuraWin::PaintScrollbarTrack( | 127 void NativeThemeAuraWin::PaintScrollbarTrack( |
| 135 SkCanvas* sk_canvas, | 128 SkCanvas* sk_canvas, |
| 136 Part part, | 129 Part part, |
| 137 State state, | 130 State state, |
| 138 const ScrollbarTrackExtraParams& extra_params, | 131 const ScrollbarTrackExtraParams& extra_params, |
| 139 const gfx::Rect& rect) const { | 132 const gfx::Rect& rect) const { |
| 140 if (!scrollbar_track_painter_) | 133 if (!scrollbar_track_painter_) |
| 141 scrollbar_track_painter_ = CreateNineImagePainter(kScrollbarTrackImages); | 134 scrollbar_track_painter_ = CreateNineImagePainter(kScrollbarTrackImages); |
| 142 PaintPainter(scrollbar_track_painter_.get(), sk_canvas, rect); | 135 PaintPainter(scrollbar_track_painter_.get(), sk_canvas, rect); |
| 143 } | 136 } |
| 144 | 137 |
| 145 void NativeThemeAuraWin::PaintScrollbarThumb(SkCanvas* sk_canvas, | 138 void NativeThemeAuraWin::PaintScrollbarThumb(SkCanvas* sk_canvas, |
| 146 Part part, | 139 Part part, |
| 147 State state, | 140 State state, |
| 148 const gfx::Rect& rect) const { | 141 const gfx::Rect& rect) const { |
| 149 gfx::Rect thumb_rect(rect); | 142 gfx::Rect thumb_rect(rect); |
| 150 if (part == NativeTheme::kScrollbarVerticalThumb) | 143 if (part == NativeTheme::kScrollbarVerticalThumb) |
| 151 thumb_rect.Inset(3, 0, 1, 0); | 144 thumb_rect.Inset(2, 0, 2, 0); |
| 152 else | 145 else |
| 153 thumb_rect.Inset(0, 3, 0, 1); | 146 thumb_rect.Inset(0, 2, 0, 2); |
| 154 PaintPainter(GetOrCreatePainter( | 147 PaintPainter(GetOrCreatePainter( |
| 155 kScrollbarThumbImages, state, scrollbar_thumb_painters_), | 148 kScrollbarThumbImages, state, scrollbar_thumb_painters_), |
| 156 sk_canvas, thumb_rect); | 149 sk_canvas, thumb_rect); |
| 157 } | 150 } |
| 158 | 151 |
| 159 NineImagePainter* NativeThemeAuraWin::GetOrCreatePainter( | 152 NineImagePainter* NativeThemeAuraWin::GetOrCreatePainter( |
| 160 const int images[kMaxState][9], | 153 const int images[kMaxState][9], |
| 161 State state, | 154 State state, |
| 162 scoped_ptr<NineImagePainter> painters[kMaxState]) const { | 155 scoped_ptr<NineImagePainter> painters[kMaxState]) const { |
| 163 if (painters[state]) | 156 if (painters[state]) |
| 164 return painters[state].get(); | 157 return painters[state].get(); |
| 165 if (images[state][0] == 0) { | 158 if (images[state][0] == 0) { |
| 166 // Must always provide normal state images. | 159 // Must always provide normal state images. |
| 167 DCHECK_NE(kNormal, state); | 160 DCHECK_NE(kNormal, state); |
| 168 return GetOrCreatePainter(images, kNormal, painters); | 161 return GetOrCreatePainter(images, kNormal, painters); |
| 169 } | 162 } |
| 170 painters[state] = CreateNineImagePainter(images[state]); | 163 painters[state] = CreateNineImagePainter(images[state]); |
| 171 return painters[state].get(); | 164 return painters[state].get(); |
| 172 } | 165 } |
| 173 | 166 |
| 174 void NativeThemeAuraWin::PaintPainter(NineImagePainter* painter, | 167 void NativeThemeAuraWin::PaintPainter(NineImagePainter* painter, |
| 175 SkCanvas* sk_canvas, | 168 SkCanvas* sk_canvas, |
| 176 const gfx::Rect& rect) const { | 169 const gfx::Rect& rect) const { |
| 177 DCHECK(painter); | 170 DCHECK(painter); |
| 178 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas)); | 171 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas)); |
| 179 painter->Paint(canvas.get(), rect); | 172 painter->Paint(canvas.get(), rect); |
| 180 } | 173 } |
| 181 | 174 |
| 182 } // namespace ui | 175 } // namespace ui |
| OLD | NEW |