* harbour/source/rtl/scrollbr.prg
* harbour/source/rtl/getsys.prg
* harbour/source/rtl/tpopup.prg
* harbour/source/rtl/tgetlist.prg
* harbour/source/rtl/radiogrp.prg
* harbour/source/rtl/listbox.prg
* harbour/source/rtl/checkbox.prg
* harbour/source/rtl/browse.prg
* harbour/source/rtl/tget.prg
* harbour/source/rtl/ttopbar.prg
* harbour/source/rtl/pushbtn.prg
* harbour/source/rtl/tmenusys.prg
* harbour/source/rtl/achoice.prg
* harbour/source/rtl/teditor.prg
* harbour/source/rtl/radiobtn.prg
* harbour/source/rtl/tbrowse.prg
* replaced DispOut() with hb_dispOut()
* replaced DispBox() with hb_dispBox()
% removed saving and restoring of cursor position in places where
it's not longer necessary due to hb_dispOut()/hb_dispBox() usage
% removed saving and restoring of SetColor() value in places where
it's not longer necessary due to hb_dispOut()/hb_dispBox() usage
% removed saving and restoring of MSetCursor(). If it's necessary
low GT driver should hide and redraw mouse cursor before and after
screen update. We do not have to make it manually
The above modification gives faster code and allow to access screen
from different threads simultaneously because functions like
hb_dispOut() and hb_dispBox() are stateless and atomic in screen
access. Not all .prg code has been updated yet. If someone is
familiar with this code then please help. I'll add yet HB_SCROLL()
function which will support additionally colors.
Viktor if possible please verify this modifications.
* harbour/include/hbcomp.h
* harbour/include/hbcompdf.h
* harbour/source/compiler/hbmain.c
* harbour/source/compiler/complex.c
* harbour/source/compiler/harbour.y
* harbour/source/compiler/harbour.yyc
! moved function related variables and structures from HB_COMP to
PFUNCTION - it fixes many different problems which can appear in
some code, also the recent Mindaugas' example
! initialize statement value in error action to avoid valgrind/CodeGuard
warning reports when syntax error appear in some complex statements
* harbour/source/rtl/scrollbr.prg
* repalced TAB with SPACEs
* source/rtl/scrollbr.prg
! Fixed :Update(). Submitted by Edmer.
! Fixed formula in :CalcThumbPos(). Reported by Edmer.
! Fixed assigment in :CalcThumbPos() to not interfere
with ::lOverride. Reported by Edmer.
; Please test.
* tests/rto_get.prg
* tests/rto_tb.prg
+ Added more tests.
+ Enabled object as array results by default.
+ More details for TGet test results.
* bin/bld_os2.cmd
! Fixed lib names. Thanks David.
* source/rtl/tobject.prg
* Formatting.
* source/rtl/tget.prg
! Delimiter colors in C5.3 mode made compatible.
! ::colorSpec handling in C5.3 mode made compatible
for some invalid parameter types.
! Fixed handling decimals in :row, :col, :pos
methods.
! Fixed to compile in C5.2 mode without warning
(introduced in recent commit).
* source/rtl/tbrowse.prg
! Fixed handling decimals in :nTop, :nBottom, :nLeft, :nRight.
+ Added unfinished XPP method :viewArea()
+ Added untested XPP method :firstScrCol()
; Few minor formatting.
* include/hbextern.ch
* source/rtl/einstvar.prg
+ Added _eInstVar52() which is the C5.2 compatible version
of this function. It also replicates a bug.
* _eInstVar() renamed to _eInstVar53().
* _eInstVar() made a stub to call _eInstVar53().
* source/rtl/checkbox.prg
* source/rtl/listbox.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/symbol.prg
* source/rtl/teditor.prg
* source/rtl/tget.prg
* source/rtl/tget1.prg
* source/rtl/tgetlist.prg
* source/rtl/tmenuitm.prg
* source/rtl/tmenusys.prg
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
* Formatting (EXPORT: -> EXPORTED:)
* contrib/hbtip/thtml.prg
* contrib/hbtip/ftpcln.prg
! Fixed to work regardless of SET EXACT setting.
; NOTE: I'd suggest an optional compiler warning
to detect plain "=" usage. It's bad practice
in most cases.
TODO: make_os2_gcc.cmd -> make_gcc_os2.cmd
TODO: TGET test case for my vtgetlst problem.
TODO: TGET fix for the above.
TODO: _eInstVar() -> _eInstVar53()
* contrib/xhb/Makefile
* contrib/xhb/xhbfunc.c
+ contrib/xhb/xhb.ch
+ contrib/xhb/xhbcomp.prg
+ Added xhb_AScan(), xhb_AIns(), xhb_ADel() plus defines
to redirect extended AScan(), AIns(), ADel() calls to these
functions. They need to be tested as I'm no xhb user.
+ Added compatibility header, which adds a the above translations
and include hbcompat.ch.
+ Added INIT PROC xhb_Init() as a future place for xhb specific
startup settings.
; TODO:
- Add $ and [] operator overloading.
- Add operator overloading for hash type.
- Add a way hash API call to control the default flag
hb_hashNew() uses, then add this default setting to
the xhb libs INIT PROC.
; For better xhb compatibility, developers should add
#ifndef __XHARBOUR__
#include "xhb.ch"
#endif
to every .prg file they use.
+ contrib/xhb/make_b32.bat
+ contrib/xhb/make_vc.bat
+ contrib/xhb/makefile.bc
+ contrib/xhb/makefile.vc
+ Added non-GNU makefiles for xhb lib.
* include/hbcompat.ch
+ Added xhb compatibility translates for ENDSWITCH end friends.
* source/rtl/scrollbr.prg
* Minor formatting.
* source/rtl/memoedit.prg
* source/rtl/teditor.prg
* source/debug/tbrwtext.prg
+ HBEditor():RefreshWindow() renamed to :display()
old message name kept for compatibility.
+ HBEditor():hitTest() added.
+ HBEditor():changed() added. (returns internal
::lDirty which got renamed to ::lChanged)
* source/rtl/getlist.prg
* source/rtl/getsys.prg
* source/rtl/tgetlist.prg
! Fixes for UI problems reported by Lorenzo
and more. Mostly from xhb.
+ ReadModal() core functionality moved inside
HBGetList()
+ ReadStats() functionality moved indide
HBGetList()
+ All HBGetList() vars made protected.
+ Cleaned up the .prg and class interfaces.
! Fixed crashes of several GETSYS compatibility
functions, when no getlist was active.
We're still not fully C5.x compatible though.
* source/rtl/tmenusys.prg
+ Uses ReadStats() instead of direct
HBGetList() var access.
* source/rtl/tbrowse.prg
! :hitTest() fixed.
* source/rtl/tget.prg
! Minor fixes to :capCol() and :capRow()
* source/rtl/checkbox.prg
* source/rtl/listbox.prg
* source/rtl/menuto.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tpopup.prg
* source/rtl/ttopbar.prg
* Formatting (some varnames uniformized).
* source/rtl/tget.prg
! :HitTest() crash fix.
! :HitTest() made more compatible.
+ Added proper wrappers for undocumented C5.3 vars.
+ Added support for Caption.
+ Added support for C5.3 color handling (it's quite ugly,
but it's on by default).
; Some snippets from xhb but heavily fixed.
* source/rtl/scrollbr.prg
* source/rtl/tpopup.prg
* source/rtl/radiogrp.prg
* source/rtl/listbox.prg
* source/rtl/checkbox.prg
* source/rtl/tget.prg
* source/rtl/ttopbar.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
% __GUIColor() -> hb_ColorSelect()
* tests/Makefile
* tests/rto_get.prg
+ tests/rto_tb.prg
* include/button.ch
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
- source/rtl/mssgline.prg
+ source/rtl/gui.prg
+ source/rtl/menusys.prg
+ source/rtl/tmenusys.prg
* source/rtl/checkbox.prg
* source/rtl/einstvar.prg
* source/rtl/getlist.prg
* source/rtl/getsys.prg
* source/rtl/listbox.prg
* source/rtl/memoedit.prg
* source/rtl/pushbtn.prg
* source/rtl/radiobtn.prg
* source/rtl/radiogrp.prg
* source/rtl/scrollbr.prg
* source/rtl/tbcolumn.prg
* source/rtl/tbrowse.prg
* source/rtl/teditor.prg
* source/rtl/tget.prg
* source/rtl/tgetlist.prg
* source/rtl/tlabel.prg
* source/rtl/tmenuitm.prg
* source/rtl/tpopup.prg
* source/rtl/treport.prg
* source/rtl/ttopbar.prg
; These changes mainly targeted the .prg
level UI classes of Harbour.
+ Code standardization, cleanup, formatting.
(formatting is not fully complete yet)
! Lots of compatibility fixes.
! Lots of bugfixes (crashes, wrongly passed
parameters, etc).
! Minor fix in one of the methods of HBReportForm()
- Non-Clipper classes removed (the MENUSYS/msgline
related ones).
! Some fixes adapted from xHarbour's TBrowse()
+ Class VARs properly scoped.
+ TBColumn() is now fully compatible.
* The mess in the TTopBar and related classes was
cleaned up, some small non-Clipper compatible
classes were removed and a new TMenuSys class
was created of the related parts.
% Optimizations.
+ TBrowse/TBColumn regression test suite
added (far from complete at this point).
; NOTE: No C5.3 GUI support is implemented in Harbour.
; NOTE: Harbour uses Disp*() functions in UI functions
to update screen. C5.x uses a mixture of Dev*(),
Q?Out() and Disp*().
; NOTE: TBrowse() fixing is still a work in progress.
; Please test.