diff --git a/ChangeLog.txt b/ChangeLog.txt index 43bc9a0c48..f038a74239 100644 --- a/ChangeLog.txt +++ b/ChangeLog.txt @@ -10,6 +10,12 @@ * Change, ! Fix, % Optimization, + Addition, - Removal, ; Comment */ +2013-06-19 14:31 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) + * include/hbapigt.h + * include/hbgtcore.h + * moved macros to manipulate Harbour extended key codes from + hbgtcore.h to hbapigt.h + 2013-06-17 17:02 UTC+0200 Przemyslaw Czerpak (druzus/at/poczta.onet.pl) * include/hbgtinfo.ch + added new hb_gtInfo() action: HB_GTI_RESIZESTEP diff --git a/include/hbapigt.h b/include/hbapigt.h index 6f9dc21551..b4ea2a951d 100644 --- a/include/hbapigt.h +++ b/include/hbapigt.h @@ -317,6 +317,51 @@ extern HB_EXPORT int hb_inkeyKeyStd( int iKey ); /* convert Harbour e extern HB_EXPORT int hb_inkeyKeyMod( int iKey ); /* extract keyboard modifiers HB_KF_* from Harbour extended key code */ extern HB_EXPORT int hb_inkeyKeyVal( int iKey ); /* extract key/character code from Harbour extended key code */ +/* macros to manipulate Harbour extended key codes */ +#define HB_INKEY_EXT_MASK 0xF8000000 +#define HB_INKEY_EXT_BIT 0x40000000 +#define HB_INKEY_EXT_TYPEMASK 0xFF000000 +#define HB_INKEY_EXT_VALBITS 16 +#define HB_INKEY_EXT_VALMASK ( ( 1 << HB_INKEY_EXT_VALBITS ) - 1 ) +#define HB_INKEY_EXT_FLAGMASK ( 0xFF << HB_INKEY_EXT_VALBITS ) +#define HB_INKEY_EXT_KEY 0x01000000 +#define HB_INKEY_EXT_CHAR 0x02000000 +#define HB_INKEY_EXT_UNICODE 0x03000000 +#define HB_INKEY_EXT_MOUSEKEY 0x04000000 +#define HB_INKEY_EXT_MOUSEPOS 0x05000000 +#define HB_INKEY_EXT_EVENT 0x06000000 +#define HB_INKEY_EXT_POSBITS 12 +#define HB_INKEY_EXT_POSMASK ( ( 1 << HB_INKEY_EXT_POSBITS ) - 1 ) + +#define HB_INKEY_ISEXT( n ) ( ( ( n ) & HB_INKEY_EXT_MASK ) == HB_INKEY_EXT_BIT ) +#define HB_INKEY_TYPE( n ) ( ( ( n ) ^ HB_INKEY_EXT_BIT ) & HB_INKEY_EXT_TYPEMASK ) +#define HB_INKEY_ISKEY( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_KEY ) +#define HB_INKEY_ISCHAR( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_CHAR ) +#define HB_INKEY_ISUNICODE( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_UNICODE ) +#define HB_INKEY_ISMOUSEKEY( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_MOUSEKEY ) +#define HB_INKEY_ISMOUSEPOS( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_MOUSEPOS ) +#define HB_INKEY_ISEVENT( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_EVENT ) + +#define HB_INKEY_NEW_VALF( v, f ) ( ( ( v ) & HB_INKEY_EXT_VALMASK ) | \ + ( ( ( f ) << HB_INKEY_EXT_VALBITS ) & HB_INKEY_EXT_FLAGMASK ) ) + +#define HB_INKEY_NEW_MKEY( k, f ) ( HB_INKEY_NEW_VALF( k, f ) | HB_INKEY_EXT_BIT | HB_INKEY_EXT_MOUSEKEY ) +#define HB_INKEY_NEW_KEY( k, f ) ( HB_INKEY_NEW_VALF( k, f ) | HB_INKEY_EXT_BIT | HB_INKEY_EXT_KEY ) +#define HB_INKEY_NEW_CHAR( b ) ( ( b ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_CHAR ) ) +#define HB_INKEY_NEW_CHARF( b, f ) ( HB_INKEY_NEW_VALF( b, f ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_CHAR ) ) +#define HB_INKEY_NEW_UNICODE( b ) ( ( b ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_UNICODE ) ) +#define HB_INKEY_NEW_UNICODEF( b, f ) ( HB_INKEY_NEW_VALF( b, f ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_UNICODE ) ) + +#define HB_INKEY_NEW_MPOS( x, y ) ( ( ( ( y ) & HB_INKEY_EXT_POSMASK ) << HB_INKEY_EXT_POSBITS ) | \ + ( ( x ) & HB_INKEY_EXT_POSMASK ) | \ + ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_MOUSEPOS ) ) + +#define HB_INKEY_MOUSEPOSX( n ) ( ( n ) & HB_INKEY_EXT_POSMASK ) +#define HB_INKEY_MOUSEPOSY( n ) ( ( ( n ) >> HB_INKEY_EXT_POSBITS ) & HB_INKEY_EXT_POSMASK ) + +#define HB_INKEY_VALUE( n ) ( ( n ) & HB_INKEY_EXT_VALMASK ) +#define HB_INKEY_FLAGS( n ) ( ( ( n ) & HB_INKEY_EXT_FLAGMASK ) >> HB_INKEY_EXT_VALBITS ) + HB_EXTERN_END #endif /* HB_APIGT_H_ */ diff --git a/include/hbgtcore.h b/include/hbgtcore.h index 1509081d8c..ed930d85c4 100644 --- a/include/hbgtcore.h +++ b/include/hbgtcore.h @@ -642,52 +642,6 @@ extern HB_EXPORT void hb_gt_winapi_tone( double dFrequency, double dDuration extern int hb_gt_dos_keyCodeTranslate( int iKey ); #endif /* HB_OS_DOS || HB_OS_WIN || HB_OS_OS2 */ -/* macros to manipulate Harbour extended key codes */ -#define HB_INKEY_EXT_MASK 0xF8000000 -#define HB_INKEY_EXT_BIT 0x40000000 -#define HB_INKEY_EXT_TYPEMASK 0xFF000000 -#define HB_INKEY_EXT_VALBITS 16 -#define HB_INKEY_EXT_VALMASK ( ( 1 << HB_INKEY_EXT_VALBITS ) - 1 ) -#define HB_INKEY_EXT_FLAGMASK ( 0xFF << HB_INKEY_EXT_VALBITS ) -#define HB_INKEY_EXT_KEY 0x01000000 -#define HB_INKEY_EXT_CHAR 0x02000000 -#define HB_INKEY_EXT_UNICODE 0x03000000 -#define HB_INKEY_EXT_MOUSEKEY 0x04000000 -#define HB_INKEY_EXT_MOUSEPOS 0x05000000 -#define HB_INKEY_EXT_EVENT 0x06000000 -#define HB_INKEY_EXT_POSBITS 12 -#define HB_INKEY_EXT_POSMASK ( ( 1 << HB_INKEY_EXT_POSBITS ) - 1 ) - -#define HB_INKEY_ISEXT( n ) ( ( ( n ) & HB_INKEY_EXT_MASK ) == HB_INKEY_EXT_BIT ) -#define HB_INKEY_TYPE( n ) ( ( ( n ) ^ HB_INKEY_EXT_BIT ) & HB_INKEY_EXT_TYPEMASK ) -#define HB_INKEY_ISKEY( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_KEY ) -#define HB_INKEY_ISCHAR( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_CHAR ) -#define HB_INKEY_ISUNICODE( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_UNICODE ) -#define HB_INKEY_ISMOUSEKEY( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_MOUSEKEY ) -#define HB_INKEY_ISMOUSEPOS( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_MOUSEPOS ) -#define HB_INKEY_ISEVENT( n ) ( HB_INKEY_TYPE( n ) == HB_INKEY_EXT_EVENT ) - -#define HB_INKEY_NEW_VALF( v, f ) ( ( ( v ) & HB_INKEY_EXT_VALMASK ) | \ - ( ( ( f ) << HB_INKEY_EXT_VALBITS ) & HB_INKEY_EXT_FLAGMASK ) ) - -#define HB_INKEY_NEW_MKEY( k, f ) ( HB_INKEY_NEW_VALF( k, f ) | HB_INKEY_EXT_BIT | HB_INKEY_EXT_MOUSEKEY ) -#define HB_INKEY_NEW_KEY( k, f ) ( HB_INKEY_NEW_VALF( k, f ) | HB_INKEY_EXT_BIT | HB_INKEY_EXT_KEY ) -#define HB_INKEY_NEW_CHAR( b ) ( ( b ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_CHAR ) ) -#define HB_INKEY_NEW_CHARF( b, f ) ( HB_INKEY_NEW_VALF( b, f ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_CHAR ) ) -#define HB_INKEY_NEW_UNICODE( b ) ( ( b ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_UNICODE ) ) -#define HB_INKEY_NEW_UNICODEF( b, f ) ( HB_INKEY_NEW_VALF( b, f ) | ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_UNICODE ) ) - -#define HB_INKEY_NEW_MPOS( x, y ) ( ( ( ( y ) & HB_INKEY_EXT_POSMASK ) << HB_INKEY_EXT_POSBITS ) | \ - ( ( x ) & HB_INKEY_EXT_POSMASK ) | \ - ( HB_INKEY_EXT_BIT | HB_INKEY_EXT_MOUSEPOS ) ) - -#define HB_INKEY_MOUSEPOSX( n ) ( ( n ) & HB_INKEY_EXT_POSMASK ) -#define HB_INKEY_MOUSEPOSY( n ) ( ( ( n ) >> HB_INKEY_EXT_POSBITS ) & HB_INKEY_EXT_POSMASK ) - -#define HB_INKEY_VALUE( n ) ( ( n ) & HB_INKEY_EXT_VALMASK ) -#define HB_INKEY_FLAGS( n ) ( ( ( n ) & HB_INKEY_EXT_FLAGMASK ) >> HB_INKEY_EXT_VALBITS ) - - HB_EXTERN_END #endif /* HB_GTCORE_H_ */