KRenderingPaintServerGradient.h [plain text]
#ifndef KRenderingPaintServerGradient_H
#define KRenderingPaintServerGradient_H
#if SVG_SUPPORT
#include <kcanvas/device/KRenderingPaintServer.h>
namespace WebCore {
enum KCGradientSpreadMethod {
SPREADMETHOD_PAD = 1,
SPREADMETHOD_REPEAT = 2,
SPREADMETHOD_REFLECT = 4
};
typedef std::pair<float, Color> KCGradientStop;
inline KCGradientStop makeGradientStop(float offset, const Color& color) { return std::make_pair(offset, color); }
TextStream& operator<<(TextStream&, KCGradientSpreadMethod);
class KCanvasMatrix;
class KRenderingPaintServerGradient : public KRenderingPaintServer
{
public:
KRenderingPaintServerGradient();
virtual ~KRenderingPaintServerGradient();
const Vector<KCGradientStop>& gradientStops() const;
void setGradientStops(const Vector<KCGradientStop>&);
void setGradientStops(KRenderingPaintServerGradient*);
KCGradientSpreadMethod spreadMethod() const;
void setGradientSpreadMethod(const KCGradientSpreadMethod &method);
bool boundingBoxMode() const;
void setBoundingBoxMode(bool mode = true);
KCanvasMatrix gradientTransform() const;
void setGradientTransform(const KCanvasMatrix &mat);
KCanvasResourceListener *listener() const;
void setListener(KCanvasResourceListener *listener);
TextStream &externalRepresentation(TextStream &) const;
private:
class Private;
Private *d;
};
class KRenderingPaintServerLinearGradient : public KRenderingPaintServerGradient
{
public:
KRenderingPaintServerLinearGradient();
virtual ~KRenderingPaintServerLinearGradient();
virtual KCPaintServerType type() const;
FloatPoint gradientStart() const;
void setGradientStart(const FloatPoint &start);
FloatPoint gradientEnd() const;
void setGradientEnd(const FloatPoint &end);
TextStream &externalRepresentation(TextStream &) const;
private:
class Private;
Private *d;
};
class KRenderingPaintServerRadialGradient : public KRenderingPaintServerGradient
{
public:
KRenderingPaintServerRadialGradient();
virtual ~KRenderingPaintServerRadialGradient();
virtual KCPaintServerType type() const;
FloatPoint gradientCenter() const;
void setGradientCenter(const FloatPoint ¢er);
FloatPoint gradientFocal() const;
void setGradientFocal(const FloatPoint &focal);
float gradientRadius() const;
void setGradientRadius(float radius);
TextStream &externalRepresentation(TextStream &) const;
private:
class Private;
Private *d;
};
}
#endif // SVG_SUPPORT
#endif