#ifndef ScrollbarGroup_h
#define ScrollbarGroup_h
#include "platform/scroll/ScrollableArea.h"
#include "wtf/RefPtr.h"
namespace WebCore {
class FrameView;
}
namespace blink {
class WebPluginScrollbarImpl;
class ScrollbarGroup FINAL : public WebCore::ScrollableArea {
public:
ScrollbarGroup(WebCore::FrameView*, const WebCore::IntRect& frameRect);
virtual ~ScrollbarGroup();
void scrollbarCreated(WebPluginScrollbarImpl*);
void scrollbarDestroyed(WebPluginScrollbarImpl*);
void setLastMousePosition(const WebCore::IntPoint&);
void setFrameRect(const WebCore::IntRect&);
virtual int scrollSize(WebCore::ScrollbarOrientation) const OVERRIDE;
virtual void setScrollOffset(const WebCore::IntPoint&) OVERRIDE;
virtual void invalidateScrollbarRect(WebCore::Scrollbar*, const WebCore::IntRect&) OVERRIDE;
virtual void invalidateScrollCornerRect(const WebCore::IntRect&) OVERRIDE;
virtual bool isActive() const OVERRIDE;
virtual WebCore::IntRect scrollCornerRect() const OVERRIDE { return WebCore::IntRect(); }
virtual bool isScrollCornerVisible() const OVERRIDE;
virtual void getTickmarks(Vector<WebCore::IntRect>&) const OVERRIDE;
virtual WebCore::IntPoint convertFromContainingViewToScrollbar(const WebCore::Scrollbar*, const WebCore::IntPoint& parentPoint) const OVERRIDE;
virtual WebCore::Scrollbar* horizontalScrollbar() const OVERRIDE;
virtual WebCore::Scrollbar* verticalScrollbar() const OVERRIDE;
virtual WebCore::IntPoint scrollPosition() const OVERRIDE;
virtual WebCore::IntPoint minimumScrollPosition() const OVERRIDE;
virtual WebCore::IntPoint maximumScrollPosition() const OVERRIDE;
virtual int visibleHeight() const OVERRIDE;
virtual int visibleWidth() const OVERRIDE;
virtual WebCore::IntSize contentsSize() const OVERRIDE;
virtual WebCore::IntSize overhangAmount() const OVERRIDE;
virtual WebCore::IntPoint lastKnownMousePosition() const OVERRIDE;
virtual bool shouldSuspendScrollAnimations() const OVERRIDE;
virtual void scrollbarStyleChanged(int newStyle, bool forceUpdate) OVERRIDE;
virtual bool scrollbarsCanBeActive() const OVERRIDE;
virtual WebCore::IntRect scrollableAreaBoundingBox() const OVERRIDE;
virtual bool userInputScrollable(WebCore::ScrollbarOrientation) const OVERRIDE;
virtual bool shouldPlaceVerticalScrollbarOnLeft() const OVERRIDE;
virtual int pageStep(WebCore::ScrollbarOrientation) const OVERRIDE;
private:
WebCore::FrameView* m_frameView;
WebCore::IntPoint m_lastMousePosition;
WebCore::IntRect m_frameRect;
WebPluginScrollbarImpl* m_horizontalScrollbar;
WebPluginScrollbarImpl* m_verticalScrollbar;
};
}
#endif