Home | History | Annotate | Download | only in compositor_bindings
      1 // Copyright 2014 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 CONTENT_RENDERER_COMPOSITOR_BINDINGS_SCROLLBAR_IMPL_H_
      6 #define CONTENT_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 content {
     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                          const 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 content
     49 
     50 #endif  // CONTENT_RENDERER_COMPOSITOR_BINDINGS_SCROLLBAR_IMPL_H_
     51 
     52