• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "cc/test/fake_scrollbar.h"
6 
7 #include "third_party/skia/include/core/SkCanvas.h"
8 #include "ui/gfx/skia_util.h"
9 
10 namespace cc {
11 
FakeScrollbar()12 FakeScrollbar::FakeScrollbar()
13     : paint_(false),
14       has_thumb_(false),
15       is_overlay_(false),
16       thumb_thickness_(10),
17       thumb_length_(5),
18       track_rect_(0, 0, 100, 10),
19       fill_color_(SK_ColorGREEN) {}
20 
FakeScrollbar(bool paint,bool has_thumb,bool is_overlay)21 FakeScrollbar::FakeScrollbar(bool paint, bool has_thumb, bool is_overlay)
22     : paint_(paint),
23       has_thumb_(has_thumb),
24       is_overlay_(is_overlay),
25       thumb_thickness_(10),
26       thumb_length_(5),
27       track_rect_(0, 0, 100, 10),
28       fill_color_(SK_ColorGREEN) {}
29 
~FakeScrollbar()30 FakeScrollbar::~FakeScrollbar() {}
31 
Orientation() const32 ScrollbarOrientation FakeScrollbar::Orientation() const {
33   return HORIZONTAL;
34 }
35 
IsLeftSideVerticalScrollbar() const36 bool FakeScrollbar::IsLeftSideVerticalScrollbar() const {
37   return false;
38 }
39 
Location() const40 gfx::Point FakeScrollbar::Location() const { return location_; }
41 
IsOverlay() const42 bool FakeScrollbar::IsOverlay() const { return is_overlay_; }
43 
HasThumb() const44 bool FakeScrollbar::HasThumb() const { return has_thumb_; }
45 
ThumbThickness() const46 int FakeScrollbar::ThumbThickness() const {
47   return thumb_thickness_;
48 }
49 
ThumbLength() const50 int FakeScrollbar::ThumbLength() const {
51   return thumb_length_;
52 }
53 
TrackRect() const54 gfx::Rect FakeScrollbar::TrackRect() const {
55   return track_rect_;
56 }
57 
PaintPart(SkCanvas * canvas,ScrollbarPart part,const gfx::Rect & content_rect)58 void FakeScrollbar::PaintPart(SkCanvas* canvas,
59                              ScrollbarPart part,
60                              const gfx::Rect& content_rect) {
61   if (!paint_)
62     return;
63 
64   // Fill the scrollbar with a different color each time.
65   fill_color_++;
66   SkPaint paint;
67   paint.setAntiAlias(false);
68   paint.setColor(paint_fill_color());
69   paint.setStyle(SkPaint::kFill_Style);
70 
71   // Emulate the how the real scrollbar works by using scrollbar's rect for
72   // TRACK and the given content_rect for the THUMB
73   SkRect rect = part == TRACK ? RectToSkRect(TrackRect())
74                               : RectToSkRect(content_rect);
75   canvas->drawRect(rect, paint);
76 }
77 
78 }  // namespace cc
79