1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
|
// qpicture.sip generated by MetaSIP
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2018 Riverbank Computing Limited <info@riverbankcomputing.com>
//
// This file is part of PyQt5.
//
// This file may be used under the terms of the GNU General Public License
// version 3.0 as published by the Free Software Foundation and appearing in
// the file LICENSE included in the packaging of this file. Please review the
// following information to ensure the GNU General Public License version 3.0
// requirements will be met: http://www.gnu.org/copyleft/gpl.html.
//
// If you do not wish to use this file under the terms of the GPL version 3.0
// then you may purchase a commercial license. For more information contact
// info@riverbankcomputing.com.
//
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
class QPicture : QPaintDevice
{
%TypeHeaderCode
#include <qpicture.h>
%End
public:
explicit QPicture(int formatVersion = -1);
QPicture(const QPicture &);
virtual ~QPicture();
bool isNull() const;
virtual int devType() const;
uint size() const;
const char *data() const /Encoding="None"/;
virtual void setData(const char *data /Array/, uint size /ArraySize/);
bool play(QPainter *p);
bool load(QIODevice *dev, const char *format = 0) /ReleaseGIL/;
bool load(const QString &fileName, const char *format = 0) /ReleaseGIL/;
bool save(QIODevice *dev, const char *format = 0) /ReleaseGIL/;
bool save(const QString &fileName, const char *format = 0) /ReleaseGIL/;
QRect boundingRect() const;
void setBoundingRect(const QRect &r);
void detach();
bool isDetached() const;
virtual QPaintEngine *paintEngine() const;
protected:
virtual int metric(QPaintDevice::PaintDeviceMetric m) const;
public:
void swap(QPicture &other /Constrained/);
};
class QPictureIO
{
%TypeHeaderCode
#include <qpicture.h>
%End
%TypeCode
// This defines the mapping between picture formats and the corresponding
// Python i/o handler callables.
struct qtgui_pio {
const char *format; // The format.
PyObject *read; // The read handler.
PyObject *write; // The write handler.
qtgui_pio *next; // The next in the list.
};
// The head of the list.
static qtgui_pio *qtgui_pio_head = 0;
// Find the entry for the given picture.
static const qtgui_pio *qtgui_pio_find(QPictureIO *pio)
{
for (const qtgui_pio *p = qtgui_pio_head; p; p = p->next)
if (qstrcmp(pio->format(), p->format) == 0)
return p;
return 0;
}
// This is the C++ read handler.
static void qtgui_pio_read(QPictureIO *pio)
{
const qtgui_pio *p = qtgui_pio_find(pio);
if (p && p->read)
{
Py_XDECREF(sipCallMethod(0, p->read, "D", pio, sipType_QPictureIO, NULL));
}
}
// This is the C++ write handler.
static void qtgui_pio_write(QPictureIO *pio)
{
const qtgui_pio *p = qtgui_pio_find(pio);
if (p && p->write)
{
Py_XDECREF(sipCallMethod(0, p->write, "D", pio, sipType_QPictureIO, NULL));
}
}
%End
public:
QPictureIO();
QPictureIO(QIODevice *ioDevice, const char *format);
QPictureIO(const QString &fileName, const char *format);
~QPictureIO();
const QPicture &picture() const;
int status() const;
const char *format() const;
QIODevice *ioDevice() const;
QString fileName() const;
int quality() const;
QString description() const;
const char *parameters() const;
float gamma() const;
void setPicture(const QPicture &);
void setStatus(int);
void setFormat(const char *);
void setIODevice(QIODevice *);
void setFileName(const QString &);
void setQuality(int);
void setDescription(const QString &);
void setParameters(const char *);
void setGamma(float);
bool read() /ReleaseGIL/;
bool write() /ReleaseGIL/;
static QByteArray pictureFormat(const QString &fileName);
static QByteArray pictureFormat(QIODevice *);
static QList<QByteArray> inputFormats();
static QList<QByteArray> outputFormats();
static void defineIOHandler(const char *format, const char *header, const char *flags, SIP_PYCALLABLE read_picture /AllowNone,TypeHint="Optional[Callable[[QPictureIO], None]]"/, SIP_PYCALLABLE write_picture /AllowNone,TypeHint="Optional[Callable[[QPictureIO], None]]"/);
%MethodCode
// Convert None to NULL.
if (a3 == Py_None)
a3 = 0;
if (a4 == Py_None)
a4 = 0;
// See if we already know about the format.
qtgui_pio *p;
for (p = qtgui_pio_head; p; p = p->next)
if (qstrcmp(a0, p->format) == 0)
break;
if (!p)
{
// Handle the new format.
p = new qtgui_pio;
p->format = qstrdup(a0);
p->read = 0;
p->write = 0;
p->next = qtgui_pio_head;
qtgui_pio_head = p;
}
// Replace the old callables with the new ones.
Py_XDECREF(p->read);
p->read = a3;
Py_XINCREF(p->read);
Py_XDECREF(p->write);
p->write = a4;
Py_XINCREF(p->write);
// Install the generic handlers.
QPictureIO::defineIOHandler(a0, a1, a2, qtgui_pio_read, qtgui_pio_write);
%End
private:
QPictureIO(const QPictureIO &);
};
QDataStream &operator<<(QDataStream &in, const QPicture &p /Constrained/) /ReleaseGIL/;
QDataStream &operator>>(QDataStream &in, QPicture &p /Constrained/) /ReleaseGIL/;
|