CCScrollbarLayerImpl.h [plain text]
#ifndef CCScrollbarLayerImpl_h
#define CCScrollbarLayerImpl_h
#if USE(ACCELERATED_COMPOSITING)
#include "CCLayerImpl.h"
#include "ManagedTexture.h"
#include "ScrollbarThemeClient.h"
namespace WebCore {
class GraphicsContext;
class ScrollView;
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; }
CCLayerImpl* scrollLayer() const { return m_scrollLayer; }
void setScrollLayer(CCLayerImpl* scrollLayer) { m_scrollLayer = scrollLayer; }
virtual void willDraw(LayerRendererChromium*) OVERRIDE;
virtual void appendQuads(CCQuadCuller&, const CCSharedQuadState*, bool& hadMissingTiles) OVERRIDE;
virtual void didDraw() OVERRIDE;
protected:
explicit CCScrollbarLayerImpl(int id);
virtual void paint(GraphicsContext*);
private:
CCLayerImpl* m_scrollLayer;
OwnPtr<ManagedTexture> m_texture;
class CCScrollbar : public ScrollbarThemeClient {
public:
explicit CCScrollbar(CCScrollbarLayerImpl* owner) : m_owner(owner) { }
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;
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 bool enabled() const;
virtual void setEnabled(bool);
private:
CCScrollbarLayerImpl* m_owner;
};
CCScrollbar m_scrollbar;
ScrollbarOverlayStyle m_scrollbarOverlayStyle;
Vector<IntRect> m_tickmarks;
bool m_isScrollableAreaActive;
bool m_isScrollViewScrollbar;
ScrollbarOrientation m_orientation;
ScrollbarControlSize m_controlSize;
ScrollbarPart m_pressedPart;
ScrollbarPart m_hoveredPart;
bool m_enabled;
};
}
#endif // USE(ACCELERATED_COMPOSITING)
#endif