#ifndef ScrollbarThemeClient_h
#define ScrollbarThemeClient_h
#include "platform/PlatformExport.h"
#include "platform/geometry/IntPoint.h"
#include "platform/geometry/IntRect.h"
#include "platform/geometry/IntSize.h"
#include "platform/scroll/ScrollTypes.h"
#include "wtf/PassOwnPtr.h"
#include "wtf/Vector.h"
namespace WebCore {
class Widget;
class PLATFORM_EXPORT ScrollbarThemeClient {
public:
    virtual int x() const = 0;
    virtual int y() const = 0;
    virtual int width() const = 0;
    virtual int height() const = 0;
    virtual IntSize size() const = 0;
    virtual IntPoint location() const = 0;
    virtual Widget* parent() const = 0;
    virtual Widget* root() const = 0;
    virtual void setFrameRect(const IntRect&) = 0;
    virtual IntRect frameRect() const = 0;
    virtual void invalidate() = 0;
    virtual void invalidateRect(const IntRect&) = 0;
    virtual ScrollbarOverlayStyle scrollbarOverlayStyle() const = 0;
    virtual void getTickmarks(Vector<IntRect>&) const = 0;
    virtual bool isScrollableAreaActive() const = 0;
    virtual bool isScrollViewScrollbar() const = 0;
    virtual IntPoint convertFromContainingWindow(const IntPoint& windowPoint) = 0;
    virtual bool isCustomScrollbar() const = 0;
    virtual ScrollbarOrientation orientation() const = 0;
    virtual bool isLeftSideVerticalScrollbar() const = 0;
    virtual int value() const = 0;
    virtual float currentPos() const = 0;
    virtual int visibleSize() const = 0;
    virtual int totalSize() const = 0;
    virtual int maximum() const = 0;
    virtual ScrollbarControlSize controlSize() const = 0;
    virtual ScrollbarPart pressedPart() const = 0;
    virtual ScrollbarPart hoveredPart() const = 0;
    virtual void styleChanged() = 0;
    virtual bool enabled() const = 0;
    virtual void setEnabled(bool) = 0;
    virtual bool isOverlayScrollbar() const = 0;
    virtual bool isAlphaLocked() const = 0;
    virtual void setIsAlphaLocked(bool) = 0;
protected:
    virtual ~ScrollbarThemeClient() { }
};
} 
#endif