// qrect.sip generated by MetaSIP on Fri Apr 16 11:32:08 2010
//
// This file is part of the QtCore Python extension module.
//
// Copyright (c) 2010 Riverbank Computing Limited <info@riverbankcomputing.com>
// 
// This file is part of PyQt.
// 
// This file may be used under the terms of the GNU General Public
// License versions 2.0 or 3.0 as published by the Free Software
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
// included in the packaging of this file.  Alternatively you may (at
// your option) use any later version of the GNU General Public
// License if such license has been publicly approved by Riverbank
// Computing Limited (or its successors, if any) and the KDE Free Qt
// Foundation. In addition, as a special exception, Riverbank gives you
// certain additional rights. These rights are described in the Riverbank
// GPL Exception version 1.1, which can be found in the file
// GPL_EXCEPTION.txt in this package.
// 
// Please review the following information to ensure GNU General
// Public Licensing requirements will be met:
// http://trolltech.com/products/qt/licenses/licensing/opensource/. If
// you are unsure which license is appropriate for your use, please
// review the following information:
// http://trolltech.com/products/qt/licenses/licensing/licensingoverview
// or contact the sales department at sales@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.


%ModuleCode
#include <qrect.h>
%End

class QRect
{

%TypeHeaderCode
#include <qrect.h>
%End

%PickleCode
    sipRes = Py_BuildValue((char *)"iiii", sipCpp->x(), sipCpp->y(), sipCpp->width(), sipCpp->height());
%End

public:
    QRect();
    QRect normalized() const;
    void moveCenter(const QPoint &);
    QRect operator|(const QRect &) const;
    QRect operator&(const QRect &) const;
    bool contains(const QPoint &, bool proper = false) const;
    int __contains__(const QPoint &p) const;
%MethodCode
        sipRes = sipCpp->contains(*a0);
%End

    bool contains(const QRect &, bool proper = false) const;
    int __contains__(const QRect &r) const;
%MethodCode
        sipRes = sipCpp->contains(*a0);
%End

    bool intersects(const QRect &) const;
    QRect(int, int, int, int);
    QRect(const QPoint &, const QPoint &);
    QRect(const QPoint &, const QSize &);
    SIP_PYOBJECT __repr__() const /DocType="str"/;
%MethodCode
        sipRes =
        #if PY_MAJOR_VERSION >= 3
            PyUnicode_FromFormat
        #else
            PyString_FromFormat
        #endif
                ("PyQt4.QtCore.QRect(%i, %i, %i, %i)",
                 sipCpp->left(), sipCpp->top(), sipCpp->width(), sipCpp->height());
%End

    bool isNull() const;
    bool isEmpty() const;
    bool isValid() const;
    int __bool__() const;
%MethodCode
        sipRes = sipCpp->isValid();
%End

    int left() const;
    int top() const;
    int right() const;
    int bottom() const;
    int x() const;
    int y() const;
    void setLeft(int);
    void setTop(int);
    void setRight(int);
    void setBottom(int);
    void setTopLeft(const QPoint &);
    void setBottomRight(const QPoint &);
    void setTopRight(const QPoint &);
    void setBottomLeft(const QPoint &);
    void setX(int);
    void setY(int);
    QPoint topLeft() const;
    QPoint bottomRight() const;
    QPoint topRight() const;
    QPoint bottomLeft() const;
    QPoint center() const;
    int width() const;
    int height() const;
    QSize size() const;
    void translate(int, int);
    void translate(const QPoint &);
    QRect translated(int, int) const;
    QRect translated(const QPoint &) const;
    void moveTo(int, int);
    void moveTo(const QPoint &);
    void moveLeft(int);
    void moveTop(int);
    void moveRight(int);
    void moveBottom(int);
    void moveTopLeft(const QPoint &);
    void moveBottomRight(const QPoint &);
    void moveTopRight(const QPoint &);
    void moveBottomLeft(const QPoint &);
    void getRect(int *, int *, int *, int *) const;
    void setRect(int, int, int, int);
    void getCoords(int *, int *, int *, int *) const;
    void setCoords(int, int, int, int);
    QRect adjusted(int, int, int, int) const;
    void adjust(int, int, int, int);
    void setWidth(int);
    void setHeight(int);
    void setSize(const QSize &);
    bool contains(int, int, bool) const;
    bool contains(int, int) const;
    QRect &operator|=(const QRect &);
    QRect &operator&=(const QRect &);
    QRect intersect(const QRect &) const;
    QRect unite(const QRect &) const;
%If (Qt_4_2_0 -)
    QRect intersected(const QRect &) const;
%End
%If (Qt_4_2_0 -)
    QRect united(const QRect &) const;
%End
};

QDataStream &operator<<(QDataStream &, const QRect & /Constrained/);
QDataStream &operator>>(QDataStream &, QRect & /Constrained/);
bool operator==(const QRect &, const QRect &);
bool operator!=(const QRect &, const QRect &);

class QRectF
{

%TypeHeaderCode
#include <qrect.h>
%End

%PickleCode
    sipRes = Py_BuildValue((char *)"dddd", sipCpp->x(), sipCpp->y(), sipCpp->width(), sipCpp->height());
%End

public:
    QRectF();
    QRectF(const QPointF &, const QSizeF &);
%If (Qt_4_3_0 -)
    QRectF(const QPointF &, const QPointF &);
%End
    QRectF(qreal, qreal, qreal, qreal);
    QRectF(const QRect &);
    SIP_PYOBJECT __repr__() const /DocType="str"/;
%MethodCode
        PyObject *l = PyFloat_FromDouble(sipCpp->left());
        PyObject *t = PyFloat_FromDouble(sipCpp->top());
        PyObject *w = PyFloat_FromDouble(sipCpp->width());
        PyObject *h = PyFloat_FromDouble(sipCpp->height());
        
        if (l && t && w && h)
        {
        #if PY_MAJOR_VERSION >= 3
            sipRes = PyUnicode_FromFormat("PyQt4.QtCore.QRectF(%R, %R, %R, %R)", l, t, w, h);
        #else
            sipRes = PyString_FromString("PyQt4.QtCore.QRectF(");
            PyString_ConcatAndDel(&sipRes, PyObject_Repr(l));
            PyString_ConcatAndDel(&sipRes, PyString_FromString(", "));
            PyString_ConcatAndDel(&sipRes, PyObject_Repr(t));
            PyString_ConcatAndDel(&sipRes, PyString_FromString(", "));
            PyString_ConcatAndDel(&sipRes, PyObject_Repr(w));
            PyString_ConcatAndDel(&sipRes, PyString_FromString(", "));
            PyString_ConcatAndDel(&sipRes, PyObject_Repr(h));
            PyString_ConcatAndDel(&sipRes, PyString_FromString(")"));
        #endif
        }
        
        Py_XDECREF(l);
        Py_XDECREF(t);
        Py_XDECREF(w);
        Py_XDECREF(h);
%End

    QRectF normalized() const;
    qreal left() const;
    qreal top() const;
    qreal right() const;
    qreal bottom() const;
    void setX(qreal);
    void setY(qreal);
    QPointF topLeft() const;
    QPointF bottomRight() const;
    QPointF topRight() const;
    QPointF bottomLeft() const;
    QRectF operator|(const QRectF &) const;
    QRectF operator&(const QRectF &) const;
    bool contains(const QPointF &) const;
    int __contains__(const QPointF &p) const;
%MethodCode
        sipRes = sipCpp->contains(*a0);
%End

    bool contains(const QRectF &) const;
    int __contains__(const QRectF &r) const;
%MethodCode
        sipRes = sipCpp->contains(*a0);
%End

    bool intersects(const QRectF &) const;
    bool isNull() const;
    bool isEmpty() const;
    bool isValid() const;
    int __bool__() const;
%MethodCode
        sipRes = sipCpp->isValid();
%End

    qreal x() const;
    qreal y() const;
    void setLeft(qreal);
    void setRight(qreal);
    void setTop(qreal);
    void setBottom(qreal);
    void setTopLeft(const QPointF &);
    void setTopRight(const QPointF &);
    void setBottomLeft(const QPointF &);
    void setBottomRight(const QPointF &);
    QPointF center() const;
    void moveLeft(qreal);
    void moveTop(qreal);
    void moveRight(qreal);
    void moveBottom(qreal);
    void moveTopLeft(const QPointF &);
    void moveTopRight(const QPointF &);
    void moveBottomLeft(const QPointF &);
    void moveBottomRight(const QPointF &);
    void moveCenter(const QPointF &);
    qreal width() const;
    qreal height() const;
    QSizeF size() const;
    void translate(qreal, qreal);
    void translate(const QPointF &);
    void moveTo(qreal, qreal);
    void moveTo(const QPointF &);
    QRectF translated(qreal, qreal) const;
    QRectF translated(const QPointF &) const;
    void getRect(qreal *, qreal *, qreal *, qreal *) const;
    void setRect(qreal, qreal, qreal, qreal);
    void getCoords(qreal *, qreal *, qreal *, qreal *) const;
    void setCoords(qreal, qreal, qreal, qreal);
    void adjust(qreal, qreal, qreal, qreal);
    QRectF adjusted(qreal, qreal, qreal, qreal) const;
    void setWidth(qreal);
    void setHeight(qreal);
    void setSize(const QSizeF &);
    bool contains(qreal, qreal) const;
    QRectF &operator|=(const QRectF &);
    QRectF &operator&=(const QRectF &);
    QRectF intersect(const QRectF &) const;
    QRectF unite(const QRectF &) const;
%If (Qt_4_3_0 -)
    QRect toAlignedRect() const;
%End
    QRect toRect() const;
%If (Qt_4_2_0 -)
    QRectF intersected(const QRectF &) const;
%End
%If (Qt_4_2_0 -)
    QRectF united(const QRectF &) const;
%End
};

QDataStream &operator<<(QDataStream &, const QRectF & /Constrained/);
QDataStream &operator>>(QDataStream &, QRectF & /Constrained/);
bool operator==(const QRectF &, const QRectF &);
bool operator!=(const QRectF &, const QRectF &);
