# kio Library API Documentation

Overview | Class Hierarchy | Classes | Classes (annotated) | Members | Source Files

# kimageiofactory.h

    00001 /*
    00002 * kimgio.h -- Declaration of interface to the KDE Image IO library.
    00003 * Sirtaj Singh Kang <taj@kde.org>, 23 Sep 1998.
    00004 *
    00005 * $Id: kimageiofactory.h,v 1.8 2002/03/04 04:17:36 lunakl Exp $
    00006 *
    00007 * This library is distributed under the conditions of the GNU LGPL.
    00008 */
    00009
    00010 #ifndef SSK_KIMGIOFACTORY_H
    00011 #define SSK_KIMGIOFACTORY_H
    00012
    00013 #include "ksycocafactory.h"
    00014 #include "kimageio.h"
    00015
    00016 class KImageIOFormat;
    00017 class KImageIOFormatList;
    00018
    00019 class KImageIOFormat : public KSycocaEntry
    00020 {
    00021   K_SYCOCATYPE( KST_KImageIOFormat, KSycocaEntry )
    00022
    00023 public:
    00024   typedef KSharedPtr<KImageIOFormat> Ptr;
    00025   typedef QValueList<Ptr> List;
    00026 public: // KDoc seems to barf on those typedefs and generates no docs after them
    00030   KImageIOFormat( const QString & path);
    00031
    00035   KImageIOFormat( QDataStream& _str, int offset);
    00036
    00037   virtual ~KImageIOFormat();
    00038
    00039   virtual QString name() const { return mType; }
    00040
    00041   virtual bool isValid() const { return true; }
    00042
    00047   virtual void load(QDataStream& );
    00048
    00053   virtual void save(QDataStream& );
    00054
    00059   void callLibFunc( bool read, QImageIO *);
    00060
    00061 public:
    00062   QString mType;
    00063   QString mHeader;
    00064   QString mFlags;
    00065   bool bRead;
    00066   bool bWrite;
    00067   QStringList mSuffices;
    00068   QString mPattern;
    00069   QString mMimetype;
    00070   QString mLib;
    00071   QStringList rPaths;
    00072   bool bLibLoaded;
    00073   void (*mReadFunc)(QImageIO *);
    00074   void (*mWriteFunc)(QImageIO *);
    00075 protected:
    00076   virtual void virtual_hook( int id, void* data );
    00077 };
    00078
    00079 class KImageIOFormatList : public KImageIOFormat::List
    00080 {
    00081 public:
    00082    KImageIOFormatList() { }
    00083 };
    00084
    00085
    00086 class KImageIOFactory : public KSycocaFactory
    00087 {
    00088   friend class KImageIO;
    00089   K_SYCOCAFACTORY( KST_KImageIO )
    00090 public:
    00091   static KImageIOFactory *self()
    00092   { if (!_self) new KImageIOFactory(); return _self; }
    00093   KImageIOFactory();
    00094   virtual ~KImageIOFactory();
    00095
    00096 protected: // Internal stuff
    00102   void load();
    00103
    00107   QString createPattern( KImageIO::Mode _mode);
    00108
    00112   virtual KSycocaEntry *createEntry(const QString &, const char *)
    00113     { return 0; }
    00114
    00118   virtual KSycocaEntry *createEntry(int offset);
    00119
    00123   static void readImage( QImageIO *iio);
    00124
    00128   static void writeImage( QImageIO *iio);
    00129
    00130 protected:
    00131   static KImageIOFactory *_self;
    00132   static KImageIOFormatList *formatList;
    00133   QString mReadPattern;
    00134   QString mWritePattern;
    00135   QStringList rPath;
    00136 protected:
    00137     virtual void virtual_hook( int id, void* data );
    00138 };
    00139
    00140 #endif
    00141

This file is part of the documentation for kdelibs Version 3.1.5.
Documentation copyright © 1996-2002 the KDE developers.
Generated on Wed Jan 28 13:13:38 2004 by doxygen 1.3.4 written by Dimitri van Heesch, © 1997-2001