kio Library API Documentation

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.10 2003/08/15 20:51:48 coolo 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 
00020 class KImageIOFormat : public KSycocaEntry
00021 {
00022   K_SYCOCATYPE( KST_KImageIOFormat, KSycocaEntry )
00023 
00024 public:
00025   typedef KSharedPtr<KImageIOFormat> Ptr;
00026   typedef QValueList<Ptr> List;
00027 public: // KDoc seems to barf on those typedefs and generates no docs after them
00031   KImageIOFormat( const QString & path);
00032   
00036   KImageIOFormat( QDataStream& _str, int offset);
00037 
00038   virtual ~KImageIOFormat();
00039 
00040   virtual QString name() const { return mType; }
00041 
00042   virtual bool isValid() const { return true; } 
00043 
00048   virtual void load(QDataStream& ); 
00049 
00054   virtual void save(QDataStream& );
00055 
00060   void callLibFunc( bool read, QImageIO *);
00061 
00062 public:  
00063   QString mType;
00064   QString mHeader;
00065   QString mFlags;
00066   bool bRead;
00067   bool bWrite;
00068   QStringList mSuffices;
00069   QString mPattern;
00070   QString mMimetype;
00071   QString mLib;
00072   QStringList rPaths;
00073   bool bLibLoaded;
00074   void (*mReadFunc)(QImageIO *);
00075   void (*mWriteFunc)(QImageIO *);
00076 protected:
00077   virtual void virtual_hook( int id, void* data );
00078 };
00079 
00081 class KImageIOFormatList : public KImageIOFormat::List
00082 {
00083 public:
00084    KImageIOFormatList() { }
00085 };
00086 
00087 
00089 class KImageIOFactory : public KSycocaFactory
00090 {
00091   friend class KImageIO;
00092   K_SYCOCAFACTORY( KST_KImageIO )
00093 public:
00094   static KImageIOFactory *self() 
00095   { if (!_self) new KImageIOFactory(); return _self; }
00096   KImageIOFactory();
00097   virtual ~KImageIOFactory();
00098 
00099 protected: // Internal stuff
00105   void load();
00106 
00110   QString createPattern( KImageIO::Mode _mode);
00111 
00115   virtual KSycocaEntry *createEntry(const QString &, const char *)
00116     { return 0; }                                                    
00117 
00121   virtual KSycocaEntry *createEntry(int offset);
00122 
00126   static void readImage( QImageIO *iio);
00127 
00131   static void writeImage( QImageIO *iio);
00132   
00133 protected:
00134   static KImageIOFactory *_self;  
00135   static KImageIOFormatList *formatList;
00136   QString mReadPattern;
00137   QString mWritePattern;
00138   QStringList rPath;
00139 protected:
00140     virtual void virtual_hook( int id, void* data );
00141 };
00142 
00143 #endif
00144 
KDE Logo
This file is part of the documentation for kio Library Version 3.2.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Thu Apr 22 14:24:09 2004 by doxygen 1.2.18 written by Dimitri van Heesch, © 1997-2003