00001 #ifndef MYTHPAINTER_QIMAGE_H_
00002 #define MYTHPAINTER_QIMAGE_H_
00003
00004
00005 #include <list>
00006
00007
00008 #include <QMap>
00009
00010
00011 #include "mythpainter.h"
00012 #include "mythimage.h"
00013 #include "compat.h"
00014
00015 class QPainter;
00016
00017 class MUI_PUBLIC MythQImagePainter : public MythPainter
00018 {
00019 public:
00020 MythQImagePainter();
00021 ~MythQImagePainter();
00022
00023 virtual QString GetName(void) { return QString("QImage"); }
00024 virtual bool SupportsAnimation(void) { return false; }
00025 virtual bool SupportsAlpha(void) { return true; }
00026 virtual bool SupportsClipping(void) { return true; }
00027
00028 virtual void Begin(QPaintDevice *parent);
00029 virtual void End();
00030
00031 virtual void SetClipRect(const QRect &clipRect);
00032 virtual void SetClipRegion(const QRegion ®ion);
00033 virtual void Clear(QPaintDevice *device, const QRegion ®ion);
00034
00035 virtual void DrawImage(const QRect &dest, MythImage *im, const QRect &src,
00036 int alpha);
00037 virtual void DrawText(const QRect &dest, const QString &msg, int flags,
00038 const MythFontProperties &font, int alpha,
00039 const QRect &boundRect);
00040 virtual void DrawRect(const QRect &area, const QBrush &fillBrush,
00041 const QPen &linePen, int alpha);
00042 virtual void DrawRoundRect(const QRect &area, int cornerRadius,
00043 const QBrush &fillBrush, const QPen &linePen,
00044 int alpha);
00045 virtual void DrawEllipse(const QRect &area, const QBrush &fillBrush,
00046 const QPen &linePen, int alpha);
00047
00048 protected:
00049 virtual MythImage* GetFormatImagePriv(void) { return new MythImage(this); }
00050 virtual void DeleteFormatImagePriv(MythImage *im) { }
00051
00052 void CheckPaintMode(const QRect &area);
00053
00054 QPainter *painter;
00055 QRegion clipRegion;
00056 QRegion paintedRegion;
00057 bool copy;
00058 };
00059
00060 #endif
00061