diff options
Diffstat (limited to 'webkit')
4 files changed, 131 insertions, 1 deletions
diff --git a/webkit/compositor_bindings/compositor_bindings.gyp b/webkit/compositor_bindings/compositor_bindings.gyp index e4df060..67c3f03 100644 --- a/webkit/compositor_bindings/compositor_bindings.gyp +++ b/webkit/compositor_bindings/compositor_bindings.gyp @@ -33,6 +33,8 @@ 'web_nine_patch_layer_impl.h', 'web_to_ccinput_handler_adapter.cc', 'web_to_ccinput_handler_adapter.h', + 'web_to_ccscrollbar_theme_painter_adapter.cc', + 'web_to_ccscrollbar_theme_painter_adapter.h', 'web_layer_tree_view_impl.cc', 'web_layer_tree_view_impl.h', 'web_scrollbar_layer_impl.cc', diff --git a/webkit/compositor_bindings/web_scrollbar_layer_impl.cc b/webkit/compositor_bindings/web_scrollbar_layer_impl.cc index dbadb31..d2153bc 100644 --- a/webkit/compositor_bindings/web_scrollbar_layer_impl.cc +++ b/webkit/compositor_bindings/web_scrollbar_layer_impl.cc @@ -6,8 +6,10 @@ #include "cc/scrollbar_layer.h" #include "web_layer_impl.h" +#include "web_to_ccscrollbar_theme_painter_adapter.h" using cc::ScrollbarLayer; +using cc::ScrollbarThemePainter; namespace WebKit { @@ -18,7 +20,13 @@ WebScrollbarLayer* WebScrollbarLayer::create(WebScrollbar* scrollbar, WebScrollb WebScrollbarLayerImpl::WebScrollbarLayerImpl(WebScrollbar* scrollbar, WebScrollbarThemePainter painter, WebScrollbarThemeGeometry* geometry) - : m_layer(new WebLayerImpl(ScrollbarLayer::create(make_scoped_ptr(scrollbar), painter, make_scoped_ptr(geometry), 0))) + : m_layer(new WebLayerImpl(ScrollbarLayer::create( + make_scoped_ptr(scrollbar), + WebToCCScrollbarThemePainterAdapter::Create( + make_scoped_ptr(new WebScrollbarThemePainter(painter))) + .PassAs<ScrollbarThemePainter>(), + make_scoped_ptr(geometry), + 0))) { } diff --git a/webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.cc b/webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.cc new file mode 100644 index 0000000..2c3361d --- /dev/null +++ b/webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.cc @@ -0,0 +1,65 @@ +// Copyright 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#include "web_to_ccscrollbar_theme_painter_adapter.h" + +#include "third_party/WebKit/Source/Platform/chromium/public/WebRect.h" +#include "third_party/WebKit/Source/Platform/chromium/public/WebScrollbarThemePainter.h" + +namespace WebKit { + +WebToCCScrollbarThemePainterAdapter::~WebToCCScrollbarThemePainterAdapter() { +} + +void WebToCCScrollbarThemePainterAdapter::PaintScrollbarBackground( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintScrollbarBackground(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintTrackBackground( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintTrackBackground(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintBackTrackPart( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintBackTrackPart(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintForwardTrackPart( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintForwardTrackPart(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintBackButtonStart( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintBackButtonStart(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintBackButtonEnd( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintBackButtonEnd(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintForwardButtonStart( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintForwardButtonStart(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintForwardButtonEnd( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintForwardButtonEnd(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintTickmarks( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintTickmarks(canvas, rect); +} + +void WebToCCScrollbarThemePainterAdapter::PaintThumb( + SkCanvas* canvas, const gfx::Rect& rect) { + painter_->paintThumb(canvas, rect); +} + +} // namespace WebKit diff --git a/webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.h b/webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.h new file mode 100644 index 0000000..7ad80bc --- /dev/null +++ b/webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.h @@ -0,0 +1,55 @@ +// Copyright 2012 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef WEBKIT_COMPOSITOR_BINDINGS_WEB_TO_CCSCROLLBAR_THEME_PAINTER_ADAPTER_H_ +#define WEBKIT_COMPOSITOR_BINDINGS_WEB_TO_CCSCROLLBAR_THEME_PAINTER_ADAPTER_H_ + +#include "base/memory/scoped_ptr.h" +#include "cc/scrollbar_theme_painter.h" + +namespace WebKit { + +class WebScrollbarThemePainter; + +class WebToCCScrollbarThemePainterAdapter : public cc::ScrollbarThemePainter { + public: + static scoped_ptr<WebToCCScrollbarThemePainterAdapter> Create( + scoped_ptr<WebScrollbarThemePainter> webPainter) { + return make_scoped_ptr(new WebToCCScrollbarThemePainterAdapter( + webPainter.Pass())); + } + virtual ~WebToCCScrollbarThemePainterAdapter(); + + virtual void PaintScrollbarBackground(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintTrackBackground(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintBackTrackPart(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintForwardTrackPart(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintBackButtonStart(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintBackButtonEnd(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintForwardButtonStart(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintForwardButtonEnd(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintTickmarks(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + virtual void PaintThumb(SkCanvas* canvas, const gfx::Rect& rect) + OVERRIDE; + + private: + WebToCCScrollbarThemePainterAdapter( + scoped_ptr<WebScrollbarThemePainter> webPainter) + : painter_(webPainter.Pass()) {} + + scoped_ptr<WebScrollbarThemePainter> painter_; +}; + +} // namespace WebKit + +#endif // WEBKIT_COMPOSITOR_BINDINGS_WEB_TO_CCSCROLLBAR_THEME_PAINTER_ADAPTER_H_ |