Eneboo - Documentación para desarrolladores
src/qt/include/qasyncimageio.h
Ir a la documentación de este archivo.
00001 /****************************************************************************
00002 ** $Id: qt/qasyncimageio.h   3.3.8   edited Jan 11 14:38 $
00003 **
00004 ** Definition of asynchronous image/movie loading classes
00005 **
00006 ** Created : 970617
00007 **
00008 ** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
00009 **
00010 ** This file is part of the kernel module of the Qt GUI Toolkit.
00011 **
00012 ** This file may be distributed under the terms of the Q Public License
00013 ** as defined by Trolltech ASA of Norway and appearing in the file
00014 ** LICENSE.QPL included in the packaging of this file.
00015 **
00016 ** This file may be distributed and/or modified under the terms of the
00017 ** GNU General Public License version 2 as published by the Free Software
00018 ** Foundation and appearing in the file LICENSE.GPL included in the
00019 ** packaging of this file.
00020 **
00021 ** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
00022 ** licenses may use this file in accordance with the Qt Commercial License
00023 ** Agreement provided with the Software.
00024 **
00025 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
00026 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
00027 **
00028 ** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
00029 **   information about Qt Commercial License Agreements.
00030 ** See http://www.trolltech.com/qpl/ for QPL licensing information.
00031 ** See http://www.trolltech.com/gpl/ for GPL licensing information.
00032 **
00033 ** Contact info@trolltech.com if any conditions of this licensing are
00034 ** not clear to you.
00035 **
00036 **********************************************************************/
00037 
00038 #ifndef QASYNCIMAGEIO_H
00039 #define QASYNCIMAGEIO_H
00040 
00041 #ifndef QT_H
00042 #include "qimage.h"
00043 #endif // QT_H
00044 
00045 #ifndef QT_NO_ASYNC_IMAGE_IO
00046 
00047 #if __GNUC__ - 0 > 3
00048 #pragma GCC system_header
00049 #endif
00050 
00051 class Q_EXPORT QImageConsumer {
00052 public:
00053     virtual void end()=0;
00054 
00055     // Change transfer type 1.
00056     virtual void changed( const QRect& ) = 0;
00057     virtual void frameDone() = 0;
00058 
00059     // Change transfer type 2.
00060     virtual void frameDone( const QPoint&, const QRect& ) = 0;
00061 
00062     virtual void setLooping( int ) = 0;
00063     virtual void setFramePeriod( int ) = 0;
00064     virtual void setSize( int, int ) = 0;
00065 };
00066 
00067 class Q_EXPORT QImageFormat {
00068 public:
00069     virtual ~QImageFormat();
00070     virtual int decode( QImage& img, QImageConsumer* consumer,
00071                         const uchar* buffer, int length ) = 0;
00072 };
00073 
00074 class Q_EXPORT QImageFormatType {
00075 public:
00076     virtual ~QImageFormatType();
00077     virtual QImageFormat* decoderFor( const uchar* buffer, int length ) = 0;
00078     virtual const char* formatName() const = 0;
00079 protected:
00080     QImageFormatType();
00081 };
00082 
00083 class QImageDecoderPrivate;
00084 class Q_EXPORT QImageDecoder {
00085 public:
00086     QImageDecoder( QImageConsumer* c );
00087     ~QImageDecoder();
00088 
00089     const QImage& image() { return img; }
00090     int decode( const uchar* buffer, int length );
00091 
00092     static const char* formatName( const uchar* buffer, int length );
00093     static QImageFormatType* format( const char* name ); // direct use - no decode()
00094 
00095     static QStrList inputFormats();
00096     static void registerDecoderFactory( QImageFormatType* );
00097     static void unregisterDecoderFactory( QImageFormatType* );
00098 
00099 private:
00100     QImageFormat* actual_decoder;
00101     QImageConsumer* consumer;
00102     QImage img;
00103     QImageDecoderPrivate *d;
00104 };
00105 
00106 #endif // QT_NO_ASYNC_IMAGE_IO
00107 
00108 #endif // QASYNCIMAGEIO_H
 Todo Clases Namespaces Archivos Funciones Variables 'typedefs' Enumeraciones Valores de enumeraciones Propiedades Amigas 'defines'