#ifndef ScrollbarThemeOverlay_h
#define ScrollbarThemeOverlay_h
#include "platform/scroll/ScrollbarTheme.h"
namespace WebCore {
class PLATFORM_EXPORT ScrollbarThemeOverlay : public ScrollbarTheme {
public:
enum HitTestBehavior { AllowHitTest, DisallowHitTest };
ScrollbarThemeOverlay(int thumbThickness, int scrollbarMargin, HitTestBehavior);
ScrollbarThemeOverlay(int thumbThickness, int scrollbarMargin, HitTestBehavior, Color);
virtual ~ScrollbarThemeOverlay() { }
virtual int scrollbarThickness(ScrollbarControlSize) OVERRIDE;
virtual bool usesOverlayScrollbars() const OVERRIDE;
virtual int thumbPosition(ScrollbarThemeClient*) OVERRIDE;
virtual int thumbLength(ScrollbarThemeClient*) OVERRIDE;
virtual bool hasButtons(ScrollbarThemeClient*) OVERRIDE { return false; };
virtual bool hasThumb(ScrollbarThemeClient*) OVERRIDE;
virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false) OVERRIDE;
virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false) OVERRIDE;
virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false) OVERRIDE;
virtual int thumbThickness(ScrollbarThemeClient*) OVERRIDE;
virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&) OVERRIDE;
virtual ScrollbarPart hitTest(ScrollbarThemeClient*, const IntPoint&) OVERRIDE;
private:
int m_thumbThickness;
int m_scrollbarMargin;
HitTestBehavior m_allowHitTest;
Color m_color;
const bool m_useSolidColor;
};
}
#endif