* contrib/hbwin/Makefile
+ contrib/hbwin/wapi_wingdi.c
+ Added experimental WAPI wrappers for Windows GDI printing
functions also found in win_prn1.c.
This is partially to avoid the legacy interface which
is a combination of WIN_* functions and Harbour class.
Which may seem to make thing more complicated at first,
but IME it provides a much cleaner interface, as you
only have to adapt to MSDN docs.
It's also a test bed for structure passing in WAPI
situations. I've used hashes as the best looking
solution, but even this has some things left to solve
(like handling string types and returning values).
Anyway it's a food for thought.
* contrib/hbwin/hbwin.ch
+ Added WIN_DMORIENT_* constants.
* contrib/hbwin/win_prn1.c
! Fixed to not accept raw pointers where HDC or HPEN is
expected. I've added this feature last year, without
making special mention of it in ChangeLog, so it was
a double-mistake.
* Minor cleanups (hb_retnl() vs hb_retni())
% Optimization in WIN_SETBKMODE().
* harbour/contrib/hbcairo/pdf.c
* harbour/contrib/hbcairo/png.c
* updated harbour level functions to be available, but return error
result, if it is not supported by some version of cairo library
* harbour/contrib/hbcairo/image.c
* comment typo
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/win_prn1.c
+ WIN_CREATEFONT() extended with 10th parameter which makes
it possible to switch to raw height/width specification.
This is crucial for precise positioning using integer
parameters. Not very elegant parameter, but this class
and low-level interface is already extremely hacky so this
won't really make it any worse.
+ WIN_PRN():SetFont() extended with lManualSize option which
maps to above 10th parameter.
* contrib/hbwin/tests/testprn.prg
+ Added some text on the solution for overwritten underline
problem described in test program.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/ideobject.prg
+ Started : auto indentation and keyword capitalization.
; Please test and forward your suggessions.
* utils/hbmk2/hbmk2.prg
+ Allowing -hbdyn and -shared option together.
Absolutely not tested combination, so it may need further
development to make it usable.
! Fixed bad typo in .c stub enabler logic, which have
added .c stub also to libs/dynlibs when -main option
was used (plus some other rare cases)
! Fixed gcc linker option order in -hbdyn mode.
; Please test.
* harbour/contrib/hbwin/win_prn1.c
! fixed missing dmFields assignment - please test if this fix does
not change the behavior of printer dialog window when :AskProperties
is set to .T. - thanks to Chen for information
* harbour/src/pp/ppcore.c
* pacified BCC warning
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.yyh
* regenerated with patched bison to pacify BCC warnings
* harbour/include/hbwinuni.h
+ added HB_ITEMCOPYSTR() macro
* harbour/src/common/hbwince.c
* redirected Beep() to MessageBeep() - it does not allow to set
time and duration but should generate some default system voice
signal - please test the results with real devices using WinCE/
Win Mobile
TODO: New MinGW support LockFileEx() and UnlockFileEx() but they are
part of coredll6 library not coredll. I guess it's designed to
use with Windows Mobile 6.x. Add compile and link time support
for it.
TODO: Add link time support for MinGWCE and non ARM processors.
New MinGWCE supports x86 compatible Intel CPUs for pocket devices.
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbslots.cpp
! HB_TRUE/FALSE <=> true/false.
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
! Updated to manage split windows properly.
Presently the behavior is as such:
Horizontal Split - Top row is columns are splitted
Vertical Split - More row is added at the bottom.
Delete Splitted Window - Focus is always shifted to
main edit window. i.e., parent of all.
Please comment.
* src/vm/extrap.c
* src/rtl/diskspac.c
* src/rtl/disksphb.c
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/gtwvg/wvgwin.c
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
+ Using HBTEXT() macro on 2nd parameter of GetProcAddress()
in _all_ cases. This can't hurt, but it's useful to never
forget it for WinCE targets/branches.
Recent change got also simplified after this.
Pls review me.
* src/common/hbwince.c
- Deleted definition of FreeResource(). It's noe used anywhere
in Harbour, and its declaration was also missing.
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_destruct.cpp
- Deleted no longer used macros: hbqt_ret_*().
+ Added TOFIX to hbqt_par_*() where essentially the GC
pointer type checking is completely worked around, which
makes it easy to create GPFs by passing wrong pointer
type to functions. Probably its unavoidable to introduce
parameter validation to HBQT wrappers. Such validation
could decide which types are accepted (f.e. objects and
parent objects, whether NULL is accepted or rejected).
If not accepted a proper RTE should be thrown instead
of letting the app GPF.
+ Added two TOFIXes where low-level parameter
retrieving function returns NULL.
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesources.prg
* contrib/hbide/idethemes.prg
! Updated to honor latest changes.
+ Added: ZoomIn, ZoomOut feature, currently via toolbar.
! Fixed: open dialog respecting last opened path.
! Fixed: to display codec in the statusbar at the startup.
! Fixed: context menu gpf'ing if no prompt is selected.
+ Prepared: to allow extended book-"Mark" feature.
+ Prepared: to handle extended syntax highlighting.
! More artifacts I must be missing.
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_destruct.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbevents.h
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbslots.cpp
* contrib/hbqt/hbqt_hbslots.h
* contrib/hbqt/qth/HBQTextBlockUserData.qth
* contrib/hbqt/qth/QAbstractItemModel.qth
* contrib/hbqt/qth/QSyntaxHighlighter.qth
* contrib/hbqt/qth/QTableView.qth
+ contrib/hbqt/qth/HBQTableView.qth
+ contrib/hbqt/qth/HBDbfModel.qth
+ contrib/hbqt/qth/HBQSyntaxHighLighter.qth
+ Separated parts to auto/static generation.
+ contrib/hbqt/qth/HBEvents.qth
+ contrib/hbqt/qth/HBSlots.qth
+ Prepared to bring Events/Slots management on OO level.
Stll not activated as I have some technical issues on
c++ level. Just a matter of time...
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/generator/qt45.qtp
+ This commit is generally towards separation of static/auto
generated parts of classes which has been hanging in for
manual updates to the structures indivisually if changes
were made effective overhaul.
* contrib/hbqt/qtcore/*
* contrib/hbqt/qtgui/*
* contrib/hbqt/qtnetwork/*
* include/hbcompdf.h
* src/compiler/cmdcheck.c
* src/compiler/hbmain.c
* src/compiler/hbcomp.c
* src/compiler/hbopt.c
* src/compiler/hbusage.c
* src/compiler/hbgenerr.c
+ Added options to control error/warning output format/style
in Harbour, to make it possible to switch to formats which
are handled by popular IDEs, like Eclipse, Code::Blocks.
Currently these are supported:
-ge[0]: Clipper compatible (default)
-ge1: "IDE friendly". Mimics the one submitted by Lorenzo
for Eclipse.
The goal is to cover the most IDEs with the less options,
so please test them to reach this optimum.
* harbour/src/common/hbwince.c
- removed LocalLock()/LocalUnlock()/LocalHandle() function wrappers
for WinCE builds - we do not use these functions in current code
* harbour/contrib/xhb/xhw32prn.prg
- removed commented :AskProperties - it's already implemented in
WIN_PRN class
* harbour/include/hbapi.h
* harbour/src/common/hbver.c
+ added BOOL hb_iswin9x( void ) C function
* harbour/src/rtl/version.c
+ added HB_OSISWIN9X() PRG function
* harbour/src/rtl/gttone.c
% simplified the code using hb_iswin9x() function
TODO: Check if WinCE support WinNT file IO functions and if yes then
replace in src/rtl/filesys.c 'if( hb_iswinnt() )' with
'if( !hb_iswin9x() )'
* harbour/contrib/hbwin/win_tprn.prg
* harbour/contrib/hbwin/win_prn1.c
+ added ::AskProperties in WIN_PRN class
If it is assigned .t. prior to calling ::Create(), a DocumentProperties
dialog is displayed. By Budyanto Dj. borrowed from xHarbour.
NOTE: this modification does not contain win9x hack present in
xHarbour. Please make tests and update this code if necessary
* contrib/hbwin/win_prn1.c
* contrib/hbwin/hbwapi.h
+ Added public functions to return and retrieve HDC and HPEN
handles. This makes it possible to use these in 3rd party
code and other parts of hbwin lib. F.e. to create pure
wrappers for GDI functions.
+ win_prn1.c now uses hbwapi_ret_*() functions to return
HDC and HPEN handles.
* Renamed static GC related functions.
! WIN_SETPEN() fixed to retrieve pointer from _2nd_ param.
(it was 1st previously, pls review me)
! WIN_SETPEN() fixed to not allocate new GC pointer if
an existing GC pointer was passed as 2nd parameter.
(please review me)
* contrib/hbwin/mapi.c
* contrib/hbwin/wapi_commctrl.c
! Fixed to compile with Cygwin.
[TOMERGE 2.0]
* contrib/hbwin/win_prn1.c
- Deleted unnecessary winspool.h header.
* contrib/hbwin/win_prn2.c
* contrib/hbwin/win_prn3.c
- Deleted winspool.h header for LCC compiler.
We don't support LCC compiler in Harbour.
! Cleaned windows.h inclusion.
* contrib/hbfimage/fi_winfu.c
* contrib/hbfimage/fi_wrp.c
* Formatting.
+ TOFIX added to use GC collected pointers.
* harbour/include/dbinfo.ch
* harbour/include/hbrdddbf.h
* harbour/src/rdd/dbf1.c
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* renamed DB_DBFLOCK_XHB64 => DB_DBFLOCK_HB64
* harbour/contrib/hbwin/win_tprn.prg
* updated some comments and formatting
* harbour/contrib/xhb/Makefile
+ harbour/contrib/xhb/xhw32prn.prg
+ added WIN32PRN class, it inherits from WIN_PRN class hiding some
differences between Harbour and xHarbour in paper size setting and
separated horizontal and vertical alignment setting
* contrib/hbwin/win_tprn.prg
! Using constant.
* Minor formatting/cleanup.
* contrib/hbhpdf/harupdf.c
! HPDF_Page_GetMiterLimit() fixed to return double instead of long.
As suggested by Saulius.
[TOMERGE 2.0]
* Formatting.
* contrib/hbwin/hbwin.ch
+ Added HB_WINFONT_* constants for WIN_ENUMFONTS() returned
array positions.
+ Now possible to disable legacy defintions by defining
HB_WIN_NO_LEGACY. This paves the way to include this file
in .c files.
* contrib/hbwin/win_prn1.c
! WIN_ENUMFONTS() fixed to return empty array (instead of NIL)
in error cases.
* contrib/hbwin/win_reg.prg
* contrib/hbwin/win_os.prg
* contrib/hbwin/win_tprn.prg
* contrib/hbwin/wapi_winbase.c
* contrib/hbwin/hbwin.h
* contrib/hbwin/hbwin.ch
* contrib/hbwin/tests/testprn.prg
* contrib/hbwin/tests/testcom1.prg
* contrib/hbwin/tests/testcom2.prg
* contrib/hbwin/tests/testreg.prg
* contrib/hbwin/tests/testmapi.prg
* contrib/hbwin/win_com.c
* contrib/hbwin/win_prn1.c
* MM_TO_INCH macro moved from hbwin.ch to win_tprn.prg.
(INCOMPATIBLE is someone happened to use this in app code)
+ Prefixed all Windows constants with WIN_ in hbwin.ch.
+ Prefixed all hbwin specific constants with HB_ in hbwin.ch.
+ Retained all old legacy / deprecated hbwin.ch constants
for compatibility. Users are encourages to use the new
ones, as the old ones will be deleted in the future.
* Changed WIN_MULDIV() to use hb_retni() (instead of hb_retnl())
* WIN_MULDIV() renamed to WAPI_MULDIV() and moved
to wapi source. (INCOMPATIBLE, although it's unlikely anyone
is using WIN_MULDIV() so I didn't keep it.)
+ Added some additional printing related Windows constants.
+ Added comments to hbwin.ch saying which constant is used
in which WIN_*() function.
* HB_WIN_MAPI_* constants renamed to WIN_MAPI_*.
(I haven't dealt with compatibility as this is brand new
functions with not much users yet)
+ Marked all hbwin.ch deprecated macros with HB_LEGACY_LEVEL3
! Fixed to use hbwin.ch constants in few remaining places in testprn.prg
; Now it's possible to include hbwin.ch in .c files.
; QUESTION: Why RGB_* color constants aren't using pure colors?
If there is no special reason, I think it should be
changed to pure ones (with 0xFF components).
* src/compiler/hbgenerr.c
* Formatting.
* contrib/hbwin/win_tprn.prg
! Fixed to not refer to legacy function WIN_GETEXEFILENAME().
Probably this was causing the link-time symbol collision
problem once reported by Mindaugas.
* contrib/hbwin/hbwin.ch
+ Added WIN_RGB() macro to replace RGB(). Latter is now
deprectaed.
* ChangeLog
+ TOMERGE added to prev entry.
* contrib/hbhpdf/harupdf.c
! HPDF_Page_TextWidth() fixed to return double instead of long.
As suggested by Francesco Perillo.
* contrib/hbwin/hbwin.ch
* contrib/hbwin/tests/testprn.prg
+ Renamed FORM_* to WIN_PRN_DMPAPER*.
(old constants are still there for compatibility.
+ Added new WIN_PRN_DMPAPER* constants. (the list is far
from complete, but my first goal was to be about in sync
with hbhpdf)
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/generator/qt45.qtp
* contrib/hbqt/hbqt.h
* contrib/hbqt/hbqt_base.cpp
* contrib/hbqt/hbqt_garbage.h
* contrib/hbqt/hbqt_hbdbfmodel.cpp
* contrib/hbqt/hbqt_hbevents.cpp
* contrib/hbqt/hbqt_hbqmainwindow.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/hbqt_hbqtableview.cpp
* contrib/hbqt/hbqt_hbslots.cpp
+ contrib/hbqt/qth/HBQTextBlockUserData.qth
* contrib/hbqt/qth/QAbstractTextDocumentLayout.qth
* contrib/hbqt/qth/QApplication.qth
* contrib/hbqt/qth/QClipboard.qth
* contrib/hbqt/qth/QComboBox.qth
* contrib/hbqt/qth/QCursor.qth
* contrib/hbqt/qth/QDragEnterEvent.qth
* contrib/hbqt/qth/QDragLeaveEvent.qth
* contrib/hbqt/qth/QDropEvent.qth
* contrib/hbqt/qth/QFocusEvent.qth
* contrib/hbqt/qth/QGradient.qth
* contrib/hbqt/qth/QKeyEvent.qth
* contrib/hbqt/qth/QLabel.qth
* contrib/hbqt/qth/QLayoutItem.qth
* contrib/hbqt/qth/QLineEdit.qth
* contrib/hbqt/qth/QMoveEvent.qth
* contrib/hbqt/qth/QPaintDevice.qth
+ contrib/hbqt/qth/QPaintEngine.qth
* contrib/hbqt/qth/QPrintEngine.qth
* contrib/hbqt/qth/QResizeEvent.qth
* contrib/hbqt/qth/QSplitter.qth
* contrib/hbqt/qth/QStandardItemModel.qth
* contrib/hbqt/qth/QStyleHintReturn.qth
* contrib/hbqt/qth/QStyleHintReturnMask.qth
* contrib/hbqt/qth/QStyleHintReturnVariant.qth
* contrib/hbqt/qth/QTextBlock.qth
* contrib/hbqt/qth/QTextCursor.qth
+ contrib/hbqt/qth/QTextList.qth
* contrib/hbqt/qth/QWheelEvent.qth
* contrib/hbqt/qth/QWidget.qth
* contrib/hbqt/tests/demoqt.prg
* contrib/hbxbp/tests/demoxbp.prg
* contrib/hbxbp/xbpgeneric.prg
* contrib/hbxbp/xbpmenubar.prg
* contrib/hbqt/qtcore/*.cpp
* contrib/hbqt/qtgui/*.cpp
* contrib/hbqt/qtnetwork/*.cpp
! This commit change some rules to parse .qth files to
prepare the wrappers to be encapsulated in hb_retptrGC
envelop. It also attempts to pin-point the spots where
mem-leak could occur. Only very few calls are left to
plain hb_retptr() which eventually will be handled
the other way.
Only delete ( Q* ) p; is retained. Other two methods are
eliminated. Demos are updated to respect it.
demoQT and demoXBP now consume very less memory when new
dialogs are opened. It means memory management has
improved with this commit. Anyhow still I can see
memory growing specially in browser navigation. As I
remember sometime in past I could manage the sonstant memory,
but now I do not remember at what stage we were on Qt.
Though all the three variants, demoQT, demoXBP, hbIDE are
working properly, still there could be regression, please test.
* contrib/hbbtree/test/test.prg
* moved existing code into procedures in preparation for
introducing more robust testing; a work in progress
* contrib/hbbtree/test/test.hbp
* added switches to reduce memory footprint and standard gt
* harbour/contrib/hbwin/hbwin.ch
* harbour/contrib/hbwin/win_tprn.prg
* harbour/contrib/hbwin/win_prn1.c
+ added support for custom paper size - based on code borrowed from
xHarbour by Peter Rees and Budyanto Dj.
Unlike in xHarbour to use custom page size it's necessary to set
:FormType to FORM_CUSTOM
* contrib/hbct/Makefile
+ contrib/hbct/diskhb.prg
- contrib/hbct/diskhb.c
+ GETVOLINFO() rewritten in pure .prg code. It means it will
work on all OSes which we have core support for.
This currently means dos and win. OS/2 and other systems
still have this as TODO. Anyone to add them?
* contrib/hbct/files.c
- Deleted no longer necessary OS/2 and Windows specific headers.
* contrib/hbct/print.c
! Fixed PRINTSEND() to return permanent zero (instead of NIL)
on non-win/djgpp targets.
* contrib/hbct/ctnet.c
* contrib/hbct/disk.c
! Fixed all functions to be present in non-win builds and
return permanent error.
! NETDISK() fixed to not throw two RTEs in a rare case.
* harbour/contrib/hbwin/win_tprn.prg
* updated some comments
* harbour/contrib/hbwin/win_prn1.c
! replaced yet another constant value by DMORIENT_LANDSCAPE macro
* contrib/hbnetio/tests/netiotst.prg
! Fixed to REQUEST dir related functions to avoid RTE.
- contrib/hbnetio/tests/data
- Deleted. Now it's created by RPC call.
* contrib/hbwin/tests/testprn.prg
* Formatting.
* contrib/hbwin/win_prn1.c
! Using constants for dmOrientation.
* harbour/contrib/hbwin/win_tprn.prg
+ added automatic destructors to avoid resource leak
+ added support for late new page initialization by:
oWinPrn:newPage( .T. )
it allows to eliminate blank page when nothing is printed after
:newPage() method