Home | History | Annotate | Download | only in input
      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:
     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                          const gfx::Rect& content_rect) = 0;
     37 };
     38 
     39 }  // namespace cc
     40 
     41 #endif  // CC_INPUT_SCROLLBAR_H_
     42