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

Side by Side Diff: ui/native_theme/native_theme_aura.cc

Issue 238723004: Paint state transition for overlay 9 patch scrollbars (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 6 years, 6 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 unified diff | Download patch
« no previous file with comments | « ui/native_theme/native_theme_aura.h ('k') | ui/native_theme/native_theme_base.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/native_theme/native_theme_aura.h" 5 #include "ui/native_theme/native_theme_aura.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "grit/ui_resources.h" 10 #include "grit/ui_resources.h"
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 if (part == NativeTheme::kScrollbarVerticalThumb) 201 if (part == NativeTheme::kScrollbarVerticalThumb)
202 thumb_rect.Inset(2, extra_padding, 2, extra_padding); 202 thumb_rect.Inset(2, extra_padding, 2, extra_padding);
203 else 203 else
204 thumb_rect.Inset(extra_padding, 2, extra_padding, 2); 204 thumb_rect.Inset(extra_padding, 2, extra_padding, 2);
205 PaintPainter(GetOrCreatePainter( 205 PaintPainter(GetOrCreatePainter(
206 kScrollbarThumbImages, state, scrollbar_thumb_painters_), 206 kScrollbarThumbImages, state, scrollbar_thumb_painters_),
207 sk_canvas, 207 sk_canvas,
208 thumb_rect); 208 thumb_rect);
209 } 209 }
210 210
211 void NativeThemeAura::PaintScrollbarThumbStateTransition(
212 SkCanvas* canvas,
213 State startState,
214 State endState,
215 double progress,
216 const gfx::Rect& rect) const {
217 // Only Overlay scrollbars should have state transition animation.
218 DCHECK(IsOverlayScrollbarEnabled());
219 if (!scrollbar_overlay_thumb_painter_) {
220 scrollbar_overlay_thumb_painter_ =
221 CreateDualPainter(kScrollbarOverlayThumbFillImages,
222 kScrollbarOverlayThumbFillAlphas,
223 kScrollbarOverlayThumbStrokeImages,
224 kScrollbarOverlayThumbStrokeAlphas);
225 }
226
227 PaintDualPainterTransition(scrollbar_overlay_thumb_painter_.get(),
228 canvas,
229 rect,
230 startState,
231 endState,
232 progress);
233 }
234
211 void NativeThemeAura::PaintScrollbarCorner(SkCanvas* canvas, 235 void NativeThemeAura::PaintScrollbarCorner(SkCanvas* canvas,
212 State state, 236 State state,
213 const gfx::Rect& rect) const { 237 const gfx::Rect& rect) const {
214 // Overlay Scrollbar should never paint a scrollbar corner. 238 // Overlay Scrollbar should never paint a scrollbar corner.
215 DCHECK(!IsOverlayScrollbarEnabled()); 239 DCHECK(!IsOverlayScrollbarEnabled());
216 SkPaint paint; 240 SkPaint paint;
217 paint.setColor(SkColorSetRGB(0xF1, 0xF1, 0xF1)); 241 paint.setColor(SkColorSetRGB(0xF1, 0xF1, 0xF1));
218 paint.setStyle(SkPaint::kFill_Style); 242 paint.setStyle(SkPaint::kFill_Style);
219 paint.setXfermodeMode(SkXfermode::kSrc_Mode); 243 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
220 canvas->drawIRect(RectToSkIRect(rect), paint); 244 canvas->drawIRect(RectToSkIRect(rect), paint);
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 const gfx::Rect& rect, 286 const gfx::Rect& rect,
263 State state) const { 287 State state) const {
264 DCHECK(dual_painter); 288 DCHECK(dual_painter);
265 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas)); 289 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas));
266 dual_painter->fill_painter->Paint( 290 dual_painter->fill_painter->Paint(
267 canvas.get(), rect, dual_painter->fill_alphas[state]); 291 canvas.get(), rect, dual_painter->fill_alphas[state]);
268 dual_painter->stroke_painter->Paint( 292 dual_painter->stroke_painter->Paint(
269 canvas.get(), rect, dual_painter->stroke_alphas[state]); 293 canvas.get(), rect, dual_painter->stroke_alphas[state]);
270 } 294 }
271 295
296 void NativeThemeAura::PaintDualPainterTransition(
297 NativeThemeAura::DualPainter* dual_painter,
298 SkCanvas* sk_canvas,
299 const gfx::Rect& rect,
300 State startState,
301 State endState,
302 double progress) const {
303 DCHECK(dual_painter);
304 scoped_ptr<gfx::Canvas> canvas(CreateCanvas(sk_canvas));
305 uint8 fill_alpha = dual_painter->fill_alphas[startState] +
306 (dual_painter->fill_alphas[endState] -
307 dual_painter->fill_alphas[startState]) *
308 progress;
309 uint8 stroke_alpha = dual_painter->stroke_alphas[startState] +
310 (dual_painter->stroke_alphas[endState] -
311 dual_painter->stroke_alphas[startState]) *
312 progress;
313
314 dual_painter->fill_painter->Paint(canvas.get(), rect, fill_alpha);
315 dual_painter->stroke_painter->Paint(canvas.get(), rect, stroke_alpha);
316 }
317
272 NativeThemeAura::DualPainter::DualPainter( 318 NativeThemeAura::DualPainter::DualPainter(
273 scoped_ptr<NineImagePainter> fill_painter, 319 scoped_ptr<NineImagePainter> fill_painter,
274 const uint8 fill_alphas[kMaxState], 320 const uint8 fill_alphas[kMaxState],
275 scoped_ptr<NineImagePainter> stroke_painter, 321 scoped_ptr<NineImagePainter> stroke_painter,
276 const uint8 stroke_alphas[kMaxState]) 322 const uint8 stroke_alphas[kMaxState])
277 : fill_painter(fill_painter.Pass()), 323 : fill_painter(fill_painter.Pass()),
278 fill_alphas(fill_alphas), 324 fill_alphas(fill_alphas),
279 stroke_painter(stroke_painter.Pass()), 325 stroke_painter(stroke_painter.Pass()),
280 stroke_alphas(stroke_alphas) {} 326 stroke_alphas(stroke_alphas) {}
281 327
282 NativeThemeAura::DualPainter::~DualPainter() {} 328 NativeThemeAura::DualPainter::~DualPainter() {}
283 329
284 } // namespace ui 330 } // namespace ui
OLDNEW
« no previous file with comments | « ui/native_theme/native_theme_aura.h ('k') | ui/native_theme/native_theme_base.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698