• 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 #ifndef CC_INPUT_SCROLLBAR_H_
6 #define CC_INPUT_SCROLLBAR_H_
7 
8 #include "cc/base/cc_export.h"
9 #include "ui/gfx/point.h"
10 #include "ui/gfx/rect.h"
11 
12 class SkCanvas;
13 
14 namespace cc {
15 
16 enum ScrollbarOrientation { HORIZONTAL, VERTICAL };
17 enum ScrollDirection { SCROLL_BACKWARD, SCROLL_FORWARD };
18 // For now, TRACK includes everything but the thumb including background and
19 // buttons.
20 enum ScrollbarPart { THUMB, TRACK };
21 
22 class Scrollbar {
23  public:
~Scrollbar()24   virtual ~Scrollbar() {}
25 
26   virtual ScrollbarOrientation Orientation() const = 0;
27   virtual bool IsLeftSideVerticalScrollbar() const = 0;
28   virtual gfx::Point Location() const = 0;
29   virtual bool IsOverlay() const = 0;
30   virtual bool HasThumb() const = 0;
31   virtual int ThumbThickness() const = 0;
32   virtual int ThumbLength() const = 0;
33   virtual gfx::Rect TrackRect() const = 0;
34   virtual void PaintPart(SkCanvas* canvas,
35                          ScrollbarPart part,
36                          gfx::Rect content_rect) = 0;
37 };
38 
39 }  // namespace cc
40 
41 #endif  // CC_INPUT_SCROLLBAR_H_
42