* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
* tests/wvtext.prg
+ Massive GTWVT patch from Heinz V. Bergen. Thank you very much.
Details:
- fixed Alt-Enter for full screen, will no longer send the
K_ENTER to the Input queue.
- HB_K_RESIZE only sent if the Rows/Cols size actually changed.
- Clicking Maximize (top right corner) button, will maximize window
and change to Restore button, then clicking Restore button will
restore the window to its previous size.
- Dbl-clicking Title-Bar will maximize, then Dbl-Clicking Title
bar again will restore.
- Resizing window when in RESIZEMODE_FONT, will dynamically display
the resulting size changes in real time.
- All Maximize / Restore / Sizing works in RESIZEMODE_ROWS as would
be expected.
- Windows 7, dragging Window (Title-Bar) to top of screen will maximize,
then dragging maximized window's Title bar down will Restore
to previous size.
- Windows 7, dragging Window (Title-Bar) left or right until mouse
pointer hits the edge of the screen will size and dock to the left
or right half of the screen, then dragging title bar away from docked
position will restore the Window to its previous size.
- Windows 7, resizing top or bottom until edge of screen hit
(or dbl-clicking) will resize for maximum height. Then dragging
title bar away will restore to previous size.
- Before, depending on monitor's resolution, and when using
Courier New or Terminal font, maximizing would fail due to Font
metrics being incompatible with the Window's size or maybe due to
math issues, I was able to resolve by slightly adjusting the Font's
width or height down and then trying again until successful.
- Pressing Alt-Enter (when enabled) for full screen mode and then
pressing Alt-Enter again will restore Window to previous
non-maximized size.
- extended GT test app
; Please make test and report any experiences on devel list
* harbour/include/hbapifs.h
* harbour/src/rtl/filesys.c
% removed unnecessary PID setting in POSIX file lock function.
+ added new C function:
int hb_fsLockTest( HB_FHANDLE hFileHandle, HB_FOFFSET nStart,
HB_FOFFSET nLength, HB_USHORT uiMode );
It allows to test file range lock status.
It returns -1 on error, 0 when lock can be set and value greater
then 0 if part of given range is locked by other process. In POSIX
systems this value is PID of current lock owner. In other systems
it's always 1.
In uiMode only FLX_SHARED bit is significant.
* harbour/include/hbapifs.h
* harbour/src/rtl/filebuf.c
+ added new C function:
int hb_fileLockTest( PHB_FILE pFile, HB_FOFFSET nStart,
HB_FOFFSET nLen, int iType );
It's redirected to hb_fsLockTest()
* harbour/contrib/hbnetio/netio.h
* harbour/contrib/hbnetio/netiocli.c
* harbour/contrib/hbnetio/netiosrv.c
* harbour/contrib/hbmemio/memio.c
+ implemented hb_fileLockTest() low level code
* harbour/include/dbinfo.ch
+ added DBI_LOCKTEST
* harbour/src/rdd/dbf1.c
% small code simplification
+ implemented DBI_LOCKTEST
dbInfo( DBI_LOCKTEST [, <nRecNo> ] ) -> <nStatus>
returns corresponding results to C level hb_fsLockTest() function.
If current workarea is already locked then 0 is returned.
If low level FS is located on POSIX system (accessed directly or by
HBNETIO) then value greater then 0 is PID of current lock owner.
If the lock is hold by aliased area or other thread of calling
process then <nStatus> is current PID. In Other systems 1 is returned
when lock cannot be set in current workarea.
If <nRecNo> is given then the test is for RLOCK() otherwise FLOCK()
operation.
* contrib/hbide/ideactions.prg
* contrib/hbide/idemain.prg
+ Implemented: full list of codepages Harbour supports.
Earlier the list included only unique CPs at the back.
* contrib/hbide/idesaveload.prg
* contrib/hbide/idechangelog.prg
+ Fixed: "Changelog User" was sharing a similar looking
instance variable name.
* contrib/hbide/changelog.ui
* contrib/hbide/idechangelog.prg
* contrib/hbide/idesaveload.prg
+ Added: retaining the user name updating the changelogs.
First time it is asked as before, later it can be modified
in User: edit control at top-right of the dialog.
* contrib/hbide/idechangelog.prg
* Changed: behavior of "Current Log Entry" to scroll to last
after an element is added.
* contrib/hbide/ideactions.prg
* contrib/hbide/idemain.prg
* Changed: "Setup/CodePage" menu to display Harbour recognized
codepage name alsong its unique id.
Let me know if that makes the whole list of Harbour's
code pages.
* contrib/hbide/changelog.ui
* contrib/hbide/idechangelog.prg
* Changed: the way "Current Log Entry" is built. Now user can
edit the contents of built entry.
; NOTE: 1. Action tokens should be preserved as is when editing
built log entry.
2. If a new line be inserted in "Descriptions" start
it from the column 1, hbIDE will auto format when saving.
3. If indentation is needed in "Descriptions" then start
a new line at column 15 or higher only, just below where ": "
seperates action token.
* contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbide/idechangelog.prg
* Changed: token to represent "Changed" from "&" to "*"
confirming to universal standard for ChangeLogs.
- contrib/hbcurl/core_t1.c
- contrib/hbcurl/hbcurlt1.ch
- deleted half-done implementation of HB_CURLOPT_HTTPPOST.
I hope someone can finish it, it was a good initiative.
* ChangeLog
! remove changelog format examples from recent changelog
entry. they belong to some local standard, not Harbour's,
or general open source software.
* contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.cpp
* contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.h
* contrib/hbqt/qtgui/qth/HBQSyntaxHighlighter.qth
+ Implemented: new syntax highlighter for ChangeLog(s)( hbIDE defined ).
* contrib/hbide/changelog.ui
* contrib/hbide/idechangelog.prg
+ Implemented: managing interface to ChangeLog(s) with color highlightings.
An entry will be visible like ( everyline is pre-spaced to align this changelog ):
$<000008> 2011-06-05 07:53 Pritpal
# This is It
* AR/CU.PRG
! Fixed : The standard input method of gets.
IF GetActive() != NIL
GetActive():varPut( "This" )
ENDIF
+ Added : New fields.
Salary N 10 2
Code C 8 0
& Changed: Some redundant features.
$<000007> 2011-06-05 07:39 Pritpal
# This is It
* AR/CU.PRG
! Fixed : This
& Changed: That.
% Optimzd: Nothing.
+ Added : Something.
- Removed: Onething.
; Comment: Nowhere.
@ TODO : Everything.
| Moved : Nothing.
Entry number is auto incremented in entry header.
Entry header is followed by "Title" ( optional ).
Then the "Source(s)" followed by "Action(s)" accompanied by "Description(s)".
Every part is color highlighted.
Invoke with <Setup><Manage Changelog(s)> main menu option, create an empty
Changelog from <New> button at the top-right of presented dialog and play a little.
Waiting for your input as to what can be improved.
* contrib/hbide/idemisc.prg
! Minor.
* contrib/hbide/changelog.ui
+ One more button.
* contrib/hbide/idechangelog.prg
+ Advanced: now you can build a log in real-time.
It is scheduled to be polished a bit more.
* contrib/rddads/tests/datad.prg
! fixed 'field -> id' index expr which wasn't recognized by ADS
* contrib/rddads/tests/datad.prg
* contrib/rddads/tests/testmg.prg
! use hb_libpostfix()
* contrib/hbide/idemain.prg
! use hb_libpostfix() which fixes loading rddads on non-win
systems (untested, I can't wait for HBQT build to finish)
* contrib/hbide/idechangelog.prg
! Advanced: more refinements.
* contrib/hbxbp/xbpfiledialog.prg
! Fixed: XbpFileFialog() is made to open fast, was responding
extremely slow.
* src/vm/thread.c
* upped sleep timeout in *nix version of hb_threadReleaseCPU() to 20 ms
it halves CPU consumption. pls revert/comment if you notice
causing this any harm.
* contrib/hbide/changelog.ui
! Changed: QDialog() => QWidget().
* contrib/hbide/setup.ui
+ Added: more constants to control docking widgets appearance.
* contrib/hbide/idechangelog.prg
+ Advanced: few more additions. Last worked ChangeLog file is
saved for next run and is shown opened when activated.
TODO: compose a new syntax-highlighter.
* contrib/hbide/ideedit.prg
+ Added: "WITH" and "REPLACE" as Harbour keywords.
* contrib/hbide/ideplugins.prg
! Fixed: Possible return value bug.
* contrib/hbide/idesaveload.prg
+ Added: "REPLACE" as Harbour keyword.
* contrib/hbide/idemain.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idethemes.prg
+ Implemented: user-controlled dock-widgets tab-position and shape.
! Activated: last state of dock-widgets if visible or not for next run.
This facilitates that now user can arrange dock widgets
once-for-all and bring all in focus or push back if not
required.
* harbour/src/vm/thread.c
* set sleep timeout in *nix version of hb_threadReleaseCPU() to 10 ms
* harbour/src/compiler/hbpcode.c
! fixed typo which could cause compile time crash when debugger code
is generated (-b) and file name with extenssion has only one or
two characters
* harbour/include/hbcompdf.h
* harbour/src/compiler/hbmain.c
* harbour/src/compiler/hbstripl.c
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
! removed old code designed to optimize line numbers generated in PCODE.
It cannot work correctly and in some cases it was generating HB_P_LINE
pcodes in wrong places.
% enabled new code for HB_P_LINE PCODEs optimization also in debugger (-b)
compilation so it can be used to replaced the old one.
* contrib/hbwin/mapi.c
! fixed UNICODE conflict after recent LoadLibrary patch.
this file has forced UNICODE off due to MS idiocy so I had
to add more idiocy to interface with properly UNICODE setting
compliant local API
Note, I didn't test non-UNICODE build, if you're interested
in it, pls do it
* contrib/hbwin/tests/testmapi.prg
+ simpleio
* contrib/hbide/hbide.qrc
* contrib/hbide/resources/hideshow.png
+ Added: image for top-toolbar to activate show/hide of dock widgets.
* contrib/hbide/ideactions.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idesaveload.prg
+ Implemented: a single-click mechanism to hide or show all managed
dock widgets in all docking areas. This can be accomplished via
"Hide Show Docks" top-toolbar icon or <View> main menu option.
This implementation is extremely usable feature, requested by Massimo.
Just manage docks to the desired position and areas, activate this
option on/off and then see how useful it is. User gets more editing
area and also has the power to do additional tasks by bringing
back the last setup as and when required. The setup is remembered for
the next run even if docks are hidden at the time of previous close.
* contrib/hbide/setup.ui
+ Started: few more user-definable elements to manage docking
widgets to suit one's preferences.
* contrib/hbide/mainwindow.ui
* contrib/hbide/idedocks.prg
+ Enabled: more options for docking widgets.
Now docks can be placed tabifyied, horizonal to each other,
vertical to each other and/or tabified within its group.
Now user can arrange docks in any area with any combination.
TODO: control this behavior via <setup>, slots are already added.
* contrib/hbqt/qtgui/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.cpp
! Optimizations.
* contrib/hbide/findinfilesex.ui
* contrib/hbide/themesex.ui
! Changed: user interface. Now it is more appealing and slim.
* contrib/hbide/ideedit.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idethemes.prg
! Changed: to adopt above changes in user-interfaces.
* contrib/hbqt/qtgui/hbqt_hbqsyntaxhighlighter.cpp
! Fixed: wrong multi-line syntax highlighting in case
multi-line comment indicator "/*" is embedded in a string,
like __run("mdel a:/*.*"). Was a long standing bug in hbIDE.
* contrib/gtwvg/tests/wvgtbrowser.prg
! Reworked: scrollbars of TBrowse. Now these are WvgScrollbar()s
instead of WvtScrollbar()s. WvtScrollbar() are best suited
for WvtCrt() protocol not for WvgCrt() protocol. Now these
are smooth. This concept is pulled from my applications and
slightly adjusted for demowvg.
* examples/hbdoc2/gentxt.prg
* examples/hbdoc2/genxml.prg
* examples/hbdoc2/genhtml.prg
! removed extra dot before extension in filename references.
it also caused bad links in .html output. Reported by Claudia.
* contrib/gtwvg/tests/wvgtbrowser.prg
* contrib/gtwvg/tests/wvgutilities.prg
* contrib/gtwvg/wvgclass.prg
+ Implemented: scrollbars used along TbrowseWVG() in demowvg
as requested by Zoran.
* contrib/hbide/hbide.hbp
* contrib/hbide/hbide.qrc
* contrib/hbide/ideactions.prg
+ contrib/hbide/idechangelog.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideobject.prg
+ contrib/hbide/resources/memo.png
+ Added: <Setup><Manage ChangeLog(s)> option.
This is announced ChangeLog Manager which simply constructs
the changelog entry and inserts at the top of specified
ChangeLog file. It is a work-in-progress and this is a just
initial commit, but can faily understand what I mean.
* contrib/gtwvg/wvgpaint.prg
! Fixed: focus was not set to the window from where a modal
dialog was being initiated. Thanks Zoran Sibinovic for code example.