* INSTALL
* external/Makefile
* contrib/Makefile
+ Added build option to exclude specific list of contrib/external
libraries using syntax: 'HB_CONTRIBLIBS=no lib1 lib2 libn'
* contrib/hbct/dummy.c
+ Indicated that some functions are implemented in
core (for C5.3 compatibility).
* contrib/hbwin/win_tbmp.prg
* Formatting.
- contrib/gtqtc
+ contrib/hbqt/gtqtc
* Moved under QT structure.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/resources/findinfiles.ui
+ Started implementation of "Find in Files" option.
Just to have a glimpse what components it will contain,
click on "Search" button along-side "Find" buttons.
It is not working but it may prompt you which feature
I missed to include. Just play.
* contrib/hbide/hbide.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/resources/projectproperties.ui
+ Implemented loading project from .hbp.
Look for the button on top of "Properties" dialog.
Please note that .hbp file is loaded with its whole
contentents and then is sectionized as per .hbi
protocol. So, the disadvantage is you loose the
free-format implementation of .hbp. It has to be
discovered how can we cover this aspect. Be careful
when building the project as existing .hbp will be
overwritten if you choose the "Project Location"
of the project pointing to same folder where .hbp
resides. Other than loosing "-skip" protocol of .hbp,
I am sure we are loosing nothing else, please test.
+ Implemention <Close Project> and <Remove Project> options
which can be invoked from context menu of project node.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbxbp/hbpprocess.prg
! xMate project file .xhp loading more normalized.
I could build almost all of my projects created from it.
* utils/hbmk2/hbmk2.prg
+ -xhp= converter switch now recognizes some more types of file.
(lib, object and libpaths)
* contrib/hbnetio/utils/netiosrv.prg
* contrib/hbnetio/utils/netiocmd.prg
- Deleted call protection.
* contrib/hbwin/Makefile
* contrib/hbwin/hbwin.h
* contrib/hbwin/win_bmp.c
+ contrib/hbwin/win_bmpd.c
* contrib/hbwin/win_tprn.prg
+ contrib/hbwin/win_tbmp.prg
+ Moved WIN_BMP() class to separate source file.
+ Moved WIN_BITMAPDIMENSIONS() and its low-level support functions
to separate source file, to avoid creating unwanted
dependency to libpng.
+ Applied Xavi's patches to WIN_BMP().
* Restored nError parameter for ::IsSupported()
* ::LoadFile() now fills dimensions automatically.
* ::Draw() 3rd dim array parameter replaced with nError.
* contrib/hbwin/hbwapi.h
+ Added 'extern' keyword.
* utils/hbmk2/hbmk2.prg
+ Added -hbexe option. This is the default, but it may help hbide
and other tools to clear doubts about target type. (or to override
some previous -hbdyn/-hblib options for whatever reasons)
* contrib/hbide/ideprojmanager.prg
* "hbMK2.exe" -> "hbmk2 Executable"
.exe extension is Win/OS2/DOS specific.
* harbour/utils/hbmk2/hbmk2.prg
* use HB_EXTERN_BEGIN / HB_EXTERN_END macros instead of HB_EXTERN_C
in -xhb mode. It fixes the problem with -gui switch.
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.prg
! Fixed rare problem where options containing .hbp/.hbm/.clp
extesions have been mistaken as file recursions instead
of being processes as options. F.e. -runflag=test.hbp
! Updated help text about possible filter keywords.
! Fixed to use xharbour[mt] for dynlib name for mingw targets.
Added NOTE that in newer xhb version this is not true
anymore. Support for other targets also doesn't work,
because of non-existent or not consistent dynlib naming
scheme in xhb.
! Fixed to use 'mainstd' instead of 'hbmainstd', and not
to use 'hbmainwin' at all in -xhb mode for mingw targets.
For rest of targets the xhb solution is inconsistent, so
it's not currently possible give them any meaningful
support in hbmk2.
* contrib/hbxbp/Makefile
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
+ contrib/hbxbp/hbpqtui.prg
- contrib/hbxbp/xbpqtuiloader.prg
% Renamed XbpQtUiLoader() class to HbpQtUI()
This is Harbour extension to Xbase++ class framework.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idethemes.prg
* contrib/hbide/resources/projectproperties.ui
% Changed <Main Menu> prompts:
+ <Environments> in <Project>
- <Options> => <Setup>
- <Codecs> => <Setup> <Codecs>
! Separated the <Define Environments> dialog from <Project Properties>
And added a menu option in <Projects> main-menu prompt.
+ Implemented to load xMate's Project file (.xhp) when a new project
is created. Can be invoked via a push button on top-right corner of
<General> tab.
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/resources/hbide.env
- Dropped {shell} and {ext} placeholders from hbide.env.
These are now auto detected, thanks Viktor.
* contrib/hbnetio/utils/netiocmd.prg
! Fixed remote execution protection to work even when
the source was compiled from another directory.
; QUESTION: Is there a better way to make this kind of
protection? Current system will break if
the source filename of the caller happens to
change in the future.
* contrib/hbnetio/utils/netiosrv.prg
+ Show internal error and quit and if above self-protection
got broken for some reason.
* utils/hbmk2/hbmk2.prg
! Fixed entry function detection builting project in
different than current dir, possibly also in -inc mode.
[TOMERGE 2.0]
* ChangeLog
+ Added TOMERGE to /INSTALL doc modifications.
I had not marked any changes regarding .rpm generation, as
I can't oversee this packaging type, have minor experience
with it and got no user feedback whatsoever. If someone cares
to review/comment/fix, whole current INSTALL can go to 2.0.x.
[TOMERGE 2.0]
* harbour/contrib/hbwin/win_misc.c
! fixed buffer overflow in WIN_WIDETOANSI() caused by wrongly calculated
buffer size
* harbour/utils/hbmk2/hbmk2.prg
* updated names of xHarbour libraries - now it works in static mode
TOFIX: -xhb shared mode uses 'harbour' instead of 'xharbour' library
and 'hbmainstd' instead of 'mainstd'
TOFIX2: -gui switch in -xhb mode cause compile time error:
/tmp/hbmk_auhl2d.c:8: error: syntax error before "void"
* contrib/hbxbp/Makefile
* contrib/hbxbp/hbpprocess.prg
+ Implemented first HbpProcess() class ( Harbour Extension )
which is based on Qt's process management classes.
The usage concept is well defined in
/contrib/hbide/ideprojmanager.prg.
I will write the documentation at some later date.
* contrib/hbide/resources/projectproperties.ui
+ More components.
* contrib/hbide/projects/hbide.hbi
+ More info.
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
! Updated to hold Development Environments concept introduced.
Read below.
- contrib/hbide/hbide.env
+ contrib/hbide/resources/hbide.env
+ The environment skeletons (working) on my machine connecting
hbIDE to hbMK2 engine. You can copy it and place it
in projects folder with suitable path amendments and
call it in hbIDE. This implementation facilitae to
generate any project on any compiler from within
single instance of hbIDE without leaving it.
Here are the implementation details:
FORMAT
======
[ BCC55 5.5.1 Command Line Tools ]
{hb_comp} bcc
{shell} cmd.exe
{ext} bat
#
{content} set HB_COMPILER=bcc
{content} set PATH=c:\harbour_dev;c:\harbour_dev\bcc\bin;C:\harbour_dev\harbour\bcc\bin;
[ MINGW 4.4.2 Windows ]
{hb_plat} win
{hb_comp} mingw
{content} set PATH=c:\mingw\bin;c:\qt\2009.03\qt\bin;
{content} set PATH=c:\harbour_dev;c:\harbour_dev\harbour\mingw\bin;%path%
{content} set HB_WITH_QT=c:\qt\2009.03\qt
...
{hb_plat} == set HB_ARCHITECTURE=
{hb_comp} == set HB_COMPILER=
{shell} == shell command to execute
{ext} == the extension of shell commands file
{content} == active contents placed in the shell commands file
Any lines with {contents} marker will form the
body of commands file. You can place remarks
preceded with # sign.
Currently {contents} are implemented, rest will take a couple of days.
PLACEHOLDER
===========
<Environments Tab> in <Project Properties> dialog but with separate
button to save this and its path information alone. Just avoided one
more dialog.
ACTIVATION
==========
Right-click on <Projects> node in "Projects" tree and select <Environments...>.
The selected environment will become the default for current session and will
be saved for next invocation until it is changed. Next build will respect
this setting.
EFFECTIVENESS
=============
Create a desktop icon pointing to hbIDE.exe and place the only parameter
poing to "hbide.env" file. You can copy it anywhere in your project tree,
amend it to suit your requirements, and just execute hbIDE on your desktop.
NOTE: you _MUST NOT_ set any compiler specific variables before invoking
hbIDE. Your working slate must be clean.
WHAT_IS_NOT_DONE
================
The bash commands and their shell invocation. But I know a lot of you
will implement that in no time.
* contrib/hbwin/Makefile
* contrib/hbwin/hbwin.hbc
* contrib/hbwin/win_bmp.c
* contrib/hbwin/win_tprn.prg
+ WIN_BITMAPDIMENSIONS(): Added PNG support.
(in fact the internal function can also be used to validate
.png files)
Please review/test.
+ Added libpng dependency for hbwin lib. libpng requires
zlib, so that's also added, but it's required by core
already anyway.
Please test cross-platform scenarios.
* WIN_BITMAPISSUPPORTED(): Now simply returns numeric
results, where zero is success. Same done to low level
function.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/win_prn1.c
* contrib/hbwin/win_tprn.prg
+ Added constants for bitmap types.
* Minor cleanups to jpg/png handling.
* contrib/hbxbp/xbpdataref.prg
% Changed the way class is recognized to facilitate sub-classing.
Currently only for XbpSLE and XbpMLE.
* contrib/hbxbp/xbpwindow.prg
! Method :isDerivedFrom( cClassOrObject ) extended to match
the class name of oParent till it matches the given parameter.
I am wondering if this functionality be included in class
engine itself. Przemek ?
* contrib/hbwin/win_prn1.c
+ Added support for printing RAW compressed formats JPEG and PNG BitMaps.
+ Added new PRGs functions: win_TypeBitMap() and win_CheckPrnDrvFormat()
Example of use in the class win_BMP()
* Changes in WIN_LOADBITMAPFILE, WIN_DRAWBITMAP to support new formats.
* contrib/hbwin/win_tprn.prg
+ Extended the class win_BMP() to allow printing compressed formats JPEG and PNG
if the printer driver allows.
+ Added method CheckPrnDrvFormat( oPrn, @cErrMsg ) for check printer driver.
+ New VAR INT Type. Type of BitMap: 1 == BM, 2 == JPEG, 3 == PNG
+ New VAR array DimXY. Original Image Dimensions X Y in pixels.
* New parameter aDimXY in LoadFile( cFileName, aDimXY )
* New parameter aDimXY in Draw( oPrn, aRectangle, aDimXY )
to introduce the original image dimensions in pixels X Y.
Some printer drivers may require the insertion of the original image dimensions
for processing, others read from the data source and by default only need have
aDimXY := { 1, 1 }
* Use DimXY VAR of win_BMP() in method DrawBitMap( oBmp ) of win_PRN()
* src/compiler/hbusage.c
+ Added author ID mail
* src/vm/estack.c
! Replaced printf() calls with hb_snprintf() and hb_conOutErr()
calls. This will avoid reported problems where MinGW binary
build refers to internal printf function. As a rule we should
never use printf() in Harbour code. There are still a few
commented ones in hbrtl.
[TOMERGE 2.0]
* src/vm/hvm.c
! Replaced printf() (commented) call with HB_TRACE().
[TOMERGE 2.0]
* utils/hbmk2/hbmk2.prg
! Fixed -build option not being recognized.
! Fixed -build option not being ignored in second option
parsing loop.
! Fixed -lang= option not being ignored in second option
parsing loop.
[TOMERGE 2.0]
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Extended help text for -head option.
* contrib/hbwin/win_prn1.c
% WIN_LOADBITMAPFILE() optimized to use hb_retclen_buffer().
! WIN_LOADBITMAPFILE() fixed to return empty string instead
of NIL in case of file read failure.
* examples/rddado/adordd.ch
+ Added new 'adCmd*' constants. From xhb.
(2010-01-20 20:53 UTC+0100 Miguel Angel Marchuet)
* Formatting.
* contrib/hbide/idefindreplace.prg
! Fixed: error when find operation was unsuccessful.
* contrib/hbxbp/xbp.ch
+ Added HBXBP_DBG( HB_TR_ALWAYS,... )
* contrib/hbxbp/xbppushbutton.prg
+ Behavior: if focus is set on the object, then its property is
changed to autodefault() which means the button will be highlighted
with additional border to indicate that it can be activated
with "Return" press. However this property does not work in
buttons if XbpDialog() is the parent.
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpwindow.prg
* contrib/hbxbp/xbpdialog.prg
+ Implemented: XbpDialog():maxButton, :minButton
QUESTION: which instance variable controls the resizing behavior?
* contrib/hbxbp/xbpsle.prg
+ Added: callback slot :returnPressed.
oSle1:returnPressed := {|| SetAppFocus( oSle2 ) }
This facilitates the TAB behavior which navigating the SLE's.
This effectively also means you can control the SLE's like
ReadModal(). Just validate the SLE (oGet) and move to
another SLE or any other part.
Angel, your observation will matter.
* contrib/hbwin/hbwapi.h
* contrib/hbwin/wapi_alloc.c
* contrib/hbwin/wapi_wingdi.c
* contrib/hbwin/tests/testgdi.prg
+ Reworked the way DEVMODE structure is handled. As many winapi
interfacing methods, this is also a strange beast, it contains
some hidden information, so it must be created using some
winapi calls. I finally settled with these three functions
to handle DEVMODE structure from .prg level:
__WAPI_DEVMODE_NEW( <cPrinterName> ) => <pDEVMODE>
__WAPI_DEVMODE_SET( <pDEVMODE>, <hashToWriteFrom> )
__WAPI_DEVMODE_GET( <pDEVMODE>, <hashToReadInto> )
Then <pDEVMODE> can be passed to WAPI_CREATEDC() and WAPI_RESETDC().
Remember to recreate <pDEVMODE> after using __WAPI_DEVMODE_SET()
and before using __WAPI_DEVMODE_GET() to refresh the structure
content with actual device settings.
* contrib/hbide/ideprojmanager.prg
! Don't delete temp .hbp file when creating PPO file, otherwise
hbmk2 couldn't find it (at least on my system).
* Changed temp .hbp name to have "_tmp.hbp" appended (instead of "._tmp.hbp").
* utils/hbmk2/hbmk2.prg
+ Added -env: option, command line only, it serves to alter local
environment, which is used by fix itself and which is passed to
external commands. This means it's now possible to call hbmk2
in a way that it configures the whole build environment for itself:
hbmk2 hello.hbp -env:PATH#C:\mingw\bin; -env:HB_WITH_QT=C:\qt\4.5.3
Read more in --help.
; Please experiment with it.
* contrib/hbide/ideprojmanager.prg
+ Added simple way (HBIDE_DIR_HBMK2 envvar) to configure location
of hbmk2.
* contrib/hbqt/generator/hbqtgen.prg
! Minor formatting fix to generated code.
* contrib/hbnetio/utils/netiosrv.prg
* contrib/hbnetio/utils/netiocmd.prg
% Optimizations to latest patch (using FOR EACH).
* Formatting and indenting to latest patch.
* contrib/hbxbp/xbpdataref.prg
% Formatting.
* contrib/hbxbp/xbpgeneric.prg
! Little refinment in MsgBox().
* contrib/hbxbp/xbpwindow.prg
! A major fix to not allow XbpDialog() to invalidate buffers.
* contrib/hbxbp/xbpdialog.prg
+ Implemented :setModal() method.
; Angel now your submitted application will run out of the box.
You may need one or two changes.
oSLE1:oWIDGET:selectAll()
SetAppFocus(oSLE1)
oDlg:showModal()
nEvent := 0
DO WHILE ! lExit .AND. ! lOk .AND. nEvent <> xbeP_Close
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
oSle1:getdata() //// DOESN'T WORK
oSle2:getdata() //// GIVES ME DATA OF FIRST SLE !!!!
SetAppFocus(SetAppWindow())
oDlg:Destroy() //RECURSIVE RUNTIME ERROR !!
//oDlg:hide()
NOTE: See how a little interest of you have fixed many artifacts !!!