#include #include #include #include #include #include #include #ifndef PAINT_ENGINE_H #define PAINT_ENGINE_H namespace icl{ /// Forward declaration of the ImgBase class class ImgBase; /// Paint engine interface class PaintEngine{ public: virtual ~PaintEngine(){} enum AlignMode {NoAlign, Centered, Justify}; enum TextWeight {Light, Normal, DemiBold, Bold, Black}; enum TextStyle {StyleNormal, StyleItalic, StyleOblique }; virtual void color(int r, int g, int b, int a=255)=0; virtual void fill(int r, int g, int b, int a=255)=0; virtual void fontsize(int size)=0; virtual void font(std::string name, int size = -1, TextWeight weight = Normal, TextStyle style = StyleNormal)=0; virtual void line(const Point &a, const Point &b)=0; virtual void point(const Point &p)=0; virtual void image(const Rect &r,ImgBase *image, AlignMode mode = Justify)=0; virtual void image(const Rect &r,const QImage &image, AlignMode mode = Justify)=0; virtual void rect(const Rect &r)=0; virtual void ellipse(const Rect &r)=0; virtual void text(const Rect &r, const std::string text, AlignMode mode = Centered)=0; /// brightness-constrast intensity adjustment (for images only) virtual void bci(int brightness=0, int contrast=0, int intensity=0)=0; virtual void bciAuto()=0; virtual void getColor(int *piColor)=0; virtual void getFill(int *piColor)=0; }; }// namespace #endif