ScrollbarThemeComposite.h [plain text]
#ifndef ScrollbarThemeComposite_h
#define ScrollbarThemeComposite_h
#include "ScrollbarTheme.h"
namespace WebCore {
class ScrollbarThemeComposite : public ScrollbarTheme {
public:
virtual bool paint(ScrollbarThemeClient*, GraphicsContext*, const IntRect& damageRect);
virtual ScrollbarPart hitTest(ScrollbarThemeClient*, const IntPoint&);
virtual void invalidatePart(ScrollbarThemeClient*, ScrollbarPart);
virtual int thumbPosition(ScrollbarThemeClient*);
virtual int thumbLength(ScrollbarThemeClient*);
virtual int trackPosition(ScrollbarThemeClient*);
virtual int trackLength(ScrollbarThemeClient*);
virtual void paintScrollCorner(ScrollView*, GraphicsContext*, const IntRect& cornerRect);
virtual void paintOverhangAreas(ScrollView*, GraphicsContext*, const IntRect& horizontalOverhangArea, const IntRect& verticalOverhangArea, const IntRect& dirtyRect);
virtual bool hasButtons(ScrollbarThemeClient*) = 0;
virtual bool hasThumb(ScrollbarThemeClient*) = 0;
virtual IntRect backButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false) = 0;
virtual IntRect forwardButtonRect(ScrollbarThemeClient*, ScrollbarPart, bool painting = false) = 0;
virtual IntRect trackRect(ScrollbarThemeClient*, bool painting = false) = 0;
virtual IntRect thumbRect(ScrollbarThemeClient*);
virtual void splitTrack(ScrollbarThemeClient*, const IntRect& track, IntRect& startTrack, IntRect& thumb, IntRect& endTrack);
virtual int minimumThumbLength(ScrollbarThemeClient*);
virtual void paintScrollbarBackground(GraphicsContext*, ScrollbarThemeClient*) { }
virtual void paintTrackBackground(GraphicsContext*, ScrollbarThemeClient*, const IntRect&) { }
virtual void paintTrackPiece(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart) { }
virtual void paintButton(GraphicsContext*, ScrollbarThemeClient*, const IntRect&, ScrollbarPart) { }
virtual void paintThumb(GraphicsContext*, ScrollbarThemeClient*, const IntRect&) { }
virtual IntRect constrainTrackRectToTrackPieces(ScrollbarThemeClient*, const IntRect& rect) { return rect; }
};
}
#endif