#ifndef QIMAGEIOHANDLER_H
#define QIMAGEIOHANDLER_H 
#include <QtCore/qplugin.h>
#include <QtCore/qfactoryinterface.h>
typedef enum QtValidLicenseForGuiModule QtGuiModule;
struct QImage;
struct QRect;
struct QSize;
struct QImageIOHandlerPrivate;
class QImageIOHandler{
   private: inline struct QImageIOHandlerPrivate* d_func();
   private: inline struct QImageIOHandlerPrivate const * d_func() const
   public: QImageIOHandler();
   public: virtual ~QImageIOHandler();
   public: void setDevice(class QIODevice* device);
   public: class QIODevice* device() const
   public: void setFormat(class QByteArray const & format);
   public: void setFormat(class QByteArray const & format) const
   public: class QByteArray format() const
   public: virtual class QByteArray name() const
   public: virtual bool canRead() const = 0;
   public: virtual bool read(struct QImage* image) = 0;
   public: virtual bool write(struct QImage const & image);
   public: enum ImageOption{
      Size = 0,
      ClipRect = 1,
      Description = 2,
      ScaledClipRect = 3,
      ScaledSize = 4,
      CompressionRatio = 5,
      Gamma = 6,
      Quality = 7,
      Name = 8,
      SubType = 9,
      IncrementalReading = 10,
      Endianness = 11,
      Animation = 12,
      BackgroundColor = 13,
   };
   public: virtual struct QVariant option(enum QImageIOHandler::ImageOption option) const
   public: virtual void setOption(enum QImageIOHandler::ImageOption option, struct QVariant const & value);
   public: virtual bool supportsOption(enum QImageIOHandler::ImageOption option) const
   public: virtual bool jumpToNextImage();
   public: virtual bool jumpToImage(int imageNumber);
   public: virtual int loopCount() const
   public: virtual int imageCount() const
   public: virtual int nextImageDelay() const
   public: virtual int currentImageNumber() const
   public: virtual struct QRect currentImageRect() const
   protected: QImageIOHandler(struct QImageIOHandlerPrivate& dd);
   protected: struct QImageIOHandlerPrivate* d_ptr;
   private: QImageIOHandler(class QImageIOHandler const &);
   private: class QImageIOHandler& operator =(class QImageIOHandler const &);
   friend struct QImageIOHandlerPrivate;
};
struct QImageIOHandlerFactoryInterface: public QFactoryInterface{
   public: virtual class QImageIOHandler* create(class QIODevice* device, class QByteArray const & format = QByteArray::QByteArray()) const = 0;
};
#define QImageIOHandlerFactoryInterface_iid "com.trolltech.Qt.QImageIOHandlerFactoryInterface"

class QImageIOPlugin: public QObject, public QImageIOHandlerFactoryInterface{
   public: virtual struct QMetaObject const * metaObject() const
   public: virtual void* qt_metacast(char const *);
   public: static struct QMetaObject const staticMetaObject;
   public: static inline class QString tr(char const * s, char const * c = 0);
   public: static inline class QString trUtf8(char const * s, char const * c = 0);
   public: static inline class QString tr(char const * s, char const * c, int n);
   public: static inline class QString trUtf8(char const * s, char const * c, int n);
   public: virtual int qt_metacall(enum QMetaObject::Call, int, void* *);
   public: explicit QImageIOPlugin(class QObject* parent = 0);
   public: virtual ~QImageIOPlugin();
   public: enum Capability{
      CanRead = 1,
      CanWrite = 2,
      CanReadIncremental = 4,
   };
   public: typedef class QFlags < enum QImageIOPlugin::Capability > Capabilities;
   public: virtual class QFlags < enum QImageIOPlugin::Capability > capabilities(class QIODevice* device, class QByteArray const & format) const = 0;
   public: virtual class QStringList keys() const = 0;
   public: virtual class QImageIOHandler* create(class QIODevice* device, class QByteArray const & format = QByteArray::QByteArray()) const = 0;
};
inline class QFlags < enum QImageIOPlugin::Capability > operator |(enum QImageIOPlugin::Capability f1, class QFlags < enum QImageIOPlugin::Capability > f2);
inline class QFlags < enum QImageIOPlugin::Capability > operator |(enum QImageIOPlugin::Capability f1, enum QImageIOPlugin::Capability f2);
#endif // QIMAGEIOHANDLER_H