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 12class SkCanvas; 13 14namespace cc { 15 16enum ScrollbarOrientation { HORIZONTAL, VERTICAL }; 17enum ScrollDirection { SCROLL_BACKWARD, SCROLL_FORWARD }; 18// For now, TRACK includes everything but the thumb including background and 19// buttons. 20enum ScrollbarPart { THUMB, TRACK }; 21 22class 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