Index: cc/scrollbar_layer_impl.h |
diff --git a/cc/scrollbar_layer_impl.h b/cc/scrollbar_layer_impl.h |
index 638cbb270ce9b24689d5095baf174ade4f4d1a13..e7cf58417a7ba11d519eaccfc36f5515c3898d44 100644 |
--- a/cc/scrollbar_layer_impl.h |
+++ b/cc/scrollbar_layer_impl.h |
@@ -1,3 +1,112 @@ |
// 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 CCScrollbarLayerImpl_h |
+#define CCScrollbarLayerImpl_h |
+ |
+#if USE(ACCELERATED_COMPOSITING) |
+ |
+#include "CCLayerImpl.h" |
+#include "CCScrollbarGeometryFixedThumb.h" |
+#include <public/WebRect.h> |
+#include <public/WebScrollbar.h> |
+#include <public/WebVector.h> |
+ |
+namespace cc { |
+ |
+class ScrollView; |
+ |
+class CCScrollbarLayerImpl : public CCLayerImpl { |
+public: |
+ static scoped_ptr<CCScrollbarLayerImpl> create(int id); |
+ virtual ~CCScrollbarLayerImpl(); |
+ |
+ CCScrollbarGeometryFixedThumb* scrollbarGeometry() const { return m_geometry.get(); } |
+ void setScrollbarGeometry(PassOwnPtr<CCScrollbarGeometryFixedThumb>); |
+ void setScrollbarData(WebKit::WebScrollbar*); |
+ |
+ void setBackTrackResourceId(CCResourceProvider::ResourceId id) { m_backTrackResourceId = id; } |
+ void setForeTrackResourceId(CCResourceProvider::ResourceId id) { m_foreTrackResourceId = id; } |
+ void setThumbResourceId(CCResourceProvider::ResourceId id) { m_thumbResourceId = id; } |
+ |
+ float currentPos() const { return m_currentPos; } |
+ void setCurrentPos(float currentPos) { m_currentPos = currentPos; } |
+ |
+ int totalSize() const { return m_totalSize; } |
+ void setTotalSize(int totalSize) { m_totalSize = totalSize; } |
+ |
+ int maximum() const { return m_maximum; } |
+ void setMaximum(int maximum) { m_maximum = maximum; } |
+ |
+ WebKit::WebScrollbar::Orientation orientation() const { return m_orientation; } |
+ |
+ virtual void appendQuads(CCQuadSink&, CCAppendQuadsData&) OVERRIDE; |
+ |
+ virtual void didLoseContext() OVERRIDE; |
+ |
+protected: |
+ explicit CCScrollbarLayerImpl(int id); |
+ |
+private: |
+ // nested class only to avoid namespace problem |
+ class CCScrollbar : public WebKit::WebScrollbar { |
+ public: |
+ explicit CCScrollbar(CCScrollbarLayerImpl* owner) : m_owner(owner) { } |
+ |
+ // WebScrollbar implementation |
+ virtual bool isOverlay() const; |
+ virtual int value() const; |
+ virtual WebKit::WebPoint location() const; |
+ virtual WebKit::WebSize size() const; |
+ virtual bool enabled() const; |
+ virtual int maximum() const; |
+ virtual int totalSize() const; |
+ virtual bool isScrollViewScrollbar() const; |
+ virtual bool isScrollableAreaActive() const; |
+ virtual void getTickmarks(WebKit::WebVector<WebKit::WebRect>& tickmarks) const; |
+ virtual WebScrollbar::ScrollbarControlSize controlSize() const; |
+ virtual WebScrollbar::ScrollbarPart pressedPart() const; |
+ virtual WebScrollbar::ScrollbarPart hoveredPart() const; |
+ virtual WebScrollbar::ScrollbarOverlayStyle scrollbarOverlayStyle() const; |
+ virtual WebScrollbar::Orientation orientation() const; |
+ virtual bool isCustomScrollbar() const; |
+ |
+ private: |
+ CCScrollbarLayerImpl* m_owner; |
+ |
+ }; |
+ |
+ virtual const char* layerTypeAsString() const OVERRIDE; |
+ |
+ CCScrollbar m_scrollbar; |
+ |
+ CCResourceProvider::ResourceId m_backTrackResourceId; |
+ CCResourceProvider::ResourceId m_foreTrackResourceId; |
+ CCResourceProvider::ResourceId m_thumbResourceId; |
+ |
+ OwnPtr<CCScrollbarGeometryFixedThumb> m_geometry; |
+ |
+ // Data to implement CCScrollbar |
+ WebKit::WebScrollbar::ScrollbarOverlayStyle m_scrollbarOverlayStyle; |
+ WebKit::WebVector<WebKit::WebRect> m_tickmarks; |
+ WebKit::WebScrollbar::Orientation m_orientation; |
+ WebKit::WebScrollbar::ScrollbarControlSize m_controlSize; |
+ WebKit::WebScrollbar::ScrollbarPart m_pressedPart; |
+ WebKit::WebScrollbar::ScrollbarPart m_hoveredPart; |
+ |
+ float m_currentPos; |
+ int m_totalSize; |
+ int m_maximum; |
+ |
+ bool m_isScrollableAreaActive; |
+ bool m_isScrollViewScrollbar; |
+ bool m_enabled; |
+ bool m_isCustomScrollbar; |
+ bool m_isOverlayScrollbar; |
+}; |
+ |
+} |
+#endif // USE(ACCELERATED_COMPOSITING) |
+ |
+#endif |