summaryrefslogtreecommitdiffstats
path: root/cc/scrollbar_geometry_stub.h
diff options
context:
space:
mode:
Diffstat (limited to 'cc/scrollbar_geometry_stub.h')
-rw-r--r--cc/scrollbar_geometry_stub.h49
1 files changed, 49 insertions, 0 deletions
diff --git a/cc/scrollbar_geometry_stub.h b/cc/scrollbar_geometry_stub.h
index 638cbb2..0d23a4e 100644
--- a/cc/scrollbar_geometry_stub.h
+++ b/cc/scrollbar_geometry_stub.h
@@ -1,3 +1,52 @@
// 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 CCScrollbarGeometryStub_h
+#define CCScrollbarGeometryStub_h
+
+#include <public/WebScrollbarThemeGeometry.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/PassOwnPtr.h>
+
+namespace cc {
+
+// This subclass wraps an existing scrollbar geometry class so that
+// another class can derive from it and override specific functions, while
+// passing through the remaining ones.
+class CCScrollbarGeometryStub : public WebKit::WebScrollbarThemeGeometry {
+public:
+ virtual ~CCScrollbarGeometryStub();
+
+ // Allow derived classes to update themselves from a scrollbar.
+ void update(WebKit::WebScrollbar*) { }
+
+ // WebScrollbarThemeGeometry interface
+ virtual WebKit::WebScrollbarThemeGeometry* clone() const OVERRIDE;
+ virtual int thumbPosition(WebKit::WebScrollbar*) OVERRIDE;
+ virtual int thumbLength(WebKit::WebScrollbar*) OVERRIDE;
+ virtual int trackPosition(WebKit::WebScrollbar*) OVERRIDE;
+ virtual int trackLength(WebKit::WebScrollbar*) OVERRIDE;
+ virtual bool hasButtons(WebKit::WebScrollbar*) OVERRIDE;
+ virtual bool hasThumb(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect trackRect(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect thumbRect(WebKit::WebScrollbar*) OVERRIDE;
+ virtual int minimumThumbLength(WebKit::WebScrollbar*) OVERRIDE;
+ virtual int scrollbarThickness(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect backButtonStartRect(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect backButtonEndRect(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect forwardButtonStartRect(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect forwardButtonEndRect(WebKit::WebScrollbar*) OVERRIDE;
+ virtual WebKit::WebRect constrainTrackRectToTrackPieces(WebKit::WebScrollbar*, const WebKit::WebRect&) OVERRIDE;
+ virtual void splitTrack(WebKit::WebScrollbar*, const WebKit::WebRect& track, WebKit::WebRect& startTrack, WebKit::WebRect& thumb, WebKit::WebRect& endTrack) OVERRIDE;
+
+protected:
+ explicit CCScrollbarGeometryStub(PassOwnPtr<WebKit::WebScrollbarThemeGeometry>);
+
+private:
+ OwnPtr<WebKit::WebScrollbarThemeGeometry> m_geometry;
+};
+
+}
+
+#endif