summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
Diffstat (limited to 'webkit')
-rw-r--r--webkit/compositor_bindings/compositor_bindings.gyp2
-rw-r--r--webkit/compositor_bindings/web_scrollbar_layer_impl.cc10
-rw-r--r--webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.cc65
-rw-r--r--webkit/compositor_bindings/web_to_ccscrollbar_theme_painter_adapter.h55
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_