* harbour/source/rtl/gtwvt/gtwvt.c
* disabled SetWindowLongPtr() in 32bit MSVC WinCE builds
* harbour/source/rtl/hbffind.c
* minor cleanup.
* harbour/source/rtl/filesys.c
+ implemented hb_fsGetAttr() and hb_fsGetFileTime() for DOS, MS-Win,
OS2 and *nixes. Please test it on different platforms.
* harbour/source/rtl/gtwvt/gtwvt.h
* added some definitions which seems to be missing in some MSVC-WinCE
versions
* harbour/source/rtl/gtwvt/gtwvt.c
* cleaned SetWindowLongPtr()/SetWindowLong() usage so now all calls
are protected by the same #if condition
* source/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
! Restored previous change.
In Harbour, passing NULL to hb_itemPutC() is valid and
will result in an empty string being stored in an optimized way.
hb_itemPutCLPtr() should be used instead of hb_itemPutCPtr().
The GPF in question used to happen when setting the clipboard,
and it looks to happen inside the OS. I'm still investigating.
* contrib/hbapollo/tests/bld_b32.bat
* contrib/hbapollo/tests/bld_vc.bat
! Fixed external .lib name.
* contrib/gtwvg/gtwvg.c
* source/rtl/gtwvt/gtwvt.c
! Changed the wat EXIT procedure works.
; The change is provided by Ron Pinkas so I have implemented as is.
Before also I was not finding any problems on Harbour but
appln was GPFing on Exit with GTWVG.
; TOCHECK: Viktor see if it resolves the EXIT problem you are reporting
* contrib/hbziparch/hbzipcom.cpp
* contrib/hbziparch/hbzipnew.cpp
! Two lines commented by mistake now reenabled.
Thanks Miguel.
* source/rtl/gtwvt/gtwvt.c
* Minor naming, formatting.
* harbour/contrib/xhb/Makefile
* harbour/contrib/xhb/common.mak
- harbour/contrib/xhb/hbchksum.c
* removed HB_CHECKSUM() code - it's not necessary
* harbour/contrib/xhb/xhbfunc.c
+ redirected HB_CHECKSUM() to HB_ADLER32()
* harbour/source/rtl/gtwvt/gtwvt.c
! fixed WINCE builds. It was only for MiGWCE which partially emulates
GetSystemMenu() but probably other builds will report that this
function is missing.
If possible please test if current Harbour application can be
executed in real WinCE environment.
* harbour/make_deb.sh
* updated contrib library list
* harbour/contrib/hbmysql/mysql.c
! fixed compilation for older MYSQL versions
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/gtwvg/wvgutils.c
! fixed UNICODE builds
+ harbour/config/none.cf
+ added dummy header file for GNU make to avoid errors on unsupported
platforms
* harbour/contrib/hbw32ddr/Makefile
* harbour/contrib/hbmysql/Makefile
* harbour/contrib/hbodbc/Makefile
* harbour/contrib/hbwhat32/Makefile
* harbour/contrib/hbtpathy/Makefile
* harbour/contrib/hbw32/Makefile
* harbour/contrib/hbole/Makefile
* harbour/contrib/hbapollo/Makefile
* harbour/contrib/hbfbird/Makefile
* harbour/contrib/hbziparch/Makefile
* harbour/contrib/hbcurl/Makefile
* harbour/contrib/hbhpdf/Makefile
* harbour/contrib/rddado/Makefile
* harbour/contrib/gtwvg/Makefile
* harbour/contrib/hbpgsql/Makefile
* harbour/contrib/rddads/Makefile
* harbour/contrib/hbfimage/Makefile
* harbour/contrib/hbgd/Makefile
* harbour/contrib/hbgf/hbgfw32/Makefile
* harbour/contrib/hbgf/hbgfos2/Makefile
* harbour/contrib/hbgf/hbgfgtk/Makefile
* harbour/contrib/hbtip/Makefile
* harbour/contrib/hbbmcdx/Makefile
* updated to not generate errors for unsupported builds
* source/common/hbver.c
* Changed version information layout:
"Harbour a build x.y-z" -> "Harbour x.y.za" format.
* contrib/gtwvg/gtwvg.c
! Fixed compile error. (commented line, please check this code)
[ pGT->iLocalGTHandle = pWVT->iHandle; ]
* contrib/gtwvg/wvtutils.c
* contrib/gtwvg/wvtcore.c
* contrib/gtwvg/wvtpaint.prg
* contrib/gtwvg/wvtclass.prg
% hb_arraySet( ..., hb_itemPut*() ) -> hb_arraySet*( ... )
* if() -> iif()
* != on strings to IS*() macros.
; TODO: I'd suggest to change "WVT" references to "WVG"
to avoid confusion with core WVT. At least in those places
which wouldn't break compatibility (like source names).
If there is no objection I can do it.
* source/rtl/gtwvt/gtwvt.c
* Minor cleanup.
* source/rtl/gtwvt/gtwvt.c
* Slightly changed the way CLOSE button works.
Now the close button, if enabled, will always
force a shutdown. So this setting is made independent
of SetCancel(). I choose this because there might
be cases when we need to use <Alt+C> in app code, yet
we want to allow closing the window. Previously it was
also easy to create confusing scenarios by using various
combinations of HB_GTI_CLOSABLE + SetCancel(). Another
kind of fix - without the advantage above - would be
to fully sync SetCancel() with HB_GTI_CLOSABLE.
* contrib/hbtpathy/tplinux.c
! Fixed embedded comments in Linux code.
* contrib/hbziparch/hbziparc.h
! Fixed header casing.
* source/rtl/gtwvt/gtwvt.c
- Removed HB_NOSTARTUPWINDOW link time GTWVT window
hiding option.
; For the same effect, but with the advantage that the
screen output won't slow the application at all, and
that behaviour is controllable from the command line
and/or at link time, please use gtgui.lib.
With GTGUI the application window is neither created
nor updated, while GTWVT will create the window,
update the window, but it will be fully invisible with
no way to unhide. Clipboard and sound generation works
in both cases.
For 100% similar end-user experience as the old hack:
- link gtgui.lib
- replace ANNOUNCE HB_NOSTARTUPWINDOW with
ANNOUNCE HB_GT_GUI_DEFAULT
- add REQUEST HB_GT_GUI
to your application.
* contrib/hbwhat32/whatutil.prg
* contrib/hbwhat32/wincomm.prg
* contrib/hbwhat32/wincore.prg
* contrib/hbwhat32/windebug.prg
* contrib/hbwhat32/winerror.prg
* contrib/hbwhat32/winini.prg
* contrib/hbwhat32/winrbar.prg
* contrib/hbwhat32/wintabs.prg
* contrib/hbwhat32/wintbar.prg
* Some .prg level code cleanup. (= operators,
if(), <> -> !=). No actual problem found.
* source/rtl/gtwvt/gtwvt.c
+ Refreshing whole screen after palette change.
This replaces the previous method which had some
side effects.
* source/vm/fm.c
* source/vm/extrap.c
* Changed "Harbour" to "Application" in user visible
screen/log messages.
* contrib/hbwhat32/_winfont.c
! Fixed typo in previous commit.
* source/rtl/gtwvt/gtwvt.c
! Removed PutChar override. This was added along the
palette support, but I'm afraid we'll need to find
an alternative solution, as this change caused an
huge amount flickering on every screen update,
essentially nilling all screen change buffering
efforts.
; TOFIX: Solve realtime palette change in an
alternative way.
* source/rtl/gtwvt/gtwvt.c
+ Now showing the application's executable name
in the window title on startup, instead of "Harbour WVT".
* Window class name handling and control flow cleaned.
[TOMERGE RC1]
* source/rtl/gtclip.c
! Fixed get/set clipboard when UNICODE is #defined.
(WinCE mostly).
! Fixed get/set clipboard when format is CF_UNICODETEXT.
(untested, please someone review me)
! Fixed get clipboard when CF_TEXT/CF_OEMTEXT format
is used, so that an additionaly zero byte won't be
appended anymore to the returned string.
[TOMERGE RC1 if correct]
* source/rtl/gtwvt/gtwvt.c
* "HARBOUR_WVT" -> "Harbour WVT". This text is visible,
so it's better to make it "desktop friendlier"".
[TOMERGE RC1]
* include/set.ch
* include/hbset.h
* source/rtl/set.c
* source/vm/fm.c
* source/vm/extrap.c
+ Added: Set( _SET_HBOUTLOG[, <cFileName>] ) -> <cOldFileName>
Default value: "hb_out.log"
This replaces hb_fm.log and hb_ex.log, and makes it possible
for the applications to control the filename where these
internal Harbour outputs are written to.
* source/rtl/gtwvt/gtwvt.c
% Minor redundancy removed.
* source/rtl/gtwvt/gtwvt.c
! Fixed window trashing for tall/wide windows where the
content cannot fill the entire window client area.
; There is still a great amount of flickering, while doing
the resize. I wonder if there is any solution for this
besides turning off full-content drag/resize. Anyways
it's only really bad when trying insane sizes, so it's
not a big problem for normal usage.
* source/rtl/gtwvt/gtwvt.c
% Minor optimization in new screen marking code.
* contrib/hbmisc/strfmt.c
* Cleanup, optimization, some internal limits removed.
* contrib/hbmisc/spd.c
* Former _SPD() function renamed to SQL_SPRINTF()
* harbour/source/rtl/gtwvt/gtwvt.c
! Completely removed flickering under Mark and Copy operation
without lengthy calculations. Forwarded by Andy Wos - thanks.
; Viktor, now first row and column are being selected.
When right < left only then first column is not accessible
but it is very rare in practical application.
* source/rtl/gtwvt/gtwvt.c
! Fixed remaining Mark&Copy trashing while doing the selection.
* I've undone fix (2008-06-09 14:48 UTC+0800) for non-selectable
maxrow/maxcol, since after the fix the _first_ row/col couldn't
be selected.
TOFIX: Reopened.
* include/hbgtinfo.ch
* source/rtl/gtwvt/gtwvt.c
! Fixed stupid typo from me. This is why maximized size
didn't want to get right.
! Fixed to not reposition non-maximized windows while
resizing them and their top/left corner was off screen.
! Fixed to not allow font screen below a certain limit
(3x4 pixels). This fixes some of the more obvious cases
when window gets trashed.
! Fixed to not resize the windows when toggling the
resizing feature using HB_GTI_RESIZABLE.
+ Added to disable maximize icon after maximizing and
reenable it on the first resize attempt.
- Removed TIMER related stuff as it's very difficult
(or impossible) to support on other platforms.
Timer support could be added to hbw32.lib, though.
* Some cleanups.
; Remaining TOFIXes:
- Window trashing when settling on a size which
cannot be properly filled with the console. Try with
vertically or horizontally narrow window shapes.
- Mark&Copy is still trashing when swapping directions
with the selection compared to the starting position.
* tests/wvtext.prg
! Added missing SVN keywords properties.
! Added missing SVN eol property.
! Fixed to use the default font to have a more common
ground for testing.
+ Added markers to the corners to easily spot chopped
borders.
* contrib/xhb/Makefile
* contrib/xhb/common.mak
- Removed some xhb specific non-standard headers from
the list of those getting installed to the Harbour central
include dir. Only hbcompat.ch, hbcompat.h and xhb.ch
goes now to the official include dir. After this change
has been merged with RC1, xhb.lib may be included in
the default build.
[TOMERGE RC1]
* contrib/hbw32/tests/testdll.prg
+ Added some more DLL calling samples.
* harbour/contrib/hbw32/dllcall.c
* added casting of wOrdinal to HB_PTR_DIFF to avoid waring
* disabled asm code for WIN64 builds
* disabled asm code for WINCE builds
* disabled some code which breaks WINCE builds
; TODO: add support for WINCE/ARM and WIN64
* harbour/source/rtl/gtwvt/gtwvt.c
! always use literal strings inside TEXT() macro for UNICODE builds
* harbour/source/rtl/gtwvt/gtwvt.c
! Fixed maximized state. Borders were missing.
- Removed functionality to force Windows not to show Windows contents while resizing.
; Instead application can issue :
To switch off full drag
DllCall( "user32.dll", NIL, "SystemParametersInfo", 37, 0, 0, 0 )
To switch on full drag
DllCall( "user32.dll", NIL, "SystemParametersInfo", 37, 1, 0, 0 )
! Fixed non-refreshed client area under certain circumstances.
* Removed all the hacks to adjust borders.
* Adjusted maximize operation - now window is centered on the screen.
; TODO - Find a better solution to
enabling and disabling of resizing feature at run time.
* harbour/source/rtl/gtwvt/gtwvt.c
! Fixed maximized state. Borders were missing.
+ Added functionality to force Windows not to show Windows contents while
resizing. This can be set manually via
<Desktop><Right-Click><Properties><Appearance><Effects><Show windows contents while dragging>
; To review: If this behavior be controlled via HB_GTI_SHOWRESIZING or like.
* harbour/tests/wvtext.prg
* Minor changes.
* harbour/source/common/hbwince.c
+ added GetDriveTypeA() wrapper for WinCE builds
* harbour/source/rtl/gtwvt/gtwvt.c
! changed wrongly used NULL to 0
* harbour/source/rtl/gtwvt/gtwvt.c
* changed LoadLibrary() to LoadLibraryA() for UNICODE builds
still some other code have to be updated for UNICODE builds.
* source/rtl/gtwvt/gtwvt.c
! Fixed windows size after maximize.
* Temporary restored "instant resize" on mouse move.
+ contrib/hbw32/dllcall.c
* contrib/hbw32/common.mak
* contrib/hbw32/Makefile
+ Added DLL interface. From xhb. Work of several authors.
; I've applied some modifications made by Alex Strickland.
; The API calls below are implemented:
XBase++ compatible:
- DLLLoad()
- DLLUnload()
- DLLPrepareCall()
- DLLExecuteCall()
- DLLCall()
Proprietary:
- LoadLibrary() - Same as DLLLoad()
- FreeLibrary() - Same as DLLUnload()
- GetProcAddress()
- CallDLL()
- CallDLLBool()
- GetLastError()
- SetLastError()
! Fixed GetProcAddress() passed ordinals to always be
WORDs casted to DWORD.
! Fixed a few possible buffer overruns.
* Cleanup, format, etc.
; Compile with HB_NO_ASM if you use BCC55 and don't have
TASM32 (or upgrade to free BCC58 which contains TASM32).
; "C struct" support was stripped (but that seems only a
small portion.
; Please test. I doesn't work me for simple test code,
I have no idea why.
; TOFIX: Replace MessageBox() calls with RTEs.
; TOFIX: Solve any name clashing problems and/or use namespace
for the proprietary interface.
* include/hbapierr.h
+ HB_ERR_FUNCNAME() added to replace &hb_errFuncName
* source/rtl/gtwvt/gtwvt.c
! Fixed most cases of trashing whilst marking.
Maybe there is a simpler way of doing this...
! Readded "HB_NOSTARTUPWINDOW" feature deleted by mistake.
; TOFIX: Some trashing is still visible if switching
directions relative to the starting corner.
; TOFIX: It doesn't seem to be possible to select
the last row and the last column. Pritpal,
could you take a look at it?
* tests/wvtext.prg
* include/hbgtinfo.ch
* include/hbgtcore.h
* source/rtl/hbgtcore.c
* source/rtl/gtwvt/gtwvt.c
* Changed the way notifications work. It's now platform
neutral and more simple.
hb_gtInfo( HB_GTI_NOTIFIERBLOCK, {|nEvent, ...| myhandler( nEvent, mycustomdata, ... ) })
may be used to set it. Use NIL to disable it. The purpose of
this is to be able to get notifications from GT related
user interactions not initiated inside the apps UI world.
F.e. to save screen size after the user has changed it,
or to have a last chance to commit tables, set flags, etc
when user (or OS) closed the app window.
+ Added basic support to handle return values from notifier.
! Added missing SVN header to wvtext.prg
; TOFIX: New TIMER stuff in GTWVT should be replace by
a platform neutral solution, which is probably MT.
(see also "background events")
; TOFIX: Is there a way to force "non-full content" resize
on the window level? This way we could avoid
current trashing while resizing.