2009-04-06 09:36 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)

* harbour/contrib/hbqt/generator/hbqtgen.prg
    ! StdOut() used instead of ?.
    ! More parameter resolved.
This commit is contained in:
Pritpal Bedi
2009-04-06 16:41:34 +00:00
parent ccf905a9d5
commit 25256841d6
2 changed files with 63 additions and 27 deletions

View File

@@ -8,6 +8,11 @@
2009-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org)
*/
2009-04-06 09:36 UTC-0800 Pritpal Bedi (pritpal@vouchcac.com)
* harbour/contrib/hbqt/generator/hbqtgen.prg
! StdOut() used instead of ?.
! More parameter resolved.
2009-04-06 19:35 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/source/rtl/hbstrfmt.c
+ added precision support for %s and %d.

View File

@@ -68,6 +68,9 @@ FUNCTION Main( ... )
LOCAL aProFiles := {}
LOCAL lCompile := .f.
s_NewLine := hb_OsNewLine()
s_PathSep := hb_OsPathSeparator()
DispLogo()
IF PCount() == 0
@@ -75,9 +78,6 @@ FUNCTION Main( ... )
RETURN nil
ENDIF
s_NewLine := hb_OsNewLine()
s_PathSep := hb_OsPathSeparator()
aParam := hb_AParams()
FOR EACH cParam IN aParam
@@ -172,7 +172,7 @@ STATIC FUNCTION ManageProject( cProFile, cPathIn, cPathOut, cPathDoc )
cpp_:={}
prg_:={}
OutStd( cFile )
OutStd( cFile + s_NewLine )
cPrj := memoread( cFile )
@@ -184,7 +184,7 @@ STATIC FUNCTION ManageProject( cProFile, cPathIn, cPathOut, cPathDoc )
/* We must have a matching pair */
nn := at( '*/', cPrj )
IF nn == 0
? 'Project file has unbalanced comment section...'
OutStd( 'Project file has unbalanced comment section...' + s_NewLine )
RETURN nil
ENDIF
cPrj := substr( cPrj,1,n-1 ) + substr( cPrj,nn+2 )
@@ -292,7 +292,7 @@ STATIC FUNCTION GenSource( cProFile, cPathIn, cPathOut, cPathDoc )
RETURN nil
ENDIF
OutStd( cFile )
OutStd( cFile + s_NewLine )
/* Prepare to be parsed properly */
cQth := strtran( cQth, s_NewLine , _EOL )
@@ -465,6 +465,7 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
LOCAL cPre, cPar, cRet, cFun, cFunRet, cParas, cDocs, cCmd, cPas, s, ss
LOCAL cWdg, cCmn, cPrgRet, cHBFunc, cHBIdx, cDocNM
LOCAL lConst, lAnd, lStar, lVirt, lSuccess
LOCAL cIntegers := 'int,qint16,qint32,qint64,quint16,quint32,quint64,qlonglong,qulonglong,QRgb,QChar'
cParas := ''
cDocs := ''
@@ -603,12 +604,12 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
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 ]
CASE aA[ PRT_CAST ] $ cIntegers .and. aA[ PRT_L_FAR ]
aadd( aPre, { 'int i'+cDocNM+' = 0;', nHBIdx, 'i'+ cDocNM, 'hb_storni' } )
aA[ PRT_BODY ] := '&i'+cDocNM
aA[ PRT_DOC ] := '@n'+ cDocNM
CASE aA[ PRT_CAST ] $ 'int,qint16,qint32,qint64,quint16,quint32,quint64,QRgb'
CASE aA[ PRT_CAST ] $ cIntegers
s := 'hb_parni( '+ cHBIdx +' )'
IF !empty( aA[ PRT_DEFAULT ] )
aA[ PRT_BODY ] := '( HB_ISNIL( '+cHBIdx+' ) ? '+aA[ PRT_DEFAULT ]+' : '+ s + ' )'
@@ -647,6 +648,11 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
ENDIF
aA[ PRT_DOC ] := 'n'+ cDocNM
CASE aA[ PRT_CAST ] == 'bool' .and. aA[ PRT_L_FAR ]
aadd( aPre, { 'bool i'+cDocNM+' = 0;', nHBIdx, 'i'+ cDocNM, 'hb_stornl' } )
aA[ PRT_BODY ] := '&i'+cDocNM
aA[ PRT_DOC ] := '@l'+ cDocNM
CASE aA[ PRT_CAST ] == 'bool'
aA[ PRT_BODY ] := 'hb_parl( '+ cHBIdx +' )'
aA[ PRT_DOC ] := 'l'+ cDocNM
@@ -667,6 +673,10 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
aA[ PRT_BODY ] := 'hbqt_par_WId( '+ cHBIdx +' )'
aA[ PRT_DOC ] := 'h'+ cDocNM
CASE aA[ PRT_CAST ] == 'HRGN'
aA[ PRT_BODY ] := 'hbqt_par_HRGN( '+ cHBIdx +' )'
aA[ PRT_DOC ] := 'h'+ cDocNM
CASE aA[ PRT_CAST ] == 'FT_Face'
aA[ PRT_BODY ] := 'hbqt_par_FT_Face( '+ cHBIdx +' )'
aA[ PRT_DOC ] := 'c'+ cDocNM
@@ -744,7 +754,7 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
cCmd := cCmn
cPrgRet := 'NIL'
CASE aA[ PRT_CAST ] $ 'int,qint16,qint32,qint64,quint16,quint32,quint64,QRgb,char'
CASE aA[ PRT_CAST ] $ cIntegers
cCmd := 'hb_retni( '+ cCmn +' )'
cPrgRet := 'n'+cDocNM
@@ -760,6 +770,10 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
cCmd := 'hb_retl( '+ cCmn +' )'
cPrgRet := 'l'+cDocNM
CASE aA[ PRT_CAST ] == 'char'
cCmd := 'hb_retni( '+ cCmn +' )'
cPrgRet := 'c'+cDocNM
CASE aA[ PRT_CAST ] == 'QString'
cCmd := 'hb_retc( '+ cCmn +'.toLatin1().data()' +' )'
cPrgRet := 'c'+cDocNM
@@ -776,6 +790,10 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
cCmd := 'hb_retptr( ( HWND ) '+ cCmn +' )'
cPrgRet := 'h'+cDocNM
CASE aA[ PRT_CAST ] == 'HRGN'
cCmd := 'hb_retptr( ( HRGN ) '+ cCmn +' )'
cPrgRet := 'h'+cDocNM
CASE aA[ PRT_CAST ] == 'FT_Face'
cCmd := 'hb_retc( '+ cCmn +' )'
cPrgRet := 'c'+cDocNM
@@ -827,7 +845,7 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
cPrgRet := 'p'+cDocNM
ELSE
? '<<< '+cProto + ' | ' + aA[ PRT_CAST ]+' >>>'
OutStd( '<<< '+cProto + ' | ' + aA[ PRT_CAST ]+' >>>' + s_NewLine )
cCmd := ''
cPrgRet := ''
@@ -837,7 +855,7 @@ STATIC FUNCTION ParseProto( cProto, cWidget, txt_, doc_, aEnum, func_ )
IF !empty( cCmd )
cCmd := strtran( cCmd, '( )', '()' ) +';'
? cCmd
OutStd( cCmd + s_NewLine )
ENDIF
ENDIF
ENDIF
@@ -979,30 +997,36 @@ STATIC FUNCTION BuildFooter( txt_ )
/*----------------------------------------------------------------------*/
STATIC FUNCTION DispHelp()
LOCAL cHlp := ''
?
? 'SYNTAX:'
? ' hbqtgen.exe [Options] [[@]<QtProjectFile.qtp>] [<QtHeaderFile.qth, ...>]'
?
? 'Options:'
? ' -O<OutputPath> [ e.g. c:\harbour\contrib\hbqt ] [D] Current folder'
? ' -I<InputPath> [ e.g. c:\harbour\contrib\hbqt\protos ] [D] Current folder'
? ' -D<DocFilesPath> [ e.g. c:\harbour\contrib\hbqt\doc ] [D] Current folder'
? ' '
? ' -c<compile> If QT env is set, attempts to compile resulting .cpp'
?
inkey( 0 )
cHlp += '' + s_NewLine
cHlp += 'SYNTAX:' + s_NewLine
cHlp += ' hbqtgen.exe [Options] [[@]<QtProjectFile.qtp>] [<QtHeaderFile.qth, ...>]' + s_NewLine
cHlp += '' + s_NewLine
cHlp += 'Options:' + s_NewLine
cHlp += ' -O<OutputPath> [ e.g. c:\harbour\contrib\hbqt ] [D] Current folder' + s_NewLine
cHlp += ' -I<InputPath> [ e.g. c:\harbour\contrib\hbqt\protos ] [D] Current folder' + s_NewLine
cHlp += ' -D<DocFilesPath> [ e.g. c:\harbour\contrib\hbqt\doc ] [D] Current folder' + s_NewLine
cHlp += ' ' + s_NewLine
cHlp += ' -c<compile> If QT env is set, attempts to compile resulting .cpp' + s_NewLine
cHlp += '' + s_NewLine
OutStd( cHlp )
RETURN nil
/*----------------------------------------------------------------------*/
STATIC FUNCTION DispLogo()
LOCAL cHlp := ''
OutStd( hb_osNewLine() + "Harbour Source Gennerator for QT " + HBRawVersion() + hb_osNewLine() +;
"Copyright (c) 2009, Pritpal Bedi <pritpal@vouchcac.com>" + hb_osNewLine() +;
"http://www.harbour-project.org/" + hb_osNewLine() +;
hb_osNewLine() )
cHlp += '' + s_NewLine
cHlp += "Harbour Source Gennerator for QT " + HBRawVersion() + s_NewLine
cHlp += "Copyright (c) 2009, Pritpal Bedi <pritpal@vouchcac.com>" + s_NewLine
cHlp += "http://www.harbour-project.org/" + s_NewLine
cHlp += '' + s_NewLine
OutStd( cHlp )
RETURN nil
@@ -1351,6 +1375,12 @@ STATIC FUNCTION Build_HBQT_H( cPathOut )
aadd( txt_, "#define hbqt_par_WId( n ) ( ( HWND* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_HDC( n ) ( ( HDC* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_QBitmap( n ) ( ( QBitmap* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_QTextStream( n ) ( ( QTextStream* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_QTextCodec( n ) ( ( QTextCodec* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_QEventLoop( n ) ( ( QEventLoop* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_QPaintEvent( n ) ( ( QPaintEvent* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_QInputEvent( n ) ( ( QInputEvent* ) hb_parptr( n ) ) " )
aadd( txt_, "#define hbqt_par_HRGN( n ) ( ( HRGN* ) hb_parptr( n ) ) " )
aadd( txt_, " " )
aadd( txt_, "#define hbqt_par_QIcon( n ) ( ( QIcon ) hb_parc( n ) ) " )
aadd( txt_, "#define hbqt_par_QString( n ) ( ( QString ) hb_parc( n ) ) " )
@@ -2357,3 +2387,4 @@ STATIC FUNCTION Build_Demo( cPathOut )
/*----------------------------------------------------------------------*/