You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

188 lines
5.6 KiB

// qpicture.sip generated by MetaSIP
//
// This file is part of the QtGui Python extension module.
//
// Copyright (c) 2023 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/;