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