~oif-team/ubuntu/natty/qt4-x11/xi2.1

« back to all changes in this revision

Viewing changes to src/gui/image/qimageiohandler.h

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-08-24 04:09:09 UTC
  • Revision ID: james.westby@ubuntu.com-20050824040909-xmxe9jfr4a0w5671
Tags: upstream-4.0.0
ImportĀ upstreamĀ versionĀ 4.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/****************************************************************************
 
2
**
 
3
** Copyright (C) 1992-2005 Trolltech AS. All rights reserved.
 
4
**
 
5
** This file is part of the painting module of the Qt Toolkit.
 
6
**
 
7
** This file may be distributed under the terms of the Q Public License
 
8
** as defined by Trolltech AS of Norway and appearing in the file
 
9
** LICENSE.QPL included in the packaging of this file.
 
10
**
 
11
** This file may be distributed and/or modified under the terms of the
 
12
** GNU General Public License version 2 as published by the Free Software
 
13
** Foundation and appearing in the file LICENSE.GPL included in the
 
14
** packaging of this file.
 
15
**
 
16
** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
 
17
**   information about Qt Commercial License Agreements.
 
18
** See http://www.trolltech.com/qpl/ for QPL licensing information.
 
19
** See http://www.trolltech.com/gpl/ for GPL licensing information.
 
20
**
 
21
** Contact info@trolltech.com if any conditions of this licensing are
 
22
** not clear to you.
 
23
**
 
24
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 
25
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 
26
**
 
27
****************************************************************************/
 
28
 
 
29
#ifndef QIMAGEIOHANDLER_H
 
30
#define QIMAGEIOHANDLER_H
 
31
 
 
32
#include <QtCore/qplugin.h>
 
33
#include <QtCore/qfactoryinterface.h>
 
34
 
 
35
class QImage;
 
36
class QRect;
 
37
class QSize;
 
38
class QVariant;
 
39
 
 
40
class QImageIOHandlerPrivate;
 
41
class Q_GUI_EXPORT QImageIOHandler
 
42
{
 
43
    Q_DECLARE_PRIVATE(QImageIOHandler)
 
44
public:
 
45
    QImageIOHandler();
 
46
    virtual ~QImageIOHandler();
 
47
 
 
48
    void setDevice(QIODevice *device);
 
49
    QIODevice *device() const;
 
50
 
 
51
    void setFormat(const QByteArray &format);
 
52
    QByteArray format() const;
 
53
 
 
54
    virtual QByteArray name() const = 0;
 
55
 
 
56
    virtual bool canRead() const = 0;
 
57
    virtual bool read(QImage *image) = 0;
 
58
    virtual bool write(const QImage &image);
 
59
 
 
60
    enum ImageOption {
 
61
        Size,
 
62
        ClipRect,
 
63
        Description,
 
64
        ScaledClipRect,
 
65
        ScaledSize,
 
66
        CompressionRatio,
 
67
        Gamma,
 
68
        Quality,
 
69
        Name,
 
70
        SubType,
 
71
        IncrementalReading,
 
72
        Endianness
 
73
    };
 
74
    virtual QVariant option(ImageOption option) const;
 
75
    virtual void setOption(ImageOption option, const QVariant &value);
 
76
    virtual bool supportsOption(ImageOption option) const;
 
77
 
 
78
    // incremental loading
 
79
    virtual bool jumpToNextImage();
 
80
    virtual bool jumpToImage(int imageNumber);
 
81
    virtual int loopCount() const;
 
82
    virtual int imageCount() const;
 
83
    virtual int nextImageDelay() const;
 
84
    virtual int currentImageNumber() const;
 
85
    virtual QRect currentImageRect() const;
 
86
 
 
87
protected:
 
88
    QImageIOHandler(QImageIOHandlerPrivate &dd);
 
89
    QImageIOHandlerPrivate *d_ptr;
 
90
};
 
91
 
 
92
struct Q_GUI_EXPORT QImageIOHandlerFactoryInterface : public QFactoryInterface
 
93
{
 
94
    virtual QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const = 0;
 
95
};
 
96
 
 
97
#define QImageIOHandlerFactoryInterface_iid "com.trolltech.Qt.QImageIOHandlerFactoryInterface"
 
98
Q_DECLARE_INTERFACE(QImageIOHandlerFactoryInterface, QImageIOHandlerFactoryInterface_iid)
 
99
 
 
100
class Q_GUI_EXPORT QImageIOPlugin : public QObject, public QImageIOHandlerFactoryInterface
 
101
{
 
102
    Q_OBJECT
 
103
    Q_INTERFACES(QImageIOHandlerFactoryInterface:QFactoryInterface)
 
104
public:
 
105
    explicit QImageIOPlugin(QObject *parent = 0);
 
106
    virtual ~QImageIOPlugin();
 
107
 
 
108
    enum Capability {
 
109
        CanRead = 0x1,
 
110
        CanWrite = 0x2,
 
111
        CanReadIncremental = 0x4
 
112
    };
 
113
    Q_DECLARE_FLAGS(Capabilities, Capability)
 
114
 
 
115
    virtual Capabilities capabilities(QIODevice *device, const QByteArray &format) const = 0;
 
116
    virtual QStringList keys() const = 0;
 
117
    virtual QImageIOHandler *create(QIODevice *device, const QByteArray &format = QByteArray()) const = 0;
 
118
};
 
119
 
 
120
#endif