00001 #ifndef MYTHPAINTER_H_
00002 #define MYTHPAINTER_H_
00003
00004 #include <qrect.h>
00005 #include <qstring.h>
00006 #include <qwidget.h>
00007
00008
00009
00010 #include "compat.h"
00011
00012 class MythFontProperties;
00013 class MythImage;
00014
00015 class MythPainter
00016 {
00017 public:
00018 MythPainter() { }
00019 virtual ~MythPainter() { }
00020
00021 virtual QString GetName(void) = 0;
00022 virtual bool SupportsAnimation(void) = 0;
00023 virtual bool SupportsAlpha(void) = 0;
00024 virtual bool SupportsClipping(void) = 0;
00025
00026 virtual void Begin(QWidget *parent) { m_Parent = parent; }
00027 virtual void End() { m_Parent = NULL; }
00028
00029 virtual void SetClipRect(const QRect &clipRect);
00030
00031 QWidget *GetParent(void) { return m_Parent; }
00032
00033 virtual void DrawImage(const QRect &dest, MythImage *im, const QRect &src,
00034 int alpha) = 0;
00035
00036 void DrawImage(int x, int y, MythImage *im, int alpha);
00037 void DrawImage(const QPoint &topLeft, MythImage *im, int alph);
00038
00039 virtual void DrawText(const QRect &dest, const QString &msg, int flags,
00040 const MythFontProperties &font, int alpha) = 0;
00041
00042 virtual MythImage *GetFormatImage() = 0;
00043
00044
00045 virtual void DeleteFormatImage(MythImage *im) = 0;
00046
00047 protected:
00048 QWidget *m_Parent;
00049 };
00050
00051 #endif