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.
pytqt/sip/qt/qfontmetrics.sip

221 lines
5.4 KiB

// This is the SIP interface definition for QFontMetrics.
//
// Copyright (c) 2007
// Riverbank Computing Limited <info@riverbankcomputing.co.uk>
//
// 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
<Sect2><Title>QFontMetrics</Title>
<FuncSynopsis>
<FuncDef>QRect <Function>boundingRect</Function></FuncDef>
<ParamDef>int <Parameter>x</Parameter></ParamDef>
<ParamDef>int <Parameter>y</Parameter></ParamDef>
<ParamDef>int <Parameter>w</Parameter></ParamDef>
<ParamDef>int <Parameter>h</Parameter></ParamDef>
<ParamDef>int <Parameter>flags</Parameter></ParamDef>
<ParamDef>const QString &amp;<Parameter>str</Parameter></ParamDef>
<ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
<ParamDef>int <Parameter>tabstops</Parameter> = 0</ParamDef>
<ParamDef>int *<Parameter>tabarray</Parameter> = 0</ParamDef>
</FuncSynopsis>
<Para>
The <Literal>tabarray</Literal> parameter is a Python list of integers.
</Para>
<FuncSynopsis>
<FuncDef>QSize <Function>size</Function></FuncDef>
<ParamDef>int <Parameter>flags</Parameter></ParamDef>
<ParamDef>const QString &amp;<Parameter>str</Parameter></ParamDef>
<ParamDef>int <Parameter>len</Parameter> = -1</ParamDef>
<ParamDef>int <Parameter>tabstops</Parameter> = 0</ParamDef>
<ParamDef>int *<Parameter>tabarray</Parameter> = 0</ParamDef>
</FuncSynopsis>
<Para>
The <Literal>tabarray</Literal> parameter is a Python list of integers.
</Para>
</Sect2>
%End
class QFontMetrics
{
%TypeHeaderCode
#include <qfontmetrics.h>
%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
};