* INSTALL
+ Added 3.81 or upper as GNU Make requirement. Older ones
have bugs exploitet by current .cf files.
* contrib/hbssl/Makefile
- Disabled for owatcom.
* config/win/msvc.cf
! Fixed -TP switch. Stopped using CFLAGS.
* Changed to use link.exe directly instead of cl.exe.
* config/win/msvcce.cf
* Minor cleanup.
* include/hbdefs.h
+ Enabled new Harbour types. Still incomplete, and relying
on old unsafe types in places.
* contrib/gtwvg/gtwvg.c
! Warning.
* contrib/gtwvg/wvgcuig.c
! Cast errors.
* config/win/msvc.cf
+ Enabled C++ mode. This should result in stricter compiler
warnings/errors, and also enables to use standard init
method (non-C++ method is broken when using LTCG
and potentially in other scenarios like IA64). Note, this
doesn't mean we'd allow non-ANSI C usage inside Harbour,
so no C++ features are allowd. This won't cause any
drawbacks for the user AFAIK, if you know otherwise, pls
speak up. [Notice that we're using C++ mode for owatcom
on all platforms.]
* doc/whatsnew.txt
+ Documented win/owatcom and OpenSSL incompatibility.
(maybe it can be resolved, I didn't spend time on it)
* INSTALL
* C compiler -> ANSI C compiler.
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgcuig.c
! A fix for UNICODE | non-UNICODE. Not sure if it is the
right way, but it works. Please fix me.
* harbour/contrib/gtwvg/hbgtwvg.ch
+ #define HB_GTI_SETPOSANDSIZE
+ #define HB_GTI_HB_GTI_REFRESH
+ Two more events to manage new CUI-GUI objects.
+ #define GOBJ_OBJSTATE_*
+ #define GOBJ_OBJDATA_*
+ #define GOBJ_IMAGESOURCE_*
+ Constants to manage CUI=GUI objects.
* harbour/contrib/gtwvg/gtwvg.h
* harbour/contrib/gtwvg/wvggui.h
! Updated to be compilable for WinCE builds.
* harbour/contrib/gtwvg/gtwvg.c
! Updated to honor WinCE builds.
! Implemented double-buffering of console. Now flickering
should be the topic of the past.
* harbour/contrib/gtwvg/wvggui.c
! Updated to honor WinCE builds.
* harbour/contrib/gtwvg/wvgcuig.c
+ Implemented a highly optimized GUI controls for CUI consoles.
Implementation includes auto-destruction, data-substitution,
enable/disable feast, etc. These controls are almost identical
which are available with Wvt_Draw*() namespace but with a
great difference that these are tied to the urrent GT and
are handelled transparently by the GT itself. Developer
has only to define it. The only requirement is that
SaveScreen()/RestScreen() needs to be changed to new
Modal GT window. Appln screens will never get blurred. It
also employs optimized double-buffering and hence almost
eliminates screen flickering.
* harbour/contrib/gtwvg/wvgcore.c
* harbour/contrib/gtwvg/wvgsink.c
* harbour/contrib/gtwvg/wvgutils.c
* harbour/contrib/gtwvg/wvgwin.c
! Updated to honor WinCE builds.
* harbour/contrib/gtwvg/wvgcrt.prg
! A couple of methods fine-tuned.
! Modal GT's more responsive to user needs.
* harbour/contrib/gtwvg/tests/demowvg.prg
! Demonstrated the latest implemention of CUI-GUI controls. See below.
Please try <Traditional><WVG Console with CGUI> option in the main menu.
Also note the usage of Modal GT to simulate Alert() in new window.
Every GUI object returns a handle to it which may be used to
change its parameters.
; TOFIX( WINCE BUILDS ) - GetSystemDirectory()
/* IMPLEMENTATION OF CUI-GUI CONTROLS - A CODE PREVIEW
#xTranslate Alert( => MyAlert(
PROCEDURE GCUIConsole( oCrt )
LOCAL dDate := date()
LOCAL cName := pad( 'Some Usefule Name' , 35 )
LOCAL cAdd1 := pad( 'Linda Goldman Avenue', 35 )
LOCAL cAdd2 := pad( 'Excellent Street' , 35 )
LOCAL cAdd3 := pad( 'Suit #415' , 35 )
LOCAL nSlry := 9000
LOCAL nColGet := 8
LOCAL GetList := {}
LOCAL cLabel := "VOUCH, that GROWS with you"
LOCAL oTab, oStat, hBoxR, hTxt
SET SCOREBOARD OFF
SetColor( "N/W,N/GR*,,,N/W*" )
CLS
hb_gtInfo( HB_GTI_WINTITLE, "WVG Simplified yet Powerful CUI-GUI Console!" )
@ MaxRow(), 0 SAY PadC( "Navigate the Gets", maxcol()+1 ) COLOR "W+/B"
@ 2, nColGet SAY "< Date >"
@ 5, nColGet SAY "<" + PadC( "Name" , 33 ) + ">"
@ 8, nColGet SAY "<" + PadC( "Address", 33 ) + ">"
@ 15, nColGet SAY "< Salary >"
@ 3, nColGet GET dDate ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 1 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,0 ) ), .t. }
@ 6, nColGet GET cName ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 2 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,0 ) ), ;
Wvg_SetGObjState( hBoxR, 3 ), .t. }
@ 9, nColGet GET cAdd1 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 3 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,0,255 ) ), .t. }
@ 11, nColGet GET cAdd2 ;
WHEN {|| Wvg_SetGObjData( hTxt, 1, FetchText( 4 ) ) } ;
Valid {|| Wvg_SetGObjData( hTxt, 6, RGB( 255,255,255 ) ), ;
Wvg_SetGObjState( hBoxR, 1 ), .t. }
@ 13, nColGet GET cAdd3 ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 198,21,140 ) ), .t. }
@ 16, nColGet GET nSlry PICTURE "@Z 9999999.99" ;
WHEN {|| Wvg_SetGObjData( hTxt, 6, RGB( 0,0,0 ) ), .t. }
// The only additional calls to render your console GUI
//
// The GETLIST : This can be embedded via @ GET preprocessor command
aEval( GetList, {|oGet| Wvg_BoxGet( oGet:Row, oGet:Col, Len( Transform( oGet:VarGet(), oGet:Picture ) ) ) } )
//
hBoxR := Wvg_BoxRaised( 1,2,18,49, {-5,-5,5,5} )
//
Wvg_BoxRecessed( 1,2,18,49 )
//
// Wvg_BoxGroup( 2,4,17,47 )
//
Wvg_BoxGroupRaised( 2,4,17,47, {-7,-7,7,7} )
//
hTxt := Wvg_TextBox( 3,57,16,75, {10,10,-10,-10}, 'This is first TextBox Line!', 2, 2 )
//
Wvg_Image( 15,36,16,42, {-3,-3,3,3}, GOBJ_IMAGESOURCE_FILE, 'Vouch1.bmp' )
//
Wvg_BoxRaised( 15,36,16,42,{-2,-2,2,2} )
//
Wvg_ShadedRect( 1,54,18,79, { -5,-5,5,5 }, 0, {65000,21000,7000,56000}, {255,32255,16000,32500} )
//
Wvg_BoxRaised( 1,54,18,79, {-5,-5,5,5} )
// Instruct GT to Repaint the Screen with GUI elements.
oCrt:refresh()
// Issue the read
READ
Alert( 'How did you like the "Alert" replacement?', { 'WOW','OK','OOps'} )
RETURN
/*----------------------------------------------------------------------*/
#xUntranslate alert( =>
FUNCTION MyAlert( cMsg, aOpt )
LOCAL nSel, oCrt
oCrt := WvgCrt():New( , , { -1,-1 }, { 9, MaxCol()-6 }, , .t. )
oCrt:lModal := .t.
oCrt:icon := "dia_excl.ico"
oCrt:create()
oCrt:resizable := .t.
SetColor( 'N/W' )
CLS
hb_gtInfo( HB_GTI_WINTITLE, cMsg )
nSel := Alert( cMsg, aOpt )
oCrt:destroy()
RETURN nSel
#xTranslate Alert( => MyAlert(
/*----------------------------------------------------------------------*/
STATIC FUNCTION FetchText( nMode )
LOCAL cText
DO CASE
CASE nMode == 1
cText := 'Do you know Harbour is gaining a popularity what Clipper enjoyed at one time! '
cText += 'Enjoy it.'
CASE nMode == 2
cText := 'Do you know Harbour can host pure console, cui+gui console, pure gui consoles applications? '
cText += 'This demonstration is a proof of that.'
CASE nMode == 3
cText := 'Do you know Harbour is a multi-gt, multi-window, multi-thread compiler far superior than others in the market! '
cText += 'And is FREE.'
CASE nMode == 4
cText := 'Enjoy and contribute to the project any way you can. Develop, Debug, Support, and spread a word of mouth!'
ENDCASE
RETURN cText
/*----------------------------------------------------------------------*/
*/
;TODO - Write a comprehensive help to exploit CUI-GUI functionality.
Will do in a few days.
* bin/postinst.bat
+ Added owatcom and pocc support for implib generation.
* utils/hbmk2/hbmk2.prg
+ Fixed win/pocc support.
+ Added resource support for win/pocc.
+ Added .dll support for win/pocc.
+ Added win/xcc support (untested).
+ -DHB_DYNLIB is passed to C compiler in -hbdyn (.dll) mode
for win targets. (still need fixing to create usable .dlls)
; NOTE: pocc support is very limited as pocc compiler doesn't
support multiple input files.
* contrib/hbgt/strasint.c
% Using HB_ISDIGIT()
! Fixed to not include hbtrace.h directly.
* make_gnu.bat
% make clean and install phases merged in HB_BUILD_DLL mode.
* bin/postinst.bat
! Fix to recent change.
* include/hbdefs.h
! Moved #include hbtrace.h after HB_EXPORT is defined.
(hack)
* make_gnu_xmingwce.sh
- Disabled modifying PATH when host OS is Windows.
; NOTE: Hack.
* include/hbtrace.h
+ Added HB_EXPORT.
* doc/whatsnew.txt
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* contrib/hbfimage/Makefile
- Restored previous state, because latest changed addressing
Linux build failure were causing problems for the Windows
platform.
; TOFIX: We must clean our types, to avoid these problems
and all bad hacks to work it around.
* mpkg_win.bat
* mpkg_win.nsi
+ Added files ChangeLog, TODO, ERRATA, INSTALL to root dir.
* Some changed to batch targeting robustness for situations
which cannot normally happen in normal cases, but it's
useful for debugging.
* make_gnu.bat
* config/win/global.cf
* HB_BUILD_DLL is now processed by make_gnu.bat and another
internal envvar is used to request DLL flags from the GNU
Make. This way some side effects are avoided when doing a
make_gnu.sh launched build.
* make_gnu.sh
+ Emptying CLIPPER/HARBOUR envvars before starting the build.
(please test)
* contrib/hbfbird/firebird.c
* Minor formatting.
* contrib/hbcurl/hbcurl.c
! Fixed warning/bug in recently added feature.
* mpkg_win.bat
* Cleanup.
- Removed checking for errorlevel as it made it exit
even when doing successful builds. [ Why? Could someone
look at this? ]
* contrib/hbwin/wapi_commctrl.c
! Fix of the fix of the fix for non-ANSI comment fixes.
* tests/ac_test2.prg
* Updated.
* source/rtl/achoice.prg
! Fixed to not call user func in AC_NOITEM mode.
! Added more visual corrections for better CA-Cl*pper compatibility.
; Thanks to Vladislav Lavrecky for the above.
* INSTALL
+ Further refined GNU Make usage instructions for Windows
compilers. The recommended way of setting it up is now
stricter and there is mention of recommended build and
version number.
* contrib/hbapollo/apollo.c
* contrib/hbapollo/apollo1.prg
* Formatting.
* config/dos/owatcom.cf
* config/win/poccce.cf
* config/win/pocc64.cf
* config/win/owatcom.cf
* config/win/pocc.cf
* config/linux/owatcom.cf
* config/os2/owatcom.cf
! Cleanups and fixes after yesterday's changes.
Turned out that CFLAGS has an important and strange
difference compared to CPPFLAGS: It's also passed to the
_linker_ :( This should be cleaned in the future.
! HB_USER_LDFLAGS honored in dos/owatcom.
* contrib/hbgf/hbgfwin/winapi.c
* Formatting.
* contrib/hbwin/win_misc.c
! Fixed WIN_SHELLEXECUTE() for WinCE (converted to stub).
! Fixed WIN_RUNDETACHED() to compile with WinCE (4th parameter
is ignored and fixed to CREATE_NEW_CONSOLE).
* contrib/hbwin/win_regc.c
! HKEY_CURRENT_CONFIG disabled for WinCE builds.
* source/rtl/gtwvt/gtwvt.c
! Complete "layered" window support disabled for WinCE builds.
* source/rtl/achoice.prg
* tests/ac_test2.prg
! ACHOICE() made more Clipper compatible. Still not fully, pls
continue Clipper/Harbour tests with updated ac_test2.prg.
* harbour/source/rtl/gttrm/gttrm.c
+ added some missing xterm key sequences
* harbour/utils/hbmk2/hbmk2.prg
! fixed curses name in SunOS builds (here we are using native curses
library not ncurses)
* harbour/config/hpux/global.cf
* harbour/config/sunos/global.cf
* enabled GTXWC disabled for default builds
* contrib/hbtpathy/telepath.prg
! Fixed to use __PLATFORM__UNIX instead of __PLATFORM__LINUX.
! Fixed to check for string lengths instead of using Empty().
This way full whitespace data is also handled now.
* source/rtl/memoedit.prg
* Minor formatting.
* source/rtl/achoice.prg
! Fixed to always dehilight active item on exit.
(probably could be done more efficiently, feel free to
optimize it.)
Please test.
; TOFIX: ? gttrm on Darwin changes console color from my
default green, to Harbour default gray on exit.
* doc/whatsnew.txt
* Minor.
* bin/postinst.bat
* mpkg_win.bat
* HB_DIR_IMPLIB -> HB_BUILD_IMPLIB
ATTENTION: Please modify your local settings. This setting
is now closer to final.
* mpkg_win.bat
+ Turning on optimizations.
+ Turning off debug mode.
* ChangeLog
* Added comment to previous entry. (-d1 vs -d2 in owatcom)
* config/rules.cf
! Fixed typo in prev.
* config/dos/owatcom.cf
* config/win/owatcom.cf
* config/linux/owatcom.cf
* config/os2/owatcom.cf
% Removed unnecessary -i C compiler options. (pls check,
I've tested with Windows and applied it to other platforms)
% Removed DOS cmdline length hack from win/os2.
* source/rtl/achoice.prg
! Fixed handling of empty items.
* INSTALL
* config/rules.cf
* config/darwin/gcc.cf
* config/hpux/gcc.cf
* config/dos/djgpp.cf
* config/win/mingwce.cf
* config/win/poccce.cf
* config/win/pocc64.cf
* config/win/icc.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/owatcom.cf
* config/win/xcc.cf
* config/win/msvcce.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/bsd/gcc.cf
+ Added support HB_BUILD_DEBUG=yes.
This will work identically to the former non-GNU make
systems.
! Added missing -MT for MSVC. (from non-GNU make)
* Changed a few CPPFLAGS to CFLAGS. (these are currently
synonyms, and both are utilized without any apparent order).
This could use more cleanup.
* harbour/source/common/hbgete.c
* disabled unsetenv() from Watcom builds - looks that this function
exists only in OpenWatcom header files.
* harbour/source/common/hbprintf.c
* do not use some FL functions which operates on long double values
in SunOS builds
* doc/whatsnew.txt
+ Added new entries since last update. Please review, etc...
; TODO: There is still 500K worth of ChangeLog to process
for the timeframe 200808/09-20081219.
Someone pls help.
* doc/man/hbmk.1
* CC* envvar name change.
* harbour/source/common/hbgete.c
! fixed setenv() usage in some OpenWatcom ports
* harbour/source/compiler/cmdcheck.c
! fixed casting for C++ compilation
* harbour/source/rtl/gttrm/gttrm.c
* removed some trailing spaces
2009-03-10 18:18 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* ChangeLog
* Updates.
* contrib/xhb/txml.prg
* Update HB_REGEXMATCH() calls, to keep old logic.
; TOFIX: Above doesn't mean it's now correct, so
someone familiar with this code, please
correct it.
* contrib/hbapollo/apollo.c
* Removed essentially empty comments.
* source/rtl/achoice.prg
! Applied fix from Vladislav Lavrecky.
I didn't test it just assumed okay, please do so.
* ChangeLog
* Updates.
* contrib/xhb/txml.prg
* Update HB_REGEXMATCH() calls, to keep old logic.
; TOFIX: Above doesn't mean it's now correct, so
someone familiar with this code, please
correct it.
* contrib/hbapollo/apollo.c
* Removed essentially empty comments.
* source/rtl/achoice.prg
! Applied fix from Vladislav Lavrecky.
I didn't test it just assumed okay, please do so.
* source/rtl/hbregex.c
* Fixed HB_REGEXMATCH(). Now the HAS/LIKE mode can be controlled
by 5th logical parameter (was 3rd), so 3rd parameter is solely
controlling case-sensitivity as indicated in the documentation.
Users are recommended to use HB_REGEXHAS() and HB_REGEXLIKE()
functions as unambiguous alternatives, which work equally
well on all Harbour versions. HB_REGEXMATCH() is now deprecated,
but kept for compatibility.
* utils/hbmk2/hbmk2.prg
* -debug description extended.
* contrib/xhb/hbcompat.ch
- Disabled dangerous bitop compatibility macros + comment added.
Enabled them with #define XHB_BITOP. Or even better
to change code to use HB_BIT*() functions natively.
* utils/hbmk2/hbmk2.prg
+ Added support for static lib creation (experimental).
win/msvc, win/bcc are supported.
+ Added support for dynamic lib creation (experimental).
win/msvc is currently support.
; Please help adding support for the rest of compilers.
* harbour/source/compiler/hbusage.c
! fixed the /u+ description - it does not work like #include.
Only preprocessor command are significant in files included
by -u<file> and -u+<file>
* harbour/doc/man/harbour.1
+ add -u+<file> description
* harbour/source/pp/ppcore.c
! fixed typo in error message table (missing ',')
* harbour/source/compiler/cmdcheck.c
* generate error when -u+ is used without <file>
* harbour/source/compiler/hbmain.c
* do not display usage screen if other errors were generated before
* source/compiler/hbusage.c
+ Added -u+ to help screen.
* One remaining non-ASCII char cleaned from credit list.
* include/hbpp.h
* source/pp/ppcore.c
! Renamed HB_PP_MAX_REPATS to HB_PP_MAX_REPEATS.
* ChangeLog
* Added one line to my prev entry.
* harbour/include/hbcompdf.h
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/hbcomp.c
* harbour/source/compiler/ppcomp.c
+ added support for extended definition files in Harbour compiler
switches: -u+<file>
This option can be repeated if user wants to use more then one
file with extended definitions. The definitions are added after
standard ones and after defines specified by -D<name>[=<value>]
Harbour compiler switch.
The behavior of -u[<file>] remains unchanged and -u or -u<file>
can can be used together with -u+<file>.
Note for xHarbour users: it's not exactly the same behavior as
in xHarbour compiler.
! fixed memory leak when repeated -u[<file>] options are used.