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.3.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Wed Sep 29 09:41:05 2004 by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2003