From 90825e2392b2d70e43c7a25b8a3752299a933894 Mon Sep 17 00:00:00 2001 From: toma Date: Wed, 25 Nov 2009 17:56:58 +0000 Subject: Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. BUG:215923 git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebindings@1054174 283d02a7-25f6-0310-bc7c-ecb5cbfe19da --- python/pyqt/sip/qt/qfontmetrics.sip | 220 ++++++++++++++++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 python/pyqt/sip/qt/qfontmetrics.sip (limited to 'python/pyqt/sip/qt/qfontmetrics.sip') diff --git a/python/pyqt/sip/qt/qfontmetrics.sip b/python/pyqt/sip/qt/qfontmetrics.sip new file mode 100644 index 00000000..e5059fb5 --- /dev/null +++ b/python/pyqt/sip/qt/qfontmetrics.sip @@ -0,0 +1,220 @@ +// This is the SIP interface definition for QFontMetrics. +// +// Copyright (c) 2007 +// Riverbank Computing Limited +// +// This file is part of PyQt. +// +// This copy of PyQt is free software; you can redistribute it and/or modify it +// under the terms of the GNU General Public License as published by the Free +// Software Foundation; either version 2, or (at your option) any later +// version. +// +// PyQt is supplied in the hope that it will be useful, but WITHOUT ANY +// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +// FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +// details. +// +// You should have received a copy of the GNU General Public License along with +// PyQt; see the file LICENSE. If not, write to the Free Software Foundation, +// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + + +%ExportedDoc +QFontMetrics + + QRect boundingRect + int x + int y + int w + int h + int flags + const QString &str + int len = -1 + int tabstops = 0 + int *tabarray = 0 + + +The tabarray parameter is a Python list of integers. + + + + QSize size + int flags + const QString &str + int len = -1 + int tabstops = 0 + int *tabarray = 0 + + +The tabarray parameter is a Python list of integers. + + +%End + + +class QFontMetrics +{ +%TypeHeaderCode +#include +%End + +public: + QFontMetrics(const QFont &); +%If (Qt_3_2_0 -) + QFontMetrics(const QFont &,QFont::Script); +%End + QFontMetrics(const QFontMetrics &); + + int ascent() const; + int descent() const; + int height() const; + int leading() const; + int lineSpacing() const; + int minLeftBearing() const; + int minRightBearing() const; + int maxWidth() const; +%If (- Qt_2_00) + bool inFont(char) const; + int leftBearing(char) const; + int rightBearing(char) const; + int width(const char *,int = -1) const; + int width(char) const; + QRect boundingRect(const char *,int = -1) const; + QRect boundingRect(char) const; + + QRect boundingRect(int,int,int,int,int,const char *,int = -1, + SIP_PYLIST /AllowNone/ = 0) const; +%MethodCode + int *tabarray; + + if (intListToArray(a8,&tabarray) < 0) + sipIsErr = 1; + else + { + Py_BEGIN_ALLOW_THREADS + sipRes = new QRect(sipCpp -> QFontMetrics::boundingRect(a0,a1,a2,a3,a4,a5,a6,a7,tabarray)); + Py_END_ALLOW_THREADS + + if (tabarray) + sipFree((ANY *)tabarray); + } +%End + + QSize size(int,const char *,int = -1,int = 0, + SIP_PYLIST /AllowNone/ = 0) const; +%MethodCode + int *tabarray; + + if (intListToArray(a4,&tabarray) < 0) + sipIsErr = 1; + else + { + Py_BEGIN_ALLOW_THREADS + sipRes = new QSize(sipCpp -> QFontMetrics::size(a0,a1,a2,a3,tabarray)); + Py_END_ALLOW_THREADS + + if (tabarray) + sipFree((ANY *)tabarray); + } +%End +%End +%If (Qt_2_00 -) + bool inFont(QChar) const; + int leftBearing(QChar) const; + int rightBearing(QChar) const; + int width(const QString &,int = -1) const; + int width(QChar) const; +%If (Qt_3_0_0 -) + int charWidth(const QString &,int) const; +%End + QRect boundingRect(const QString &,int = -1) const; + QRect boundingRect(QChar) const; + + QRect boundingRect(int,int,int,int,int,const QString &,int = -1, + int = 0,SIP_PYLIST /AllowNone/ = 0) const; +%MethodCode + int *tabarray; + + if (intListToArray(a8,&tabarray) < 0) + sipIsErr = 1; + else + { + Py_BEGIN_ALLOW_THREADS + sipRes = new QRect(sipCpp -> QFontMetrics::boundingRect(a0,a1,a2,a3,a4,*a5,a6,a7,tabarray)); + Py_END_ALLOW_THREADS + + if (tabarray) + sipFree((ANY *)tabarray); + } +%End + + QSize size(int,const QString &,int = -1,int = 0, + SIP_PYLIST /AllowNone/ = 0) const; +%MethodCode + int *tabarray; + + if (intListToArray(a4,&tabarray) < 0) + sipIsErr = 1; + else + { + Py_BEGIN_ALLOW_THREADS + sipRes = new QSize(sipCpp -> QFontMetrics::size(a0,*a1,a2,a3,tabarray)); + Py_END_ALLOW_THREADS + + if (tabarray) + sipFree((ANY *)tabarray); + } +%End +%End + + int underlinePos() const; +%If (Qt_3_2_0 -) + int overlinePos() const; +%End + int strikeOutPos() const; + int lineWidth() const; + +%TypeCode +// Convert an optional Python list of integers to a zero terminated array. +// Return a negative value if there was an error. +static int intListToArray(PyObject *pl,int **ap) +{ + int i, nint, *ip; + + // The trivial case. + if (!pl || pl == Py_None) + { + *ap = 0; + return 0; + } + + nint = PyList_Size(pl); + + if ((*ap = (int *)sipMalloc((nint + 1) * sizeof (int))) == NULL) + return -1; + + // Convert the list. + PyErr_Clear(); + + ip = *ap; + + for (i = 0; i < nint; ++i) + { + *ip++ = PyInt_AsLong(PyList_GetItem(pl,i)); + + if (PyErr_Occurred()) + { + sipFree((ANY *)*ap); + return -1; + } + } + + // Terminate the list. + *ip = 0; + + return 0; +} +%End + +}; -- cgit v1.2.1