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