From cfa613a3e9c8c136fbb065d06e02ffeaf859cab1 Mon Sep 17 00:00:00 2001 From: Pritpal Bedi Date: Sat, 18 Sep 2010 01:27:21 +0000 Subject: [PATCH] 2010-09-17 18:22 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * contrib/hbqt/qtgui/doc/en/class_qpainter.txt * contrib/hbqt/qtgui/g/QPainter.cpp * contrib/hbqt/qtgui/g/TQPainter.prg * Re-generated. * contrib/hbqt/qtgui/qth/QPainter.qth + Implemented: single call :drawLine() method. * contrib/hbqt/utils/hbqtgen.prg + Implemented: "..." parameter as method argument. Needed to streamline in single call of Qt's overloaded by argument type methods. * contrib/hbide/hbqreportsmanager.prg ! Demonstrated the use of QPainter():drawLine( ... ) with variable type of argument types. NOTE: this mechanism holds good if arguments are constructed via Q*Class( ... ) call only. Also this mechanism seems to be working best for only those classes of Qt which are neither inherited nor inheriting other class. The classes in this bracket are like - QBrush, QColor, QPixmap, QRect, QPoint, etc. --- harbour/ChangeLog | 26 +++ harbour/contrib/hbide/hbqreportsmanager.prg | 9 +- .../hbqt/qtgui/doc/en/class_qpainter.txt | 7 +- harbour/contrib/hbqt/qtgui/g/QPainter.cpp | 155 ++++++++++++------ harbour/contrib/hbqt/qtgui/g/TQPainter.prg | 39 ++--- harbour/contrib/hbqt/qtgui/qth/QPainter.qth | 114 ++++++++++++- harbour/contrib/hbqt/utils/hbqtgen.prg | 10 ++ 7 files changed, 274 insertions(+), 86 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 33f5ed9ec4..f83001e0b1 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -16,6 +16,32 @@ The license applies to all entries newer than 2009-04-28. */ +2010-09-17 18:22 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) + * contrib/hbqt/qtgui/doc/en/class_qpainter.txt + * contrib/hbqt/qtgui/g/QPainter.cpp + * contrib/hbqt/qtgui/g/TQPainter.prg + * Re-generated. + + * contrib/hbqt/qtgui/qth/QPainter.qth + + Implemented: single call :drawLine() method. + + * contrib/hbqt/utils/hbqtgen.prg + + Implemented: "..." parameter as method argument. + Needed to streamline in single call of Qt's + overloaded by argument type methods. + + * contrib/hbide/hbqreportsmanager.prg + ! Demonstrated the use of QPainter():drawLine( ... ) + with variable type of argument types. + + NOTE: this mechanism holds good if arguments are + constructed via Q*Class( ... ) call only. + Also this mechanism seems to be working best + for only those classes of Qt which are neither + inherited nor inheriting other class. The + classes in this bracket are like - QBrush, + QColor, QPixmap, QRect, QPoint, etc. + 2010-09-17 15:49 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com) * src/rtl/ttopbar.prg ! Changed: Instance variable to SETGET METHOD cargo( xCargo ). diff --git a/harbour/contrib/hbide/hbqreportsmanager.prg b/harbour/contrib/hbide/hbqreportsmanager.prg index 28e27f4543..cefe6aca39 100644 --- a/harbour/contrib/hbide/hbqreportsmanager.prg +++ b/harbour/contrib/hbide/hbqreportsmanager.prg @@ -2331,16 +2331,17 @@ METHOD HqrGraphicsItem:drawLine( qPainter, qRect ) SWITCH ::lineType() CASE HBQT_GRAPHICSITEM_LINE_VERTICAL - qPainter:drawLine_4( qRect:x() + qRect:width() / 2, qRect:y(), qRect:x() + qRect:width() / 2, qRect:y() + qRect:height() ) + qPainter:drawLine( qRect:x() + qRect:width() / 2, qRect:y(), qRect:x() + qRect:width() / 2, qRect:y() + qRect:height() ) EXIT case HBQT_GRAPHICSITEM_LINE_HORIZONTAL - qPainter:drawLine_4( qRect:x(), qRect:y() + qRect:height() / 2, qRect:x() + qRect:width(), qRect:y() + qRect:height() / 2 ) + qPainter:drawLine( qRect:x(), qRect:y() + qRect:height() / 2, qRect:x() + qRect:width(), qRect:y() + qRect:height() / 2 ) EXIT case HBQT_GRAPHICSITEM_LINE_BACKWARDDIAGONAL - qPainter:drawLine_4( qRect:right(), qRect:y(), qRect:x(), qRect:bottom() ) + qPainter:drawLine( qRect:right(), qRect:y(), qRect:x(), qRect:bottom() ) EXIT case HBQT_GRAPHICSITEM_LINE_FORWARDDIAGONAL - qPainter:drawLine_4( qRect:x(), qRect:y(), qRect:right(), qRect:bottom() ) + //qPainter:drawLine_4( qRect:x(), qRect:y(), qRect:right(), qRect:bottom() ) + qPainter:drawLine( QPointF( qRect:x(), qRect:y() ), QPointF( qRect:right(), qRect:bottom() ) ) EXIT ENDSWITCH RETURN Self diff --git a/harbour/contrib/hbqt/qtgui/doc/en/class_qpainter.txt b/harbour/contrib/hbqt/qtgui/doc/en/class_qpainter.txt index e94413395e..f01dcb106a 100644 --- a/harbour/contrib/hbqt/qtgui/doc/en/class_qpainter.txt +++ b/harbour/contrib/hbqt/qtgui/doc/en/class_qpainter.txt @@ -67,11 +67,7 @@ * :drawImage_6( pRectangle, pImage ) -> NIL * :drawImage_7( pRectangle, pImage ) -> NIL * :drawImage_8( nX, nY, pImage, nSx, nSy, nSw, nSh, nFlags ) -> NIL - * :drawLine( pLine ) -> NIL - * :drawLine_1( pLine ) -> NIL - * :drawLine_2( pP1, pP2 ) -> NIL - * :drawLine_3( pP1, pP2 ) -> NIL - * :drawLine_4( nX1, nY1, nX2, nY2 ) -> NIL + * :drawLine( ... ) -> NIL * :drawLines( pLines, nLineCount ) -> NIL * :drawLines_1( pLines, nLineCount ) -> NIL * :drawLines_2( pPointPairs, nLineCount ) -> NIL @@ -83,6 +79,7 @@ * :drawPie( pRectangle, nStartAngle, nSpanAngle ) -> NIL * :drawPie_1( pRectangle, nStartAngle, nSpanAngle ) -> NIL * :drawPie_2( nX, nY, nWidth, nHeight, nStartAngle, nSpanAngle ) -> NIL + * :hbDrawPixmap( ... ) -> NIL * :drawPixmap( pTarget, pPixmap, pSource ) -> NIL * :drawPixmap_1( pTarget, pPixmap, pSource ) -> NIL * :drawPixmap_2( pPoint, pPixmap, pSource ) -> NIL diff --git a/harbour/contrib/hbqt/qtgui/g/QPainter.cpp b/harbour/contrib/hbqt/qtgui/g/QPainter.cpp index b77119b0c7..d3a5515d29 100644 --- a/harbour/contrib/hbqt/qtgui/g/QPainter.cpp +++ b/harbour/contrib/hbqt/qtgui/g/QPainter.cpp @@ -73,17 +73,27 @@ */ /* - * Constructed[ 182/188 [ 96.81% ] ] + * Constructed[ 179/192 [ 93.23% ] ] * * *** Unconvered Prototypes *** * ----------------------------- * + * } * void drawLines ( const QVector & pointPairs ) * void drawLines ( const QVector & pointPairs ) * void drawLines ( const QVector & lines ) * void drawLines ( const QVector & lines ) + * } * void drawRects ( const QVector & rectangles ) * void drawRects ( const QVector & rectangles ) + * + * *** Commented out protos which construct fine but do not compile *** + * + * //void drawLine ( const QLineF & line ) + * //void drawLine ( const QLine & line ) + * //void drawLine ( const QPoint & p1, const QPoint & p2 ) + * //void drawLine ( const QPointF & p1, const QPointF & p2 ) + * //void drawLine ( int x1, int y1, int x2, int y2 ) */ #include @@ -667,62 +677,47 @@ HB_FUNC( QT_QPAINTER_DRAWIMAGE_8 ) } /* - * void drawLine ( const QLineF & line ) + * void drawLine ( ... ) */ HB_FUNC( QT_QPAINTER_DRAWLINE ) { QPainter * p = hbqt_par_QPainter( 1 ); if( p ) { - ( p )->drawLine( *hbqt_par_QLineF( 2 ) ); - } -} + switch( hb_pcount() ) + { + case 5: + ( p )->drawLine( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ) ); + break; + case 3: + { + HBQT_GC_T * q = ( HBQT_GC_T * ) hb_parptrGC( hbqt_gcFuncs(), 2 ); -/* - * void drawLine ( const QLine & line ) - */ -HB_FUNC( QT_QPAINTER_DRAWLINE_1 ) -{ - QPainter * p = hbqt_par_QPainter( 1 ); - if( p ) - { - ( p )->drawLine( *hbqt_par_QLine( 2 ) ); - } -} + if( q->type == HBQT_TYPE_QPoint ) + { + ( p )->drawLine( *hbqt_par_QPoint( 2 ), *hbqt_par_QPoint( 3 ) ); + } + else if( q->type == HBQT_TYPE_QPointF ) + { + ( p )->drawLine( *hbqt_par_QPointF( 2 ), *hbqt_par_QPointF( 3 ) ); + } + } + break; + case 2: + { + HBQT_GC_T * q = ( HBQT_GC_T * ) hb_parptrGC( hbqt_gcFuncs(), 2 ); -/* - * void drawLine ( const QPoint & p1, const QPoint & p2 ) - */ -HB_FUNC( QT_QPAINTER_DRAWLINE_2 ) -{ - QPainter * p = hbqt_par_QPainter( 1 ); - if( p ) - { - ( p )->drawLine( *hbqt_par_QPoint( 2 ), *hbqt_par_QPoint( 3 ) ); - } -} - -/* - * void drawLine ( const QPointF & p1, const QPointF & p2 ) - */ -HB_FUNC( QT_QPAINTER_DRAWLINE_3 ) -{ - QPainter * p = hbqt_par_QPainter( 1 ); - if( p ) - { - ( p )->drawLine( *hbqt_par_QPointF( 2 ), *hbqt_par_QPointF( 3 ) ); - } -} - -/* - * void drawLine ( int x1, int y1, int x2, int y2 ) - */ -HB_FUNC( QT_QPAINTER_DRAWLINE_4 ) -{ - QPainter * p = hbqt_par_QPainter( 1 ); - if( p ) - { - ( p )->drawLine( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ) ); + if( q->type == HBQT_TYPE_QLineF ) + { + ( p )->drawLine( *hbqt_par_QLineF( 2 ) ); + } + else if( q->type == HBQT_TYPE_QLine ) + { + ( p )->drawLine( *hbqt_par_QLine( 2 ) ); + } + } + break; + } } } @@ -858,6 +853,68 @@ HB_FUNC( QT_QPAINTER_DRAWPIE_2 ) } } +/* + * void hbDrawPixmap ( ... ) + */ +HB_FUNC( QT_QPAINTER_HBDRAWPIXMAP ) +{ + HBQT_GC_T * p = ( HBQT_GC_T * ) hb_parptrGC( hbqt_gcFuncs(), 1 ); + if( p && p->ph ) + { + switch( hb_pcount() ) + { + case 10: + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ), *hbqt_par_QPixmap( 6 ), hb_parni( 7 ), hb_parni( 8 ), hb_parni( 9 ), hb_parni( 10 ) ); + break; + case 8: + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), *hbqt_par_QPixmap( 4 ), hb_parni( 5 ), hb_parni( 6 ), hb_parni( 7 ), hb_parni( 8 ) ); + break; + case 6: + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ), *hbqt_par_QPixmap( 6 ) ); + break; + case 4: + if( HB_ISNUM( 2 ) ) + { + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), *hbqt_par_QPixmap( 4 ) ); + } + else + { + if( p->type == HBQT_TYPE_QRectF ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QRectF( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRectF( 4 ) ); + } + else if( p->type == HBQT_TYPE_QRect ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QRect( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRect( 4 ) ); + } + else if( p->type == HBQT_TYPE_QPointF ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPointF( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRectF( 4 ) ); + } + else if( p->type == HBQT_TYPE_QPoint ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPoint( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRect( 4 ) ); + } + } + break; + case 3: + if( p->type == HBQT_TYPE_QRect ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QRect( 2 ), *hbqt_par_QPixmap( 3 ) ); + } + else if( p->type == HBQT_TYPE_QPointF ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPointF( 2 ), *hbqt_par_QPixmap( 3 ) ); + } + else if( p->type == HBQT_TYPE_QPoint ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPoint( 2 ), *hbqt_par_QPixmap( 3 ) ); + } + break; + } + } +} + /* * void drawPixmap ( const QRectF & target, const QPixmap & pixmap, const QRectF & source ) */ diff --git a/harbour/contrib/hbqt/qtgui/g/TQPainter.prg b/harbour/contrib/hbqt/qtgui/g/TQPainter.prg index c1b7fe42b9..8aa1bad974 100644 --- a/harbour/contrib/hbqt/qtgui/g/TQPainter.prg +++ b/harbour/contrib/hbqt/qtgui/g/TQPainter.prg @@ -112,11 +112,7 @@ CREATE CLASS QPainter INHERIT HbQtObjectHandler FUNCTION HB_QPainter METHOD drawImage_6( pRectangle, pImage ) METHOD drawImage_7( pRectangle, pImage ) METHOD drawImage_8( nX, nY, pImage, nSx, nSy, nSw, nSh, nFlags ) - METHOD drawLine( pLine ) - METHOD drawLine_1( pLine ) - METHOD drawLine_2( pP1, pP2 ) - METHOD drawLine_3( pP1, pP2 ) - METHOD drawLine_4( nX1, nY1, nX2, nY2 ) + METHOD drawLine( ... ) METHOD drawLines( pLines, nLineCount ) METHOD drawLines_1( pLines, nLineCount ) METHOD drawLines_2( pPointPairs, nLineCount ) @@ -128,6 +124,7 @@ CREATE CLASS QPainter INHERIT HbQtObjectHandler FUNCTION HB_QPainter METHOD drawPie( pRectangle, nStartAngle, nSpanAngle ) METHOD drawPie_1( pRectangle, nStartAngle, nSpanAngle ) METHOD drawPie_2( nX, nY, nWidth, nHeight, nStartAngle, nSpanAngle ) + METHOD hbDrawPixmap( ... ) METHOD drawPixmap( pTarget, pPixmap, pSource ) METHOD drawPixmap_1( pTarget, pPixmap, pSource ) METHOD drawPixmap_2( pPoint, pPixmap, pSource ) @@ -430,24 +427,12 @@ METHOD QPainter:drawImage_8( nX, nY, pImage, nSx, nSy, nSw, nSh, nFlags ) RETURN Qt_QPainter_drawImage_8( ::pPtr, nX, nY, hbqt_ptr( pImage ), nSx, nSy, nSw, nSh, nFlags ) -METHOD QPainter:drawLine( pLine ) - RETURN Qt_QPainter_drawLine( ::pPtr, hbqt_ptr( pLine ) ) - - -METHOD QPainter:drawLine_1( pLine ) - RETURN Qt_QPainter_drawLine_1( ::pPtr, hbqt_ptr( pLine ) ) - - -METHOD QPainter:drawLine_2( pP1, pP2 ) - RETURN Qt_QPainter_drawLine_2( ::pPtr, hbqt_ptr( pP1 ), hbqt_ptr( pP2 ) ) - - -METHOD QPainter:drawLine_3( pP1, pP2 ) - RETURN Qt_QPainter_drawLine_3( ::pPtr, hbqt_ptr( pP1 ), hbqt_ptr( pP2 ) ) - - -METHOD QPainter:drawLine_4( nX1, nY1, nX2, nY2 ) - RETURN Qt_QPainter_drawLine_4( ::pPtr, nX1, nY1, nX2, nY2 ) +METHOD QPainter:drawLine( ... ) + LOCAL p + FOR EACH p IN { ... } + hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) ) + NEXT + RETURN Qt_QPainter_drawLine( ::pPtr, ... ) METHOD QPainter:drawLines( pLines, nLineCount ) @@ -494,6 +479,14 @@ METHOD QPainter:drawPie_2( nX, nY, nWidth, nHeight, nStartAngle, nSpanAngle ) RETURN Qt_QPainter_drawPie_2( ::pPtr, nX, nY, nWidth, nHeight, nStartAngle, nSpanAngle ) +METHOD QPainter:hbDrawPixmap( ... ) + LOCAL p + FOR EACH p IN { ... } + hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) ) + NEXT + RETURN Qt_QPainter_hbDrawPixmap( ::pPtr, ... ) + + METHOD QPainter:drawPixmap( pTarget, pPixmap, pSource ) RETURN Qt_QPainter_drawPixmap( ::pPtr, hbqt_ptr( pTarget ), hbqt_ptr( pPixmap ), hbqt_ptr( pSource ) ) diff --git a/harbour/contrib/hbqt/qtgui/qth/QPainter.qth b/harbour/contrib/hbqt/qtgui/qth/QPainter.qth index 831f111600..308542d023 100644 --- a/harbour/contrib/hbqt/qtgui/qth/QPainter.qth +++ b/harbour/contrib/hbqt/qtgui/qth/QPainter.qth @@ -128,11 +128,53 @@ void drawImage ( const QPoint & point, const QImage & image, const QRect & sourc void drawImage ( const QRectF & rectangle, const QImage & image ) void drawImage ( const QRect & rectangle, const QImage & image ) void drawImage ( int x, int y, const QImage & image, int sx = 0, int sy = 0, int sw = -1, int sh = -1, Qt::ImageConversionFlags flags = Qt::AutoColor ) -void drawLine ( const QLineF & line ) -void drawLine ( const QLine & line ) -void drawLine ( const QPoint & p1, const QPoint & p2 ) -void drawLine ( const QPointF & p1, const QPointF & p2 ) -void drawLine ( int x1, int y1, int x2, int y2 ) + +void drawLine ( ... ){ + QPainter * p = hbqt_par_QPainter( 1 ); + if( p ) + { + switch( hb_pcount() ) + { + case 5: + ( p )->drawLine( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ) ); + break; + case 3: + { + HBQT_GC_T * q = ( HBQT_GC_T * ) hb_parptrGC( hbqt_gcFuncs(), 2 ); + + if( q->type == HBQT_TYPE_QPoint ) + { + ( p )->drawLine( *hbqt_par_QPoint( 2 ), *hbqt_par_QPoint( 3 ) ); + } + else if( q->type == HBQT_TYPE_QPointF ) + { + ( p )->drawLine( *hbqt_par_QPointF( 2 ), *hbqt_par_QPointF( 3 ) ); + } + } + break; + case 2: + { + HBQT_GC_T * q = ( HBQT_GC_T * ) hb_parptrGC( hbqt_gcFuncs(), 2 ); + + if( q->type == HBQT_TYPE_QLineF ) + { + ( p )->drawLine( *hbqt_par_QLineF( 2 ) ); + } + else if( q->type == HBQT_TYPE_QLine ) + { + ( p )->drawLine( *hbqt_par_QLine( 2 ) ); + } + } + break; + } + } +} +//void drawLine ( const QLineF & line ) +//void drawLine ( const QLine & line ) +//void drawLine ( const QPoint & p1, const QPoint & p2 ) +//void drawLine ( const QPointF & p1, const QPointF & p2 ) +//void drawLine ( int x1, int y1, int x2, int y2 ) + void drawLines ( const QLineF * lines, int lineCount ) void drawLines ( const QLine * lines, int lineCount ) void drawLines ( const QPointF * pointPairs, int lineCount ) @@ -148,6 +190,66 @@ void drawPicture ( int x, int y, const QPicture & picture ) void drawPie ( const QRectF & rectangle, int startAngle, int spanAngle ) void drawPie ( const QRect & rectangle, int startAngle, int spanAngle ) void drawPie ( int x, int y, int width, int height, int startAngle, int spanAngle ) + + +void hbDrawPixmap ( ... ){ + HBQT_GC_T * p = ( HBQT_GC_T * ) hb_parptrGC( hbqt_gcFuncs(), 1 ); + if( p && p->ph ) + { + switch( hb_pcount() ) + { + case 10: + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ), *hbqt_par_QPixmap( 6 ), hb_parni( 7 ), hb_parni( 8 ), hb_parni( 9 ), hb_parni( 10 ) ); + break; + case 8: + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), *hbqt_par_QPixmap( 4 ), hb_parni( 5 ), hb_parni( 6 ), hb_parni( 7 ), hb_parni( 8 ) ); + break; + case 6: + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), hb_parni( 4 ), hb_parni( 5 ), *hbqt_par_QPixmap( 6 ) ); + break; + case 4: + if( HB_ISNUM( 2 ) ) + { + hbqt_par_QPainter( 1 )->drawPixmap( hb_parni( 2 ), hb_parni( 3 ), *hbqt_par_QPixmap( 4 ) ); + } + else + { + if( p->type == HBQT_TYPE_QRectF ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QRectF( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRectF( 4 ) ); + } + else if( p->type == HBQT_TYPE_QRect ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QRect( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRect( 4 ) ); + } + else if( p->type == HBQT_TYPE_QPointF ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPointF( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRectF( 4 ) ); + } + else if( p->type == HBQT_TYPE_QPoint ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPoint( 2 ), *hbqt_par_QPixmap( 3 ), *hbqt_par_QRect( 4 ) ); + } + } + break; + case 3: + if( p->type == HBQT_TYPE_QRect ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QRect( 2 ), *hbqt_par_QPixmap( 3 ) ); + } + else if( p->type == HBQT_TYPE_QPointF ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPointF( 2 ), *hbqt_par_QPixmap( 3 ) ); + } + else if( p->type == HBQT_TYPE_QPoint ) + { + hbqt_par_QPainter( 1 )->drawPixmap( *hbqt_par_QPoint( 2 ), *hbqt_par_QPixmap( 3 ) ); + } + break; + } + } +} + void drawPixmap ( const QRectF & target, const QPixmap & pixmap, const QRectF & source ) void drawPixmap ( const QRect & target, const QPixmap & pixmap, const QRect & source ) void drawPixmap ( const QPointF & point, const QPixmap & pixmap, const QRectF & source ) @@ -159,6 +261,8 @@ void drawPixmap ( const QRect & rectangle, const QPixmap & pixmap ) void drawPixmap ( int x, int y, int width, int height, const QPixmap & pixmap ) void drawPixmap ( int x, int y, int w, int h, const QPixmap & pixmap, int sx, int sy, int sw, int sh ) void drawPixmap ( int x, int y, const QPixmap & pixmap, int sx, int sy, int sw, int sh ) + + void drawPoint ( const QPointF & position ) void drawPoint ( const QPoint & position ) void drawPoint ( int x, int y ) diff --git a/harbour/contrib/hbqt/utils/hbqtgen.prg b/harbour/contrib/hbqt/utils/hbqtgen.prg index 4caa52fdf3..021345836f 100644 --- a/harbour/contrib/hbqt/utils/hbqtgen.prg +++ b/harbour/contrib/hbqt/utils/hbqtgen.prg @@ -898,6 +898,10 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_, lList, fB ENDIF DO CASE + CASE aA[ PRT_CAST ] == "..." + aA[ PRT_BODY ] := "..." + aA[ PRT_DOC ] := "..." + CASE aA[ PRT_CAST ] == "PHB_ITEM" aA[ PRT_BODY ] := "hb_param( " + cHBIdx + ", HB_IT_ANY )" aA[ PRT_DOC ] := "x" + cDocNM @@ -1688,6 +1692,12 @@ STATIC FUNCTION Build_Class( cWidget, cls_, doc_, cPathOut, subCls_ ) FOR i := 1 TO len( mth_ ) aadd( txt_, "" ) aadd( txt_, "METHOD " + cWidget + ":" + mth_[ i, 1 ] ) + IF "..." $ mth_[ i, 1 ] + aadd( txt_, " LOCAL p" ) + aadd( txt_, " FOR EACH p IN { ... }" ) + aadd( txt_, " hb_pvalue( p:__enumIndex(), hbqt_ptr( p ) )" ) + aadd( txt_, " NEXT" ) + ENDIF aadd( txt_, " RETURN " + ParsePtr( mth_[ i, 2 ] ) ) aadd( txt_, "" ) NEXT