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 gfx::Rect content_rect) = 0; 37 }; 38 39 } // namespace cc 40 41 #endif // CC_INPUT_SCROLLBAR_H_ 42