#ifndef WebScrollbarThemeGeometryNative_h
#define WebScrollbarThemeGeometryNative_h
#include "platform/PlatformExport.h"
#include "public/platform/WebRect.h"
#include "public/platform/WebScrollbarThemeGeometry.h"
#include "wtf/PassOwnPtr.h"
namespace WebCore {
class ScrollbarTheme;
}
namespace blink {
class WebScrollbar;
class PLATFORM_EXPORT WebScrollbarThemeGeometryNative : public WebScrollbarThemeGeometry {
public:
static PassOwnPtr<WebScrollbarThemeGeometryNative> create(WebCore::ScrollbarTheme*);
virtual WebScrollbarThemeGeometryNative* clone() const OVERRIDE;
virtual int thumbPosition(WebScrollbar*) OVERRIDE;
virtual int thumbLength(WebScrollbar*) OVERRIDE;
virtual int trackPosition(WebScrollbar*) OVERRIDE;
virtual int trackLength(WebScrollbar*) OVERRIDE;
virtual bool hasButtons(WebScrollbar*) OVERRIDE;
virtual bool hasThumb(WebScrollbar*) OVERRIDE;
virtual WebRect trackRect(WebScrollbar*) OVERRIDE;
virtual WebRect thumbRect(WebScrollbar*) OVERRIDE;
virtual int minimumThumbLength(WebScrollbar*) OVERRIDE;
virtual int scrollbarThickness(WebScrollbar*) OVERRIDE;
virtual WebRect backButtonStartRect(WebScrollbar*) OVERRIDE;
virtual WebRect backButtonEndRect(WebScrollbar*) OVERRIDE;
virtual WebRect forwardButtonStartRect(WebScrollbar*) OVERRIDE;
virtual WebRect forwardButtonEndRect(WebScrollbar*) OVERRIDE;
virtual WebRect constrainTrackRectToTrackPieces(WebScrollbar*, const WebRect&) OVERRIDE;
virtual void splitTrack(WebScrollbar*, const WebRect& track, WebRect& startTrack, WebRect& thumb, WebRect& endTrack) OVERRIDE;
private:
explicit WebScrollbarThemeGeometryNative(WebCore::ScrollbarTheme*);
WebCore::ScrollbarTheme* m_theme;
};
}
#endif