* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/xbp3state.prg
* harbour/contrib/hbxbp/xbpcheckbox.prg
* harbour/contrib/hbxbp/xbpcombobox.prg
* harbour/contrib/hbxbp/xbpdialog.prg
* harbour/contrib/hbxbp/xbpmenubar.prg
* harbour/contrib/hbxbp/xbpmle.prg
* harbour/contrib/hbxbp/xbpradiobutton.prg
* harbour/contrib/hbxbp/xbpscrollbar.prg
* harbour/contrib/hbxbp/xbpsle.prg
* harbour/contrib/hbxbp/xbpspinbutton.prg
* harbour/contrib/hbxbp/xbpstatusbar.prg
* harbour/contrib/hbxbp/xbptabpage.prg
* harbour/contrib/hbxbp/xbptreeview.prg
* harbour/contrib/hbxbp/xbpwindow.prg
+ Added :setPointer() method to change the cursor shape for a widget.
! Advanced implementation of Presentation Parameters. Now the
base structure is almost like Xbase++ one. About to
generate a Style Sheet based on PresParametrs array.
! Code tweaked more organized.
* harbour/contrib/hbxbp/tests/demoxbp.prg
+ Demonstrated the use of Cursor Shapes.
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/xbpdialog.prg
* harbour/contrib/hbxbp/xbpmle.prg
* harbour/contrib/hbxbp/xbpwindow.prg
+ Implemented fonts management.
:setFontCompoundName( "10.Tohama italics" )
Started XBP_PP_* implementation.
NOTE: This implementation is based on QT's powerful mechanism
of CSS inspired Cascading Style Sheets. It effectively
means that look-and-feel of the requested parameters are
guaranted to be rendered irrespective of the platform.
This also means that a "true" inheritance is achieved
in the widgets. For example, if you set the color and
font of a top-level dialog, all children of it will also
inherit it. Xbase++ also documents this behavior but
also notify that some of the widgets do not respond to
this request, i.e., XbpPushButton(), XbpTabPage(), etc.
But in Harbour-QT-Xbase++ it is possible, and, by
all means desirable.
Anyway, I am more interested what the group think. It will
be heartening if some real-time Xbase++ users participate
on the subject. I do not want to cook my own food.
* harbour/contrib/hbxbp/tests/demoxbp.prg
! Demonstrated to use fonts and inheritance. Please play.
* harbour/contrib/hbqt/hbqt.h
* harbour/contrib/hbqt/hbqt_qftp.cpp
* harbour/contrib/hbqt/hbqt_qhttp.cpp
* harbour/contrib/hbqt/qth/QFtp.qth
* harbour/contrib/hbqt/qth/QHttp.qth
* harbour/contrib/hbqt/TQFtp.prg
* harbour/contrib/hbqt/TQHttp.prg
! Fixed ( char * ) argument usage in QFtp and QHttp classes.
Infact <qint64 read( char * data, qint64 length )> are written
as is in the header. I could not find a solution to
auto generate it because of <length> argument which could
never be known to first parameter.
* harbour/contrib/hbxbp/Makefile
* harbour/contrib/hbxbp/xbp.ch
* harbour/contrib/hbxbp/appevent.ch
* harbour/contrib/hbxbp/xbpdialog.prg
* harbour/contrib/hbxbp/xbpgeneric.prg
* harbour/contrib/hbxbp/xbpsle.prg
* harbour/contrib/hbxbp/xbptreeview.prg
* harbour/contrib/hbxbp/xbpwindow.prg
! Rewrote the event management system exactly like
Xbase++. Now it is possible to sub-class methods and callback slots.
+ harbour/contrib/hbxbp/xbpappevent.prg
+ Added PRG level events conversion mechanism.
I wanted it to be C code for speed purposes, anyhow,
as agreed we do not want any C code in hbxbp.
* harbour/contrib/hbxbp/tests/demoxbp.prg
! Few experiments. You may viaualize some artifacts.
/* NOTE: I am struggling to receive events from another
thread of Harbour code in the event filter.
It seems default event dispatched can be
invoked only from main thread. Anybody to rescue ?
*/
* harbour/contrib/hbqt/generator/qt45.qtp
* harbour/contrib/hbqt/Makefile_gen
* harbour/contrib/hbqt/hbqt.ch
* harbour/contrib/hbqt/hbqt.h
+ harbour/contrib/hbqt/hbqt_qdragenterevent.cpp
+ harbour/contrib/hbqt/hbqt_qdragleaveevent.cpp
+ harbour/contrib/hbqt/hbqt_qdragmoveevent.cpp
+ harbour/contrib/hbqt/hbqt_qdropevent.cpp
+ harbour/contrib/hbqt/hbqt_qmoveevent.cpp
+ harbour/contrib/hbqt/hbqt_qresizeevent.cpp
+ harbour/contrib/hbqt/hbqt_qwheelevent.cpp
+ harbour/contrib/hbqt/TQDragEnterEvent.prg
+ harbour/contrib/hbqt/TQDragLeaveEvent.prg
+ harbour/contrib/hbqt/TQDragMoveEvent.prg
+ harbour/contrib/hbqt/TQDropEvent.prg
+ harbour/contrib/hbqt/TQMoveEvent.prg
+ harbour/contrib/hbqt/TQResizeEvent.prg
+ harbour/contrib/hbqt/TQWheelEvent.prg
+ harbour/contrib/hbqt/qth/QDragEnterEvent.qth
+ harbour/contrib/hbqt/qth/QDragLeaveEvent.qth
+ harbour/contrib/hbqt/qth/QDragMoveEvent.qth
+ harbour/contrib/hbqt/qth/QDropEvent.qth
+ harbour/contrib/hbqt/qth/QMoveEvent.qth
+ harbour/contrib/hbqt/qth/QResizeEvent.qth
+ harbour/contrib/hbqt/qth/QWheelEvent.qth
+ Added few more classes.
* harbour/contrib/hbqt/hbqt_slots.cpp
* harbour/contrib/hbqt/hbqt_qftp.cpp
* harbour/contrib/hbqt/hbqt_qhttp.cpp
! Result of #define hbqt_par_char( n ) ( ( char* ) hb_parcx( n ) )
NOTE: QT sources are generated dynamically so please do not make
changes to them directly. I do not know if above casting
will work or not but it is just to pacify the warnings.
Alternatively we can comment out the relevant functions in
/qth/QHttp.qth and /qth/QFtp.qth. I kept it like this
as if someone could test if it works.
* include/hbapifs.h
* source/rtl/filebuf.c
* source/rtl/filesys.c
* Changed file I/O buffer parameters from
'( [const] BYTE * )' to '( [const] void * )'
* utils/hbmk2/hbmk2.prg
+ Added ${hb_curdir} macro support.
+ Added ${hb_first} macro support (will return first source name
specced on cmdline)
+ Added support for 'sources=' line in .hbc files. This
will accept .prg, .c/.cpp, .po/.pot, object and resources.
For resources, also wildcards are supported. Files with
no extension will be considered .prg.
This also replaces former 'pos=' line.
This can be useful to put some central sources into all
project without using a lib (or when a lib isn't an option
for some reason).
- man
- Dir deleted.
* bin/postinst.bat
* mpkg_gnu.bat
+ Moved copying of root doc (ChangeLog, INSTALL) files
to postinst.bat.
* make_gnu.bat
! Minor fix to not accept extra cmdline parameters when
in full build mode.
* make_gnu.bat
+ Now make_gnu.bat will find embedded GNU Make even if it's
started from another directory. F.e. to rebuild only
one contrib or core lib, it's enough to go to that dir
and type:
..\..\make_gnu.bat
! More fixes to make build work on paths containing spaces.
* make_gnu_os2.cmd
* make_gnu.bat
* make_gnu.sh
* mpkg_win.nsi
* mpkg_gnu.bat
* Formatted header comment.
+ Added reference to INSTALL.
* source/common/hbhash.c
! Fixed error in prev commit.
(strange that MSVC didn't complain)
* mpkg_win.nsi
+ Added comment that this file shouldn't be used directly.
* source/rtl/hbmd5.c
+ HB_MD5(), HB_MD5FILE(): New logical parameter added, which
controls whether to return binary data or hexadecimal string.
The default is .T. which will return hexa string, to stay
compatible. Later we should switch the default to .F..
* mpkg_gnu.bat
* Updated requirement section.
* contrib/hbxbp/tests/demoxbp.prg
! Fixed the same warning again.
* Changed to actually close the window when using close icon
or Alt+F4.
; Thanks Priptal for the close fix, GPF is now gone.
* mpkg_gnu.bat
! Using shorter temp dir names to make DOS command.com happy,
so that it copies all libs with a little more chance.
It's recommended to use a short base dir for DOS builds.
* contrib/hbct/ascpos.c
* contrib/hbct/ctwfunc.c
* contrib/hbct/ctcrypt.c
* contrib/xhb/filestat.c
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbnf/fttext.c
* contrib/hbpgsql/postgres.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbgd/gdwrp.c
* source/rtl/mouse53.c
* 'const' cleanup.
; NOTE: I rather didn't commit BYTE to char in CTWIN.
; TOFIX: Some of these will result in warnings when passing values
to external API calls. I'd like to ask developers to review
what the intent was. Sometimes external API declarations
are missing 'const', so it's safe to pass them these buffers,
but it should be checked in documentation.
---
../../fi_wrp.c: In function 'HB_FUN_FI_LOADFROMMEM':
../../fi_wrp.c:372: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../fi_wrp.c: In function 'HB_FUN_FI_GETFILETYPEFROMMEM':
../../fi_wrp.c:887: warning: passing argument 1 of 'FreeImage_OpenMemory' discards qualifiers from pointer target type
C:\devl\FreeImage-3.12.0\Dist/FreeImage.h:771: note: expected 'BYTE *' but argument is of type 'const BYTE *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2718: warning: passing argument 4 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2718: warning: passing argument 9 of 'gdImageStringFTEx' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gd.h:459: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2809: warning: passing argument 7 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 9 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
---
* contrib/hbgd/gdwrp.c
! Fixed const warnings.
* TOFIX: Remaining:
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTEX':
../../gdwrp.c:2659: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2676: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c: In function 'HB_FUN_GDIMAGESTRINGFTCIRCLE':
../../gdwrp.c:2794: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2800: warning: assignment discards qualifiers from pointer target type
../../gdwrp.c:2809: warning: passing argument 10 of 'gdImageStringFTCircle' discards qualifiers from pointer target type
C:\devl\gd-2.0.34\include/gdfx.h:41: note: expected 'char *' but argument is of type 'const char *'
* harbour/source/rtl/dates.c
! fixed CTOD() to be CA-Cl*pper compatible in decoding dates like:
SET DATE FORMAT TO "YYYY-MM-DD"
? CTOD("000002009.000000012.0000000000000027.1")
? CTOD(" 0002009. 000012. 000028 1")
? CTOD("xx0002009.xxx000012.xxxxxxxxxx000028 1")
? CTOD("000 02009.00 000012.000 000028 1"), "*"
? CTOD("2007 11 29")
? CTOD(" 2007 11 29 ")
? CTOD("2007-1 1-29")
? CTOD("2007- 1 1 - 2 9 ")
! fixed HB_CTOT() to use the same formatting rules as CTOD() in
CA-Cl*pper - now delimiters between values are strictly required.
* INSTALL
+ mpkg_gnu.bat
- mpkg_dos.bat
- mpkg_win.bat
% Windows and DOS package make batches merged into one.
! Deleting of BCC junk files where broken after latest changes.
* make_gnu.bat
! Fixed to ignore HB_BUILD_DLL for dos platforms.
* contrib/hbqt/hbqt_qhttp.cpp
* contrib/hbqt/hbqt_qftp.cpp
! Commented with TOFIX comment two compilation errors
reported on the list, to allow full Harbour build.
; TOFIX: Fix hb_parc() returned buffer passed directly
to QT to return data. This would previously
cause HVM corruption, not with 'const' it's
caught by compiler.
* INSTALL
* make_gnu.bat
+ Added support for Cygwin builds (passes call to make_gnu.sh).
+ Added Cygwin build starter example.
+ Cygwin mentioned as a requirement for mingwarm builds,
also added to PATH.
! Fixed cygwin autodetection.
! Fixed wrong PATH order in 'MinGW GCC + MSYS' example.
* Merged mingw+msys and cygwin bash based build methods,
and titled as "alternate" method.
Now all supported compilers work by starting up make_gnu.bat.
* utils/hbmk2/hbmk2.prg
! Change compiler autodetection to work for cygwin.
* mpkg_dos.bat
* mpkg_win.bat
* make_gnu.bat
! Fixed build process to work in paths containing spaces.
I didn't test the batch in pure DOS, so I may have broken it.
* config/win/install.cf
* config/wce/install.cf
! Fixed 'install' to work when there is a space in install path.
* make_gnu.bat
* INSTALL
+ Added support for HB_BUILD_LOG envvar. If set to 'yes',
it will automatically set log output filename to:
'log-<arch>-<comp>.txt'
if set to 'no' it will no make any extra redirection,
if set to any other value, it will be used for output
(both std and err). The batch will set HB_BUILD_LOGFILE
to the filename used for output for processing.
This feature requires Windows NT or upper host.
I didn't enable this feature yet by default to not break
existing user setups, but maybe I'll do it before the
final release.
* Modified text shown (+ beep thrown) when build failed.
* Messages now all start with 'Harbour'.
* Do not do the second build pass if the first one failed.
* contrib/hbwin/legacy.prg
! Fixed CreateObject() not working due to typo.
Thanks to Itamar Lins for the report.
* mpkg_dos.bat
* mpkg_win.bat
* mpkg_win.nsi
+ Enabled HB_BUILD_LOG=yes.
* Silenced copy, zip, makensis commands.
+ Added message about failed build process.
* Changed to use 'copy' instead of 'xcopy'
* Changed internals so now they don't require HB_COMPILER
and HB_ARCHITECTURE to be set. This means that now
we can rely on autodetection even for mpkg_*.bat files.
Creating an installer is very easy now for most cases.
Just type:
mpkg_gnu.bat
* source/vm/set.c
+ Added file commit support to __MVSAVE(), if Set( _SET_HARDCOMMIT )
is set to .T.. This is the default which means by default we aren't
CA-Cl*pper compatible. Addition protected by HB_C52_STRICT.
* source/rdd/dbf1.c
! Minor typo in comment.
* doc/en-EN/hb_apiit.txt
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/extend.c
* source/rtl/gtwvt/gtwvt.c
* source/rdd/dbf1.c
* contrib/gtqtc/gtqtc.cpp
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvggui.c
* contrib/hbwin/olecore.c
* examples/hboleold/win_ole.c
* Finishing long planned function renames to clear up
a very (10 years) old naming inconsistency.
To adapt you code to this, please do changes below:
1) hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
2) hb_itemPutCPtr2() -> hb_itemPutCPtr()
Unmodified code will generate compile time errors, so it's easy
to spot where the modifications need to be done. For most users,
only case 1) will need to be dealt with.
; INCOMPATIBLE. Please update your code.
* source/rtl/hbi18n1.c
* source/rdd/dbfnsx/dbfnsx1.c
* hb_itemPutCPtr() (with three parameters) -> hb_itemPutCLPtr()
* contrib/gtwvg/wvggui.c
* contrib/gtqtc/gtqtc.cpp
! Fixed GPF in hb_gtInfo( HB_GTI_SCREENSIZE ) call with wrong
parameter.
* contrib/hbmzip/hbmzip.c
* contrib/hbblat/blatwrp.c
* contrib/hbfbird/firebird.c
* contrib/xpp/dbcmdx.c
* contrib/xpp/philesx.c
* contrib/rddsql/sqlbase.c
* contrib/rddsql/sqlmix.c
* contrib/gtwvg/gtwvg.h
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgwing.c
* contrib/hbclipsm/time.c
* contrib/rddads/adsfunc.c
* contrib/rddads/ads1.c
* contrib/hbgd/gdwrp.c
* contrib/hbtip/utils.c
* contrib/hbtip/base64x.c
* contrib/hbtip/encmthd.c
* 'const' cleanup.
; NOTE: I've left some warnings which I couldn't fix,
and there were also cases where code modification
will be needed due to existing bugs now revealed.
* include/hbapi.h
* include/hbapiitm.h
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/extend.c
; Started addition of 'const' keywords where applicable.
* First pass:
extern HB_EXPORT const char * hb_parc( int iParam );
extern HB_EXPORT const char * hb_parcx( int iParam );
extern HB_EXPORT const char * hb_itemGetCPtr( PHB_ITEM pItem );
extern HB_EXPORT const char * hb_arrayGetCPtr( PHB_ITEM pArray, ULONG ulIndex );
; NOTE: This modification will break code in most compilers,
especially in C++ mode.
As a next steps source code will have to be modified
according to this change. Be patient, don't report all
errors to the developers. You can join the code cleanup.
* source/vm/dynsym.c
* source/vm/itemapi.c
* source/vm/arrays.c
* source/vm/memvars.c
* source/vm/extend.c
* source/vm/set.c
* source/vm/classes.c
* 'const's added to caller code.
* source/vm/memvars.c
- Deleted hb_fsCommit() as non CA-Cl*pper compatible.
I'll let others decide what to do with this patch.
* contrib/hbclipsm/date.c
! Changed hb_parnl() calls used to extract dates to hb_pardl().
* harbour/contrib/hbqt/Makefile_gen
* harbour/contrib/hbqt/hbqt_qapplication.cpp
* harbour/contrib/hbqt/qth/QApplication.qth
+ harbour/contrib/hbqt/TQApplication.prg
+ Added QApplication() PRG level class. Only one instance of
application is ever activated but its members can be accessed/assigned
as QApplication():new():setStyle( ... )
* contrib/hbqt/qth/QLatin1String.qth
* contrib/hbqt/qth/QTextStream.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QLatin1Char.qth
* contrib/hbqt/hbqt_qlatin1char.cpp
* contrib/hbqt/hbqt_qapplication.cpp
* contrib/hbqt/hbqt_qlatin1string.cpp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_slots.cpp
* contrib/hbqt/hbqt_qtextstream.cpp
! hb_parc() -> hb_parcx(). This may fix GPFs when non-string
parameter was read from C code and NULL pointer was passed
to certain QT methods. I couldn't find any specific mention
that NULL would be an accepted input value for the ones
I've checked.
Please review, and if hb_parc() was intentionally used,
and NULL value intentionally passed to QT, pls revert where
needed.