KRenderingPaintServerPattern.cpp [plain text]
#include "config.h"
#if SVG_SUPPORT
#include "KCanvasMatrix.h"
#include "KCanvasImage.h"
#include "KRenderingPaintServerPattern.h"
#include "TextStream.h"
#include "KCanvasTreeDebug.h"
namespace WebCore {
class KRenderingPaintServerPattern::Private
{
public:
Private()
{
tile = 0;
useBoundingBoxMode = true;
listener = 0;
}
~Private() { delete tile; }
KCanvasImage *tile;
KCanvasMatrix patternTransform;
FloatRect bbox;
bool useBoundingBoxMode;
KCanvasResourceListener *listener;
};
KRenderingPaintServerPattern::KRenderingPaintServerPattern() : KRenderingPaintServer(), d(new Private())
{
}
KRenderingPaintServerPattern::~KRenderingPaintServerPattern()
{
delete d;
}
void KRenderingPaintServerPattern::setBbox(const FloatRect& rect)
{
d->bbox = rect;
}
FloatRect KRenderingPaintServerPattern::bbox() const
{
return d->bbox;
}
bool KRenderingPaintServerPattern::boundingBoxMode() const
{
return d->useBoundingBoxMode;
}
void KRenderingPaintServerPattern::setBoundingBoxMode(bool mode)
{
d->useBoundingBoxMode = mode;
}
KCanvasImage *KRenderingPaintServerPattern::tile() const
{
return d->tile;
}
void KRenderingPaintServerPattern::setTile(KCanvasImage *tile)
{
d->tile = tile;
}
KCanvasMatrix KRenderingPaintServerPattern::patternTransform() const
{
return d->patternTransform;
}
void KRenderingPaintServerPattern::setPatternTransform(const KCanvasMatrix &mat)
{
d->patternTransform = mat;
}
KCPaintServerType KRenderingPaintServerPattern::type() const
{
return PS_PATTERN;
}
KCanvasResourceListener *KRenderingPaintServerPattern::listener() const
{
return d->listener;
}
void KRenderingPaintServerPattern::setListener(KCanvasResourceListener *listener)
{
d->listener = listener;
}
TextStream &KRenderingPaintServerPattern::externalRepresentation(TextStream &ts) const
{
ts << "[type=PATTERN]"
<< " [bbox=" << bbox() << "]";
if (!boundingBoxMode())
ts << " [bounding box mode=" << boundingBoxMode() << "]";
if (!patternTransform().matrix().isIdentity())
ts << " [pattern transform=" << patternTransform().matrix() << "]";
return ts;
}
}
#endif // SVG_SUPPORT