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 WEBKIT_RENDERER_COMPOSITOR_BINDINGS_SCROLLBAR_IMPL_H_ 6 #define WEBKIT_RENDERER_COMPOSITOR_BINDINGS_SCROLLBAR_IMPL_H_ 7 8 #include "base/basictypes.h" 9 #include "base/memory/scoped_ptr.h" 10 #include "cc/input/scrollbar.h" 11 #include "third_party/WebKit/public/platform/WebScrollbarThemePainter.h" 12 13 namespace blink { 14 class WebScrollbar; 15 class WebScrollbarThemeGeometry; 16 } 17 18 namespace webkit { 19 20 class ScrollbarImpl : public cc::Scrollbar { 21 public: 22 ScrollbarImpl(scoped_ptr<blink::WebScrollbar> scrollbar, 23 blink::WebScrollbarThemePainter painter, 24 scoped_ptr<blink::WebScrollbarThemeGeometry> geometry); 25 virtual ~ScrollbarImpl(); 26 27 // cc::Scrollbar implementation. 28 virtual cc::ScrollbarOrientation Orientation() const OVERRIDE; 29 virtual bool IsLeftSideVerticalScrollbar() const OVERRIDE; 30 virtual bool HasThumb() const OVERRIDE; 31 virtual bool IsOverlay() const OVERRIDE; 32 virtual gfx::Point Location() const OVERRIDE; 33 virtual int ThumbThickness() const OVERRIDE; 34 virtual int ThumbLength() const OVERRIDE; 35 virtual gfx::Rect TrackRect() const OVERRIDE; 36 virtual void PaintPart(SkCanvas* canvas, 37 cc::ScrollbarPart part, 38 gfx::Rect content_rect) OVERRIDE; 39 40 private: 41 scoped_ptr<blink::WebScrollbar> scrollbar_; 42 blink::WebScrollbarThemePainter painter_; 43 scoped_ptr<blink::WebScrollbarThemeGeometry> geometry_; 44 45 DISALLOW_COPY_AND_ASSIGN(ScrollbarImpl); 46 }; 47 48 } // namespace webkit 49 50 #endif // WEBKIT_RENDERER_COMPOSITOR_BINDINGS_SCROLLBAR_IMPL_H_ 51