00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __koPictureBase_h__
00021 #define __koPictureBase_h__
00022
00023 #include "KoPictureKey.h"
00024
00025 #include <QString>
00026 #include <QImage>
00027
00028 #include <QPixmap>
00029
00030 class KoXmlWriter;
00031 class QPainter;
00032 class QSize;
00033 class QIODevice;
00034 class Q3DragObject;
00035
00036 const char NULL_MIME_TYPE[]="application/x-zerosize";
00037
00038
00039
00044 class KoPictureBase
00045 {
00046 public:
00050 KoPictureBase();
00051
00055 virtual ~KoPictureBase();
00056
00057 virtual KoPictureType::Type getType(void) const;
00058
00059 virtual KoPictureBase* newCopy(void) const;
00060
00064 virtual bool isNull(void) const;
00065
00081 virtual void draw(QPainter& painter, int x, int y, int width, int height, int sx = 0, int sy = 0, int sw = -1, int sh = -1, bool fastMode = false);
00082
00088 virtual Q3DragObject* dragObject( QWidget *dragSource = 0L, const char *name = 0L );
00089
00090 virtual bool load(QIODevice* io, const QString& extension);
00091
00092 virtual bool loadData(const QByteArray& array, const QString& extension);
00093
00098 virtual bool save(QIODevice* io) const;
00099
00104 virtual bool saveAsBase64( KoXmlWriter& writer ) const;
00105
00106 virtual QSize getOriginalSize(void) const;
00107
00108 virtual QPixmap generatePixmap(const QSize& size, bool smoothScale = false);
00109
00110 virtual QString getMimeType(const QString& extension) const;
00111
00112 bool isSlowResizeModeAllowed(void) const;
00113
00118 virtual QImage generateImage(const QSize& size);
00119
00120 virtual bool hasAlphaBuffer() const
00121 { return false; }
00122 virtual void setAlphaBuffer(bool )
00123 { }
00124 virtual QImage createAlphaMask(Qt::ImageConversionFlags = Qt::AutoColor) const
00125 { return QImage(); }
00126
00127 virtual void clearCache(void);
00128 };
00129
00130 #endif