* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
* replaced depreciated in 5.15 methods for mouse wheel events processing
by modern ones
* replaced depreciated in 5.15 methods for accessing screen geometry by
modern ones
* contrib/gtqtc/gtqtc1.cpp
+ added support for TAB key processing when other widgets are shown and
TAB is use to switch focus
* src/rtl/alert.prg
* src/rtl/hbgtcore.c
+ added support for hb_Alert() parameters passed in hash array, i.e.
hb_Alert( { "TXT" => <cMessage>, ;
"BTN" => <aButtons>, ;
[ "TIM" => <nTimeOut> ] } ) => <nButton>
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
* include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_MSGBOX
It opens QMessageBox with given by user text and buttons, i.e.
hb_gtInfo( HB_GTI_MSGBOX, <cMessage>, <aButtons> ) => <nButton>
or:
hb_gtInfo( HB_GTI_MSGBOX, ;
{ "TXT" => <cMessage>, ;
"BTN" => <aButtons>, ;
[ "TIM" => <nTimeOut>, ] ;
[ "TIT" => <cTitle>, ] ;
[ "INF" => <cInfoText>, ] ;
[ "DTL" => <cDetailedText> ] } ) => <nButton>
+ added support for redirecting Alert() and hb_Alert() calls to QT GUI
QMessageBox(). This functionality can be enabled by:
hb_gtInfo( HB_GTI_MSGBOX, .t. )
and then
Alert( <cMessage>, <aButtons> )
is redirected to QT GUI QMessageBox().
* include/hbgtinfo.ch
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc.hbc
* contrib/gtqtc/gtqtc.hbp
* contrib/gtqtc/gtqtc1.cpp
+ added new hb_gtInfo() action: HB_QT_SOUND
It allows to play sound using the low level GUI library, i.e.
hb_gtInfo( HB_QT_SOUND, <cSoundFile> )
This modification needs additional QT5 library Qt5Multimedia so I decided
to enable it conditionally by HB_QT_SOUND=yes environment variable.
* contrib/hbmemio/memio.c
! fixed FO_TRUNC attribute in MEM: file IO - thanks to Miroslav Georgiev
for information about the problem
* include/hbgtinfo.ch
* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
+ added new hb_gtInfo() action HB_GTI_SYSMENUADD
It allows to add new items to window system menu which
selected add defined by user key code into keyboard queue, i.e.
hb_gtInfo( HB_GTI_SYSMENUADD, HB_K_MENU, "Settings" )
* In WinCE builds use DeleteMenu() + AppendMenu() instead of
missing ModifyMenu()
! pacified warning in non UNICODE builds
* *
* partial sync with the 3.4 fork codebase. These are the things
synces for the most part:
- copyright headers
- grammar/typos in comments and some readmes
- comment/whitespace/decorations
- variable scoping in C files
- DO CASE/SWITCH and some other alternate syntax usage
- minimal amount of human readable text in strings
- minor code updates
- HB_TRACE() void * casts for pointers and few other changes to
avoid C compiler warnings
- various other, minor code cleanups
- only Harbour/C code/headers were touched in src, utils, contrib,
include. No 3rd party code, no make files, and with just a few
exceptions, no 'tests' code was touched.
- certain components were not touched were 3.4 diverged too much
already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
- the goal was that no actual program logic should be altered by
these changes. Except some possible minor exceptions, any such
change is probably a bug in this patch.
It's a massive patch, if you find anything broken after it, please
open an Issue with the details. Build test was done on macOS.
The goal is make it easier to see what actual code/logic was changed
in 3.4 compared to 3.2 and to make patches easier to apply in both
ways.
* *
% remove brandings and homepage [1] from copyright header. Pass 1 - using script.
[1] nobody has access to it anymore AFAIK - and it's also just
a redirect since long
! update url in copyright header
; this should make the diff between 3.4 and 3.2 easier to manage
* include/hbgtinfo.ch
* removed unused HB_GTI_KBD_* macros
* redefined few other HB_GTI_KBD_* macros to be more HB_KF_* friendly.
[INCOMPATIBLE]
; Warning this modification is not binary compatible so if someone uses
HB_GTI_KBD_SCROLOCK, HB_GTI_KBD_NUMLOCK, HB_GTI_KBD_CAPSLOCK,
HB_GTI_KBD_LSHIFT, HB_GTI_KBD_RSHIFT,
HB_GTI_KBD_LCTRL, HB_GTI_KBD_RCTRL,
HB_GTI_KBD_LALT, HB_GTI_KBD_RALT,
HB_GTI_KBD_LWIN, HB_GTI_KBD_RWIN or
HB_GTI_KBD_MENU
then he should recompile his code with new hbgtinfo.ch header files.
* include/hbgtcore.h
* src/rtl/gtkeycod.c
* src/rtl/gtdos/gtdos.c
* src/rtl/gtos2/gtos2.c
* src/rtl/gtpca/gtpca.c
* src/rtl/gtstd/gtstd.c
+ added support for Harbour extended keycodes
* src/rtl/gtos2/gtos2.c
+ added support for HB_GTI_KBDSHIFTS
* src/rtl/gtdos/gtdos.c
! fixed CTRL+C and CTRL+BREAK handling in OpenWatcom builds
* src/rtl/inkeyapi.c
! fixed translation for CTRL + @
* tests/gtkeys.prg
+ added raw keyboard test - it disables any additional interactions
* modified Harbour output to show more information about extended
keycodes
* include/hbgtinfo.ch
+ added HB_GTI_MINIMIZED
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
+ added support for HB_GTI_MINIMIZED
* src/rtl/gtxwc/gtxwc.c
+ added support for HB_GTI_MINIMIZED and HB_GTI_MAXIMIZED
; All above modifications created by Rolf - thanks
* contrib/hbnetio/netiocli.c
* updated some RTEs to be a little bit more precise
* contrib/hbblat/hbblat.hbp
* disabled unconditional dynamic library build
* include/hbgtinfo.ch
+ added new hb_gtInfo() switch: HB_GTI_CLOSEMODE
It controls close event (i.e. ALT+F4 and/or [x] button in MS-Windows)
behavior:
== 0 - terminate application
>= 1 - generate HB_K_CLOSE
== 2 - disable close button
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
% optimized setWindowFlags() and setWindowState() to not
execute show() when flags/state are not changed.
+ added support for HB_GTI_CLOSEMODE
* changed HB_GTI_CLOSABLE to work line in GTXWC and GTWVT
* src/rtl/gtxwc/gtxwc.c
! fixed setting window position by HB_GTI_SETPOS_XY
+ added support for HB_GTI_CLOSEMODE
; note: in GTXWC we cannot easy disable close button so
HB_GTI_CLOSEMODE==2 will work like 1 until we
do not find some portable way to inform WM that
is should hide close button
* src/rtl/gtwin/gtwin.c
* added type checking in few HB_GTI_* settings
+ added support for HB_GTI_CLOSEMODE
; note: in GTWIN we cannot catch close event so
HB_GTI_CLOSEMODE==1 works like 2
In this GT HB_GTI_CLOSABLE also has to work like
HB_GTI_CLOSEMODE==2
* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
* added range checking in HB_GTI_RESIZEMODE setting
+ added support for HB_GTI_CLOSEMODE
* contrib/gtqtc/gtqtc.hbp
* do not use system QT directories in android builds
* include/hbgtinfo.ch
* contrib/gtqtc/gtqtc1.cpp
+ added new font attributte HB_GTI_FONTA_NOSTRETCH
It disables font stretching in some GTs like QTC.
On some platforms (i.e. MacOSX) font stretching
does not work correctly (at least in my tests) so
if someone wants to use GTQTC on MACs then I suggest
to set:
hb_gtInfo( HB_GTI_FONTATTRIBUTE, ;
hb_bitOr( HB_GTI_FONTATTRIBUTE ), HB_GTI_FONTA_NOSTRETCH )
! do not use QPainter::RasterOp_SourceXorDestination to display
cursor and selection in MacOSX builds.
RasterOp operations are not supported in MacOSX.
* include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_RESIZESTEP
It enables/disables window resize progression.
* contrib/gtqtc/gtqtc.h
* contrib/gtqtc/gtqtc1.cpp
+ added optional code to enable XLib MT mode by XInitThreads()
+ added support for HB_GTI_RESIZESTEP and disabled window resize
progression in default settings - with some XWindow managers
it may cause bad side effects.
* do not center window in SETMODE() if console window dimensions
(rows and cols) are not changed.
* contrib/hbhpdf/3rd/libhpdf/hpdfimac.c
* modified isAligned() to not generate warnings on platforms were
'unsigned long' is not large enough to hold pointer (Win64).
It should pacify warnings reported by Maurizio.
* contrib/hbhpdf/3rd/libhpdf/libhpdf.dif
* rediffed with:
hbmk2 ../../../../bin/3rdpatch.hb -rediff
* include/hbgtinfo.ch
+ added HB_GTI_REDRAWMAX
It sets maximum number of unchanged neighboring chars in redrawn
line. It may help to optimize screen updates in some GTs.
* include/hbgtcore.h
* src/rtl/hbgtcore.c
* contrib/hbct/ctwin.c
+ respect HB_GTI_REDRAWMAX in default REDRAWDIFF() GT methods.
* contrib/gtqtc/gtqtc1.cpp
! added protection against font resizing for degenerated console
window size.
% set HB_GTI_REDRAWMAX to 1
* src/rtl/gtwvt/gtwvt.c
! translate screen base mouse wheel cords to window based ones.
% set HB_GTI_REDRAWMAX to 1
* src/rtl/gttrm/gttrm.c
% set HB_GTI_REDRAWMAX to 8
* src/rtl/gtwin/gtwin.c
% set HB_GTI_REDRAWMAX to 4
* include/hbapi.h
* include/hbapigt.h
* include/hbvm.h
* src/rtl/inkeyapi.c
* src/vm/cmdarg.c
* src/vm/hvm.c
* replaced hb_cmdargProcessVM() with hb_cmdargProcess() and removed
unused for long time custom user cancel key functionality.
- removed dummy hb_inkeySetCancelKeys() C function.
- removed not used for long time HVM C functions and macros:
hb_vmFlagEnabled(), hb_vmFlagSet(), hb_vmFlagClear(),
HB_VMFLAG_HARBOUR, HB_VMFLAG_ARRSTR
* include/hbgtinfo.ch
+ added new HB_GTI_* actions:
HB_GTI_WINHANDLE - Get console window low level handle
HB_GTI_MOUSEPOS_XY - Get mouse position in pixels
HB_GTI_DISPIMAGE - Display image with given name
* include/hbapigt.h
* src/rtl/inkeyapi.c
+ added new C function: int hb_inkeyKeyMod( int iKey )
+ added code for translation from extended key codes to
standard Clipper ones
* include/harbour.hbx
* src/rtl/inkey.c
+ added new PRG function hb_keyMod( <nExtKey> ) -> <nModifiers>
It extract keyboard modifiers (HB_KF_*) from extended key code.
* include/hbgtcore.h
* src/rtl/hbgtcore.c
+ added new macros for generating extended key codes with keyboard
modifiers for ASCII and UNICODE characters
% strip repeated extended key codes for mouse move
! use standard key codes in extended ALERT() GT method
* include/inkey.ch
+ added key modifiers/flags for extended key codes: HB_KF_*
+ added extended key codes: HB_KX_*
- removed unused HB_K_MULTICODE macro
* src/rtl/gttrm/gttrm.c
* replaced old keyboard and mouse code with new one using
extended key codes for keyboard and mouse
+ added support for keyboard modifiers in GPM events
+ added support for keyboard modifiers in terminal mouse events
* src/rtl/gtwvt/gtwvt.h
* src/rtl/gtwvt/gtwvt.c
! invert selection region in WinCE builds
! fixed selection in fullscreen or maximized modes with margins
* do not add EOL to one line selections
+ added support for painting box drawing characters.
This mode can be enabled by:
hb_gtInfo( HB_GTI_FONTATTRIBUTE, HB_GTI_FONTA_DRAWBOX )
and it causes that GTWVT draws all box characters as pixmap
regardles of used font.
So far this functionality existed only in GTXWC.
+ added support for HB_GTI_FONTA_FIXMETRIC and HB_GTI_FONTA_CLRBKG
So far this functionality existed only in GTXWC.
+ added support for HB_GTI_WINHANDLE
! do not add EOL at the end of one line selection
* src/rtl/gtxwc/gtxwc.h
* src/rtl/gtxwc/gtxwc.c
* replaced old keyboard and mouse code with new one using
extended key codes for keyboard and mouse
* renamed HB_GTXWC_* box drawing macros to HB_BOXCH_* ones
* do not add EOL to one line selections
! fixed few keypad keycodes
* use cursor blinking rate HB_GTI_CURSORBLINKRATE for whole
show/hide period not only half of them. If someone use this
GTI action in his code then now he should double passed
value. [incompatible]
! fixed return value for HB_GTI_SETPOS_ROWCOL
* few minor cleanups
* tests/gtkeys.prg
* replaced old keyboard and mouse code with new one using
extended key codes for keyboard and mouse
+ added description for some key codes
+ added some initial HB_GTI_* actions
+ change cursor size by K_INS
+ display terminal size after HB_K_RESIZE
+ display mouse position after mouse key codes
! display all characters created by hb_keyChar()
! fixed formatting
* src/rdd/dbf1.c
* added more general protection against GPF in not fully
initialized workarea
* (all files)
* stripped svn header
* minor cleanups
; use following command to find out the history of files:
git log
git log --follow
git blame
git annotate