summaryrefslogtreecommitdiff
path: root/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h')
-rw-r--r--Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h121
1 files changed, 51 insertions, 70 deletions
diff --git a/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h b/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
index faa3361ba..5b8dac297 100644
--- a/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
+++ b/Source/WebCore/platform/graphics/chromium/cc/CCScrollbarLayerImpl.h
@@ -28,8 +28,11 @@
#if USE(ACCELERATED_COMPOSITING)
-#include "ScrollbarThemeClient.h"
#include "cc/CCLayerImpl.h"
+#include <public/WebRect.h>
+#include <public/WebScrollbar.h>
+#include <public/WebScrollbarThemeGeometry.h>
+#include <public/WebVector.h>
namespace WebCore {
@@ -39,108 +42,86 @@ class CCScrollbarLayerImpl : public CCLayerImpl {
public:
static PassOwnPtr<CCScrollbarLayerImpl> create(int id);
- void setScrollbarOverlayStyle(ScrollbarOverlayStyle scrollbarOverlayStyle) { m_scrollbarOverlayStyle = scrollbarOverlayStyle; }
- void setTickmarks(const Vector<IntRect>& tickmarks) { m_tickmarks = tickmarks; }
- void setIsScrollableAreaActive(bool isScrollableAreaActive) { m_isScrollableAreaActive = isScrollableAreaActive; }
- void setIsScrollViewScrollbar(bool isScrollViewScrollbar) { m_isScrollViewScrollbar = isScrollViewScrollbar; }
-
- void setOrientation(ScrollbarOrientation orientation) { m_orientation = orientation; }
-
- void setControlSize(ScrollbarControlSize controlSize) { m_controlSize = controlSize; }
-
- void setPressedPart(ScrollbarPart pressedPart) { m_pressedPart = pressedPart; }
- void setHoveredPart(ScrollbarPart hoveredPart) { m_hoveredPart = hoveredPart; }
-
- void setEnabled(bool enabled) { m_enabled = enabled; }
+ WebKit::WebScrollbarThemeGeometry* scrollbarGeometry() const { return m_geometry.get(); }
+ void setScrollbarGeometry(PassOwnPtr<WebKit::WebScrollbarThemeGeometry>);
+ void setScrollbarData(const 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; }
- CCLayerImpl* scrollLayer() const { return m_scrollLayer; }
- void setScrollLayer(CCLayerImpl* scrollLayer) { m_scrollLayer = scrollLayer; }
+ 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&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
+ virtual void didLoseContext() OVERRIDE;
+
protected:
explicit CCScrollbarLayerImpl(int id);
private:
- CCLayerImpl* m_scrollLayer;
-
// nested class only to avoid namespace problem
- class CCScrollbar : public ScrollbarThemeClient {
+ class CCScrollbar : public WebKit::WebScrollbar {
public:
explicit CCScrollbar(CCScrollbarLayerImpl* owner) : m_owner(owner) { }
- // ScrollbarThemeClient implementation
- virtual int x() const;
- virtual int y() const;
- virtual int width() const;
- virtual int height() const;
- virtual IntSize size() const;
- virtual IntPoint location() const;
-
- virtual ScrollView* parent() const;
- virtual ScrollView* root() const;
-
- virtual void setFrameRect(const IntRect&);
- virtual IntRect frameRect() const;
-
- virtual void invalidate();
- virtual void invalidateRect(const IntRect&);
-
- virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const;
- virtual void getTickmarks(Vector<IntRect>&) const;
- virtual bool isScrollableAreaActive() const;
- virtual bool isScrollViewScrollbar() const;
-
- virtual IntPoint convertFromContainingWindow(const IntPoint& windowPoint);
-
- virtual bool isCustomScrollbar() const;
- virtual ScrollbarOrientation orientation() const;
-
+ // WebScrollbar implementation
+ virtual bool isOverlay() const;
virtual int value() const;
- virtual float currentPos() const;
- virtual int visibleSize() const;
- virtual int totalSize() const;
- virtual int maximum() const;
- virtual ScrollbarControlSize controlSize() const;
-
- virtual int lineStep() const;
- virtual int pageStep() const;
-
- virtual ScrollbarPart pressedPart() const;
- virtual ScrollbarPart hoveredPart() const;
-
- virtual void styleChanged();
-
+ virtual WebKit::WebPoint location() const;
+ virtual WebKit::WebSize size() const;
virtual bool enabled() const;
- virtual void setEnabled(bool);
+ 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;
};
+
CCScrollbar m_scrollbar;
CCResourceProvider::ResourceId m_backTrackResourceId;
CCResourceProvider::ResourceId m_foreTrackResourceId;
CCResourceProvider::ResourceId m_thumbResourceId;
- ScrollbarOverlayStyle m_scrollbarOverlayStyle;
- Vector<IntRect> m_tickmarks;
- bool m_isScrollableAreaActive;
- bool m_isScrollViewScrollbar;
-
- ScrollbarOrientation m_orientation;
+ OwnPtr<WebKit::WebScrollbarThemeGeometry> m_geometry;
- ScrollbarControlSize m_controlSize;
+ // 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;
- ScrollbarPart m_pressedPart;
- 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;
};
}