From 1d9e8d884c474f2bef59ae2ee48f4d6df6d20093 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Sun, 5 Apr 2009 21:16:59 +0000 Subject: [PATCH] 2009-04-05 14:03 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) * harbour/contrib/hbqt/generator/hbqtgen.prg * harbour/contrib/hbqt/generator/qt45.qtp + harbour/contrib/hbqt/qth/QPoint.qth + harbour/contrib/hbqt/qth/QPointF.qth + harbour/contrib/hbqt/qth/QRect.qth + harbour/contrib/hbqt/qth/QRectF.qth + harbour/contrib/hbqt/qth/QSizeF.qth + Added more classes. --- harbour/ChangeLog | 10 ++ harbour/contrib/hbqt/generator/hbqtgen.prg | 9 ++ harbour/contrib/hbqt/generator/qt45.qtp | 5 + harbour/contrib/hbqt/qth/QPoint.qth | 98 +++++++++++++ harbour/contrib/hbqt/qth/QPointF.qth | 100 +++++++++++++ harbour/contrib/hbqt/qth/QRect.qth | 151 ++++++++++++++++++++ harbour/contrib/hbqt/qth/QRectF.qth | 156 +++++++++++++++++++++ harbour/contrib/hbqt/qth/QSizeF.qth | 106 ++++++++++++++ 8 files changed, 635 insertions(+) create mode 100644 harbour/contrib/hbqt/qth/QPoint.qth create mode 100644 harbour/contrib/hbqt/qth/QPointF.qth create mode 100644 harbour/contrib/hbqt/qth/QRect.qth create mode 100644 harbour/contrib/hbqt/qth/QRectF.qth create mode 100644 harbour/contrib/hbqt/qth/QSizeF.qth diff --git a/harbour/ChangeLog b/harbour/ChangeLog index dc6c73bda9..c91e3ec5a8 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,16 @@ 2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2009-04-05 14:03 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + * harbour/contrib/hbqt/generator/hbqtgen.prg + * harbour/contrib/hbqt/generator/qt45.qtp + + harbour/contrib/hbqt/qth/QPoint.qth + + harbour/contrib/hbqt/qth/QPointF.qth + + harbour/contrib/hbqt/qth/QRect.qth + + harbour/contrib/hbqt/qth/QRectF.qth + + harbour/contrib/hbqt/qth/QSizeF.qth + + Added more classes. + 2009-04-05 12:57 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com) + harbour/contrib/hbqt/tests/wvtext.prg + Added wvtext.prg [ already in harbour/tests ] modified diff --git a/harbour/contrib/hbqt/generator/hbqtgen.prg b/harbour/contrib/hbqt/generator/hbqtgen.prg index fb5e973f2f..9fc0190f2f 100644 --- a/harbour/contrib/hbqt/generator/hbqtgen.prg +++ b/harbour/contrib/hbqt/generator/hbqtgen.prg @@ -598,6 +598,10 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ ) cDocNM := THIS_PROPER( aA[ PRT_NAME ] ) DO CASE + CASE aA[ PRT_CAST ] == 'T' + aA[ PRT_BODY ] := 'hb_param( '+ cHBIdx +', HB_IT_ANY )' + aA[ PRT_DOC ] := 'x'+ cDocNM + /* Values by reference */ CASE aA[ PRT_CAST ] $ 'int,qint16,qint32,qint64,quint16,quint32,quint64,QRgb' .and. aA[ PRT_L_FAR ] aadd( aPre, { 'int i'+cDocNM+' = 0;', nHBIdx, 'i'+ cDocNM, 'hb_storni' } ) @@ -732,6 +736,10 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ ) cDocNM := THIS_PROPER( aA[ PRT_NAME ] ) DO CASE + CASE aA[ PRT_CAST ] == 'T' + cCmd := 'hb_ret( '+ cCmn +' )' + cPrgRet := 'x'+cDocNM + CASE aA[ PRT_CAST ] == 'void' cCmd := cCmn cPrgRet := 'NIL' @@ -1319,6 +1327,7 @@ STATIC FUNCTION Build_HBQT_H( cPathOut ) aadd( txt_, "#define hbqt_par_QImage( n ) ( ( QImage* ) hb_parptr( n ) ) " ) aadd( txt_, "#define hbqt_par_QKeySequence( n ) ( ( QKeySequence* ) hb_parptr( n ) ) " ) aadd( txt_, "#define hbqt_par_QSize( n ) ( ( QSize* ) hb_parptr( n ) ) " ) + aadd( txt_, "#define hbqt_par_QSizeF( n ) ( ( QSizeF* ) hb_parptr( n ) ) " ) aadd( txt_, "#define hbqt_par_QModelIndex( n ) ( ( QModelIndex* ) hb_parptr( n ) ) " ) aadd( txt_, "#define hbqt_par_QVariant( n ) ( ( QVariant* ) hb_parptr( n ) ) " ) aadd( txt_, "#define hbqt_par_QSessionManager( n ) ( ( QSessionManager* ) hb_parptr( n ) ) " ) diff --git a/harbour/contrib/hbqt/generator/qt45.qtp b/harbour/contrib/hbqt/generator/qt45.qtp index 1527da4ea3..68522455ab 100644 --- a/harbour/contrib/hbqt/generator/qt45.qtp +++ b/harbour/contrib/hbqt/generator/qt45.qtp @@ -105,3 +105,8 @@ QWizard.qth QWebView.qth QSize.qth +QSizeF.qth +QPoint.qth +QPointF.qth +QRect.qth +QRectF.qth diff --git a/harbour/contrib/hbqt/qth/QPoint.qth b/harbour/contrib/hbqt/qth/QPoint.qth new file mode 100644 index 0000000000..362f8af7cc --- /dev/null +++ b/harbour/contrib/hbqt/qth/QPoint.qth @@ -0,0 +1,98 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT Source Generator for Harbour + * + * Copyright 2009 Pritpal Bedi + * www - http://www.harbour-project.org + * + * This program 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. + * + * This program is distributed 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 this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ +; +; Header File to Generate QT Wrapper Sources +; + + +Type = Core +New = nX, nY + + + +#include + + +/* + * QPoint () + * QPoint ( int x, int y ) + */ +HB_FUNC( QT_QPOINT ) +{ + hb_retptr( ( QPoint* ) new QPoint( hb_parni( 1 ), hb_parni( 2 ) ) ); +} + + + + + + +bool isNull () const +int manhattanLength () const +int & rx () +int & ry () +void setX ( int x ) +void setY ( int y ) +int x () const +int y () const + + + + + + + + + + + diff --git a/harbour/contrib/hbqt/qth/QPointF.qth b/harbour/contrib/hbqt/qth/QPointF.qth new file mode 100644 index 0000000000..eb53018a7c --- /dev/null +++ b/harbour/contrib/hbqt/qth/QPointF.qth @@ -0,0 +1,100 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT Source Generator for Harbour + * + * Copyright 2009 Pritpal Bedi + * www - http://www.harbour-project.org + * + * This program 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. + * + * This program is distributed 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 this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ +; +; Header File to Generate QT Wrapper Sources +; + + +Type = Core +New = nXf, nYf + + + +#include + + +/* + * QPointF () + * QPointF ( const QPoint & point ) + * QPointF ( qreal x, qreal y ) + */ +HB_FUNC( QT_QPOINTF ) +{ + hb_retptr( ( QPointF* ) new QPointF( ( qreal ) hb_parnd( 1 ), + ( qreal ) hb_parnd( 2 ) ) ); +} + + + + + + +bool isNull () const +qreal & rx () +qreal & ry () +void setX ( qreal x ) +void setY ( qreal y ) +QPoint toPoint () const +qreal x () const +qreal y () const + + + + + + + + + + + diff --git a/harbour/contrib/hbqt/qth/QRect.qth b/harbour/contrib/hbqt/qth/QRect.qth new file mode 100644 index 0000000000..39456ade64 --- /dev/null +++ b/harbour/contrib/hbqt/qth/QRect.qth @@ -0,0 +1,151 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT Source Generator for Harbour + * + * Copyright 2009 Pritpal Bedi + * www - http://www.harbour-project.org + * + * This program 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. + * + * This program is distributed 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 this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ +; +; Header File to Generate QT Wrapper Sources +; + + +Type = Core +New = nLeft, nTop, nRight, nBottom + + + +#include + + +/* + * QRect () + * QRect ( const QPoint & topLeft, const QPoint & bottomRight ) + * QRect ( const QPoint & topLeft, const QSize & size ) + * QRect ( int x, int y, int width, int height ) + */ +HB_FUNC( QT_QRECT ) +{ + hb_retptr( ( QRect* ) new QRect( hb_parni( 1 ), hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ) ) ); +} + + + + + + +void adjust ( int dx1, int dy1, int dx2, int dy2 ) +QRect adjusted ( int dx1, int dy1, int dx2, int dy2 ) const +int bottom () const +QPoint bottomLeft () const +QPoint bottomRight () const +QPoint center () const +bool contains ( const QPoint & point, bool proper = false ) const +bool contains ( int x, int y, bool proper ) const +bool contains ( int x, int y ) const +bool contains ( const QRect & rectangle, bool proper = false ) const +void getCoords ( int * x1, int * y1, int * x2, int * y2 ) const +void getRect ( int * x, int * y, int * width, int * height ) const +int height () const +QRect intersected ( const QRect & rectangle ) const +bool intersects ( const QRect & rectangle ) const +bool isEmpty () const +bool isNull () const +bool isValid () const +int left () const +void moveBottom ( int y ) +void moveBottomLeft ( const QPoint & position ) +void moveBottomRight ( const QPoint & position ) +void moveCenter ( const QPoint & position ) +void moveLeft ( int x ) +void moveRight ( int x ) +void moveTo ( int x, int y ) +void moveTo ( const QPoint & position ) +void moveTop ( int y ) +void moveTopLeft ( const QPoint & position ) +void moveTopRight ( const QPoint & position ) +QRect normalized () const +int right () const +void setBottom ( int y ) +void setBottomLeft ( const QPoint & position ) +void setBottomRight ( const QPoint & position ) +void setCoords ( int x1, int y1, int x2, int y2 ) +void setHeight ( int height ) +void setLeft ( int x ) +void setRect ( int x, int y, int width, int height ) +void setRight ( int x ) +void setSize ( const QSize & size ) +void setTop ( int y ) +void setTopLeft ( const QPoint & position ) +void setTopRight ( const QPoint & position ) +void setWidth ( int width ) +void setX ( int x ) +void setY ( int y ) +QSize size () const +int top () const +QPoint topLeft () const +QPoint topRight () const +void translate ( int dx, int dy ) +void translate ( const QPoint & offset ) +QRect translated ( int dx, int dy ) const +QRect translated ( const QPoint & offset ) const +QRect united ( const QRect & rectangle ) const +int width () const +int x () const +int y () const + + + + + + + + + + + diff --git a/harbour/contrib/hbqt/qth/QRectF.qth b/harbour/contrib/hbqt/qth/QRectF.qth new file mode 100644 index 0000000000..d4ca5b76b4 --- /dev/null +++ b/harbour/contrib/hbqt/qth/QRectF.qth @@ -0,0 +1,156 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT Source Generator for Harbour + * + * Copyright 2009 Pritpal Bedi + * www - http://www.harbour-project.org + * + * This program 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. + * + * This program is distributed 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 this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ +; +; Header File to Generate QT Wrapper Sources +; + + +Type = Core +New = nLeft, nTop, nRight, nBottom + + + +#include + + +/* + * QRectF () + * QRectF ( const QPointF & topLeft, const QSizeF & size ) + * QRectF ( const QPointF & topLeft, const QPointF & bottomRight ) + * QRectF ( qreal x, qreal y, qreal width, qreal height ) + * QRectF ( const QRect & rectangle ) + */ +HB_FUNC( QT_QRECTF ) +{ + hb_retptr( ( QRectF* ) new QRectF( ( qreal ) hb_parnd( 1 ), + ( qreal ) hb_parnd( 2 ), + ( qreal ) hb_parnd( 3 ), + ( qreal ) hb_parnd( 4 ) ) ); +} + + + + + + +void adjust ( qreal dx1, qreal dy1, qreal dx2, qreal dy2 ) +QRectF adjusted ( qreal dx1, qreal dy1, qreal dx2, qreal dy2 ) const +qreal bottom () const +QPointF bottomLeft () const +QPointF bottomRight () const +QPointF center () const +bool contains ( const QPointF & point ) const +bool contains ( qreal x, qreal y ) const +bool contains ( const QRectF & rectangle ) const +void getCoords ( qreal * x1, qreal * y1, qreal * x2, qreal * y2 ) const +void getRect ( qreal * x, qreal * y, qreal * width, qreal * height ) const +qreal height () const +QRectF intersected ( const QRectF & rectangle ) const +bool intersects ( const QRectF & rectangle ) const +bool isEmpty () const +bool isNull () const +bool isValid () const +qreal left () const +void moveBottom ( qreal y ) +void moveBottomLeft ( const QPointF & position ) +void moveBottomRight ( const QPointF & position ) +void moveCenter ( const QPointF & position ) +void moveLeft ( qreal x ) +void moveRight ( qreal x ) +void moveTo ( qreal x, qreal y ) +void moveTo ( const QPointF & position ) +void moveTop ( qreal y ) +void moveTopLeft ( const QPointF & position ) +void moveTopRight ( const QPointF & position ) +QRectF normalized () const +qreal right () const +void setBottom ( qreal y ) +void setBottomLeft ( const QPointF & position ) +void setBottomRight ( const QPointF & position ) +void setCoords ( qreal x1, qreal y1, qreal x2, qreal y2 ) +void setHeight ( qreal height ) +void setLeft ( qreal x ) +void setRect ( qreal x, qreal y, qreal width, qreal height ) +void setRight ( qreal x ) +void setSize ( const QSizeF & size ) +void setTop ( qreal y ) +void setTopLeft ( const QPointF & position ) +void setTopRight ( const QPointF & position ) +void setWidth ( qreal width ) +void setX ( qreal x ) +void setY ( qreal y ) +QSizeF size () const +QRect toAlignedRect () const +QRect toRect () const +qreal top () const +QPointF topLeft () const +QPointF topRight () const +void translate ( qreal dx, qreal dy ) +void translate ( const QPointF & offset ) +QRectF translated ( qreal dx, qreal dy ) const +QRectF translated ( const QPointF & offset ) const +QRectF united ( const QRectF & rectangle ) const +qreal width () const +qreal x () const +qreal y () const + + + + + + + + + + + diff --git a/harbour/contrib/hbqt/qth/QSizeF.qth b/harbour/contrib/hbqt/qth/QSizeF.qth new file mode 100644 index 0000000000..82be9124e2 --- /dev/null +++ b/harbour/contrib/hbqt/qth/QSizeF.qth @@ -0,0 +1,106 @@ +/* + * $Id$ + */ + +/* + * Harbour Project source code: + * QT Source Generator for Harbour + * + * Copyright 2009 Pritpal Bedi + * www - http://www.harbour-project.org + * + * This program 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. + * + * This program is distributed 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 this software; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/). + * + * As a special exception, the Harbour Project gives permission for + * additional uses of the text contained in its release of Harbour. + * + * The exception is that, if you link the Harbour libraries with other + * files to produce an executable, this does not by itself cause the + * resulting executable to be covered by the GNU General Public License. + * Your use of that executable is in no way restricted on account of + * linking the Harbour library code into it. + * + * This exception does not however invalidate any other reasons why + * the executable file might be covered by the GNU General Public License. + * + * This exception applies only to the code released by the Harbour + * Project under the name Harbour. If you copy code from other + * Harbour Project or Free Software Foundation releases into a copy of + * Harbour, as the General Public License permits, the exception does + * not apply to the code that you add in this way. To avoid misleading + * anyone as to the status of such modified files, you must delete + * this exception notice from them. + * + * If you write modifications of your own for Harbour, it is your choice + * whether to permit this exception to apply to your modifications. + * If you do not wish that, delete this exception notice. + * + */ +/*----------------------------------------------------------------------*/ +; +; Header File to Generate QT Wrapper Sources +; + + +Type = Core +New = nWidth, nHeight + + + +#include + + +/* + * QSizeF () + * QSizeF ( const QSize & size ) + * QSizeF ( qreal width, qreal height ) + * QSizeF boundedTo ( const QSizeF & otherSize ) const + * QSizeF expandedTo ( const QSizeF & otherSize ) const + */ +HB_FUNC( QT_QSIZEF ) +{ + hb_retptr( ( QSizeF* ) new QSizeF( hb_parnd( 1 ), hb_parnd( 2 ) ) ); +} + + + + + + +qreal height () const +bool isEmpty () const +bool isNull () const +bool isValid () const +qreal & rheight () +qreal & rwidth () +void scale ( qreal width, qreal height, Qt::AspectRatioMode mode ) +void scale ( const QSizeF & size, Qt::AspectRatioMode mode ) +void setHeight ( qreal height ) +void setWidth ( qreal width ) +QSize toSize () const +void transpose () +qreal width () const + + + + + + + + + + +