2007-06-23 15:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtcore.h
* harbour/source/rtl/gtchrmap.c
* harbour/source/rtl/gtcrs/gtcrs.c
* harbour/source/rtl/gttrm/gttrm.c
+ added 3-rd parameter BOOL fSetACSC to hb_gt_chrmapinit() function
* initialize ACSC translation for XTERM like terminals when
hb_charmap.def file cannot be found or there is no valid
section for used terminal
+ harbour/tests/gtchars.prg
+ harbour/tests/gtcolors.prg
+ harbour/tests/gtkeys.prg
+ added test ptograms for GT drivers to test all character output and
automatic CP translation, colors settings and keyboard/mouse input
This commit is contained in:
@@ -8,6 +8,22 @@
|
||||
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
|
||||
*/
|
||||
|
||||
2007-06-23 15:45 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/include/hbgtcore.h
|
||||
* harbour/source/rtl/gtchrmap.c
|
||||
* harbour/source/rtl/gtcrs/gtcrs.c
|
||||
* harbour/source/rtl/gttrm/gttrm.c
|
||||
+ added 3-rd parameter BOOL fSetACSC to hb_gt_chrmapinit() function
|
||||
* initialize ACSC translation for XTERM like terminals when
|
||||
hb_charmap.def file cannot be found or there is no valid
|
||||
section for used terminal
|
||||
|
||||
+ harbour/tests/gtchars.prg
|
||||
+ harbour/tests/gtcolors.prg
|
||||
+ harbour/tests/gtkeys.prg
|
||||
+ added test ptograms for GT drivers to test all character output and
|
||||
automatic CP translation, colors settings and keyboard/mouse input
|
||||
|
||||
2007-06-23 11:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
|
||||
* harbour/source/rtl/gtchrmap.c
|
||||
* harbour/source/rtl/gttrm/Makefile
|
||||
|
||||
@@ -520,7 +520,7 @@ extern HB_EXPORT void hb_gtStartupInit( void );
|
||||
|
||||
|
||||
/* low level GT functions common to different GTs supported by RTL */
|
||||
extern int hb_gt_chrmapinit( int *piTransTbl, const char *pszTerm );
|
||||
extern int hb_gt_chrmapinit( int *piTransTbl, const char *pszTerm, BOOL fSetACSC );
|
||||
#if defined( HB_OS_WIN_32 )
|
||||
extern void hb_gt_w32_Tone( double dFrequency, double dDuration );
|
||||
extern void hb_gt_w32_SetClipboard( UINT uFormat, char * szClipData, ULONG ulLen );
|
||||
|
||||
@@ -94,6 +94,71 @@ static void chrmap_ascictrl( int *piTransTbl )
|
||||
piTransTbl[27] = HB_CHRMAP( 1, '<' );
|
||||
}
|
||||
|
||||
static void chrmap_acscbox( int *piTransTbl )
|
||||
{
|
||||
piTransTbl[ 04] = HB_CHRMAP( 5, '`' ); /* ACS_DIAMOND */
|
||||
piTransTbl[ 16] = HB_CHRMAP( 5, '+' ); /* ACS_RARROW */
|
||||
piTransTbl[ 17] = HB_CHRMAP( 5, ',' ); /* ACS_LARROW */
|
||||
piTransTbl[ 24] = HB_CHRMAP( 5, '-' ); /* ACS_UARROW */
|
||||
piTransTbl[ 25] = HB_CHRMAP( 5, '.' ); /* ACS_DARROW */
|
||||
piTransTbl[ 26] = HB_CHRMAP( 5, '+' ); /* ACS_RARROW */
|
||||
piTransTbl[ 27] = HB_CHRMAP( 5, ',' ); /* ACS_LARROW */
|
||||
piTransTbl[ 30] = HB_CHRMAP( 5, '-' ); /* ACS_UARROW */
|
||||
piTransTbl[ 31] = HB_CHRMAP( 5, '.' ); /* ACS_DARROW */
|
||||
|
||||
piTransTbl[176] = HB_CHRMAP( 5, 'h' ); /* ACS_BOARD */
|
||||
piTransTbl[177] = HB_CHRMAP( 5, 'a' ); /* ACS_CKBOARD */
|
||||
piTransTbl[178] = HB_CHRMAP( 5, '0' ); /* ACS_BLOCK */
|
||||
piTransTbl[179] = HB_CHRMAP( 5, 'x' ); /* ACS_VLINE */
|
||||
piTransTbl[180] = HB_CHRMAP( 5, 'u' ); /* ACS_RTEE */
|
||||
piTransTbl[181] = HB_CHRMAP( 5, 'u' ); /* ACS_RTEE */
|
||||
piTransTbl[182] = HB_CHRMAP( 5, 'u' ); /* ACS_RTEE */
|
||||
piTransTbl[183] = HB_CHRMAP( 5, 'k' ); /* ACS_URCORNER */
|
||||
piTransTbl[184] = HB_CHRMAP( 5, 'k' ); /* ACS_URCORNER */
|
||||
piTransTbl[185] = HB_CHRMAP( 5, 'u' ); /* ACS_RTEE */
|
||||
piTransTbl[186] = HB_CHRMAP( 5, 'x' ); /* ACS_VLINE */
|
||||
piTransTbl[187] = HB_CHRMAP( 5, 'k' ); /* ACS_URCORNER */
|
||||
piTransTbl[188] = HB_CHRMAP( 5, 'j' ); /* ACS_LRCORNER */
|
||||
piTransTbl[189] = HB_CHRMAP( 5, 'j' ); /* ACS_LRCORNER */
|
||||
piTransTbl[190] = HB_CHRMAP( 5, 'j' ); /* ACS_LRCORNER */
|
||||
piTransTbl[191] = HB_CHRMAP( 5, 'k' ); /* ACS_URCORNER */
|
||||
piTransTbl[192] = HB_CHRMAP( 5, 'm' ); /* ACS_LLCORNER */
|
||||
piTransTbl[193] = HB_CHRMAP( 5, 'v' ); /* ACS_BTEE */
|
||||
piTransTbl[194] = HB_CHRMAP( 5, 'w' ); /* ACS_TTEE */
|
||||
piTransTbl[195] = HB_CHRMAP( 5, 't' ); /* ACS_LTEE */
|
||||
piTransTbl[196] = HB_CHRMAP( 5, 'q' ); /* ACS_HLINE */
|
||||
piTransTbl[197] = HB_CHRMAP( 5, 'n' ); /* ACS_PLUS */
|
||||
piTransTbl[198] = HB_CHRMAP( 5, 't' ); /* ACS_LTEE */
|
||||
piTransTbl[199] = HB_CHRMAP( 5, 't' ); /* ACS_LTEE */
|
||||
piTransTbl[200] = HB_CHRMAP( 5, 'm' ); /* ACS_LLCORNER */
|
||||
piTransTbl[201] = HB_CHRMAP( 5, 'l' ); /* ACS_ULCORNER */
|
||||
piTransTbl[202] = HB_CHRMAP( 5, 'v' ); /* ACS_BTEE */
|
||||
piTransTbl[203] = HB_CHRMAP( 5, 'w' ); /* ACS_TTEE */
|
||||
piTransTbl[204] = HB_CHRMAP( 5, 't' ); /* ACS_LTEE */
|
||||
piTransTbl[205] = HB_CHRMAP( 5, 'q' ); /* ACS_HLINE */
|
||||
piTransTbl[206] = HB_CHRMAP( 5, 'n' ); /* ACS_PLUS */
|
||||
piTransTbl[207] = HB_CHRMAP( 5, 'v' ); /* ACS_BTEE */
|
||||
piTransTbl[208] = HB_CHRMAP( 5, 'v' ); /* ACS_BTEE */
|
||||
piTransTbl[209] = HB_CHRMAP( 5, 'w' ); /* ACS_TTEE */
|
||||
piTransTbl[210] = HB_CHRMAP( 5, 'w' ); /* ACS_TTEE */
|
||||
piTransTbl[211] = HB_CHRMAP( 5, 'm' ); /* ACS_LLCORNER */
|
||||
piTransTbl[212] = HB_CHRMAP( 5, 'm' ); /* ACS_LLCORNER */
|
||||
piTransTbl[213] = HB_CHRMAP( 5, 'l' ); /* ACS_ULCORNER */
|
||||
piTransTbl[214] = HB_CHRMAP( 5, 'l' ); /* ACS_ULCORNER */
|
||||
piTransTbl[215] = HB_CHRMAP( 5, 'n' ); /* ACS_PLUS */
|
||||
piTransTbl[216] = HB_CHRMAP( 5, 'n' ); /* ACS_PLUS */
|
||||
piTransTbl[217] = HB_CHRMAP( 5, 'j' ); /* ACS_LRCORNER */
|
||||
piTransTbl[218] = HB_CHRMAP( 5, 'l' ); /* ACS_ULCORNER */
|
||||
|
||||
#if 0
|
||||
piTransTbl[219] = HB_CHRMAP( 5, '`' ); /* ACS_DIAMOND */
|
||||
piTransTbl[220] = HB_CHRMAP( 5, '`' ); /* ACS_DIAMOND */
|
||||
piTransTbl[221] = HB_CHRMAP( 5, '`' ); /* ACS_DIAMOND */
|
||||
piTransTbl[222] = HB_CHRMAP( 5, '`' ); /* ACS_DIAMOND */
|
||||
piTransTbl[223] = HB_CHRMAP( 5, '`' ); /* ACS_DIAMOND */
|
||||
#endif
|
||||
}
|
||||
|
||||
static void skip_blank( char **buf )
|
||||
{
|
||||
while( **buf != '\0' && **buf == ' ' )
|
||||
@@ -336,7 +401,7 @@ static int hb_gt_chrmapread( const char *pszFile, const char *pszTerm, int *nTra
|
||||
return isTerm;
|
||||
}
|
||||
|
||||
int hb_gt_chrmapinit( int *piTransTbl, const char *pszTerm )
|
||||
int hb_gt_chrmapinit( int *piTransTbl, const char *pszTerm, BOOL fSetACSC )
|
||||
{
|
||||
char *pszFile, szFile[ _POSIX_PATH_MAX + 1 ];
|
||||
int nRet = -1;
|
||||
@@ -371,7 +436,10 @@ int hb_gt_chrmapinit( int *piTransTbl, const char *pszTerm )
|
||||
if( nRet == -1 )
|
||||
{
|
||||
chrmap_dotctrl( piTransTbl );
|
||||
chrmap_ascictrl( piTransTbl );
|
||||
if( fSetACSC )
|
||||
chrmap_acscbox( piTransTbl );
|
||||
else
|
||||
chrmap_ascictrl( piTransTbl );
|
||||
}
|
||||
|
||||
return nRet;
|
||||
|
||||
@@ -2009,7 +2009,7 @@ static InOutBase *create_ioBase( char *term, int infd, int outfd, int errfd,
|
||||
ioBase->acsc = tiGetS( "acsc" );
|
||||
|
||||
ioBase->charmap = ( int * ) hb_xgrab( 256 * sizeof( int ) );
|
||||
hb_gt_chrmapinit( ioBase->charmap, term );
|
||||
hb_gt_chrmapinit( ioBase->charmap, term, ioBase->terminal_type == TERM_XTERM );
|
||||
setDispTrans( ioBase, NULL, NULL, 0 );
|
||||
|
||||
ioBase->attr_mask = ( chtype ) -1;
|
||||
|
||||
@@ -2016,9 +2016,7 @@ static void hb_gt_trm_SetDispTrans( char * src, char * dst, int box )
|
||||
for( i = 0; i < 256; i++ )
|
||||
{
|
||||
ch = s_termState.charmap[i] & 0xffff;
|
||||
mode = ( s_termState.charmap[i] >> 16 ) & 0xff;
|
||||
if( s_termState.fUTF8 )
|
||||
mode = 0;
|
||||
mode = !s_termState.fUTF8 ? ( s_termState.charmap[i] >> 16 ) & 0xff : 0;
|
||||
|
||||
switch( mode )
|
||||
{
|
||||
@@ -2609,7 +2607,7 @@ static void hb_gt_trm_SetTerm( void )
|
||||
|
||||
hb_fsSetDevMode( s_termState.hFilenoStdout, FD_BINARY );
|
||||
|
||||
hb_gt_chrmapinit( s_termState.charmap, szTerm );
|
||||
hb_gt_chrmapinit( s_termState.charmap, szTerm, s_termState.terminal_type == TERM_XTERM );
|
||||
|
||||
#ifndef HB_CDP_SUPPORT_OFF
|
||||
s_termState.cdpHost = s_termState.cdpOut = s_termState.cdpIn = NULL;
|
||||
|
||||
86
harbour/tests/gtchars.prg
Normal file
86
harbour/tests/gtchars.prg
Normal file
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* demonstration/test code for terminal character output and codepage
|
||||
* translations
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
*/
|
||||
|
||||
#include "hbgtinfo.ch"
|
||||
|
||||
#define POL_MAZ "<22>•<EFBFBD>œ¥£˜ ¡†<C2A1>‘’¤¢ž¦§"
|
||||
#define POL_ISO "¡ÆÊ£ÑÓ¦¬¯±æê³ñ󶼿"
|
||||
#define POL_852 "¤<>¨<EFBFBD>ãà—<C3A0>½¥†©ˆä¢˜«¾"
|
||||
#define POL_WIN "¥ÆÊ£ÑÓŒ<C393>¯¹æê³ñ󜟿"
|
||||
|
||||
REQUEST HB_CODEPAGE_PLMAZ
|
||||
REQUEST HB_CODEPAGE_PLISO
|
||||
REQUEST HB_CODEPAGE_PL852
|
||||
REQUEST HB_CODEPAGE_PLWIN
|
||||
|
||||
function main( cTermCP, cHostCP, lBoxChar )
|
||||
local i, j, x
|
||||
|
||||
if empty( cTermCP )
|
||||
cTermCP := "PLISO"
|
||||
else
|
||||
cTermCP := upper( cTermCP )
|
||||
endif
|
||||
if empty( cHostCP )
|
||||
cHostCP := "PLMAZ"
|
||||
else
|
||||
cHostCP := upper( cHostCP )
|
||||
endif
|
||||
lBoxChar := !empty( lBoxChar )
|
||||
|
||||
HB_GTINFO( GTI_FONTSIZE, 20 )
|
||||
HB_GTINFO( GTI_FONTWIDTH, 9 )
|
||||
HB_GTINFO( GTI_FONTNAME, "fixed" )
|
||||
|
||||
HB_SETTERMCP( cTermCP, cHostCP, lBoxChar )
|
||||
|
||||
? OS(), VERSION(), DATE(), TIME()
|
||||
? HB_GTVERSION(), HB_GTVERSION(1)
|
||||
? "Host codpage: " + cHostCP + ", terminal codepage: " + cTermCP
|
||||
?
|
||||
|
||||
//HB_GTINFO(GTI_COMPATBUFFER,.f.)
|
||||
?
|
||||
for i := 0 to 15
|
||||
for j := 0 to 15
|
||||
x := i * 16 + j
|
||||
dispout( " " + chr( x ) )
|
||||
next
|
||||
?
|
||||
next
|
||||
inkey(0)
|
||||
?; dspboxch( "ÚÄÂÄ¿ ÉÍËÍ» ÕÍÑ͸ ÖÄÒÄ· ÜÜÜ °±²Û ° ± ² Û" )
|
||||
?; dspboxch( "³ ³ ³ º º º ÃÄÅÄ´ ÇÄ×Ķ ÝþÞ" )
|
||||
?; dspboxch( "ÃÄÅÄ´ ÌÍÎ͹ ³ ³ ³ º º º ÝÛÞ ÛþÛ" )
|
||||
?; dspboxch( "³ ³ ³ º º º ÆÍØÍµ ÌÍÎ͹ ÝþÞ" )
|
||||
?; dspboxch( "ÀÄÁÄÙ ÈÍÊͼ ÔÍÏ; ÓÄÐĽ ßßß û ® ¯" )
|
||||
?
|
||||
? "ISO-8859-2: say[ " + POL_ISO + " ]"; dspboxch( ", box[ " + POL_ISO + " ]" )
|
||||
? " Mazovia: say[ " + POL_MAZ + " ]"; dspboxch( ", box[ " + POL_MAZ + " ]" )
|
||||
? " CP-1250: say[ " + POL_WIN + " ]"; dspboxch( ", box[ " + POL_WIN + " ]" )
|
||||
? " CP-852: say[ " + POL_852 + " ]"; dspboxch( ", box[ " + POL_852 + " ]" )
|
||||
? chr(4)+chr(16)+chr(17)+chr(24)+chr(25)+chr(26)+chr(27)+chr(30)+chr(31)
|
||||
HB_GTINFO(GTI_ESCDELAY,5)
|
||||
inkey(0)
|
||||
alert("ALERT BOX")
|
||||
return nil
|
||||
|
||||
function dspboxch( cStr )
|
||||
local i, r, c
|
||||
for i := 1 to len( cStr )
|
||||
r:=row(); c:=col()
|
||||
dispbox( r, c, r, c, substr( cStr, i, 1 ) )
|
||||
setpos(r,c+1)
|
||||
next
|
||||
return nil
|
||||
46
harbour/tests/gtcolors.prg
Normal file
46
harbour/tests/gtcolors.prg
Normal file
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* demonstration/test code for GT full screen color output
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
*/
|
||||
|
||||
function main( xBlink )
|
||||
local bg, fg, n
|
||||
|
||||
CLS
|
||||
?
|
||||
? OS(), VERSION(), DATE(), TIME()
|
||||
? HB_GTVERSION(), HB_GTVERSION(1)
|
||||
?
|
||||
inkey( 0 )
|
||||
setblink( empty( xBlink ) )
|
||||
for bg := 0 to 15
|
||||
for fg := 0 to 15
|
||||
n := bg * 16 + fg
|
||||
@ 5 + bg, 5 + fg * 4 say "["+NUM2HEX(n)+"]" color NTOCOLOR( n )
|
||||
next
|
||||
next
|
||||
?
|
||||
?
|
||||
while inkey(0)!=13; enddo
|
||||
return nil
|
||||
|
||||
static function NTOCOLOR(nClr)
|
||||
return ltrim( str( int( nClr % 16 ), 2 ) ) + "/" + ;
|
||||
ltrim( str( int( nClr / 16 ), 2 ) )
|
||||
|
||||
static function NUM2HEX(nVal)
|
||||
local cHex := "", i, n
|
||||
for i := 1 to 2
|
||||
n := nVal % 16
|
||||
cHex := chr( n + iif( n > 9, 55, 48 ) ) + cHex
|
||||
nVal := int( nVal / 16 )
|
||||
next
|
||||
return cHex
|
||||
243
harbour/tests/gtkeys.prg
Normal file
243
harbour/tests/gtkeys.prg
Normal file
@@ -0,0 +1,243 @@
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Harbour Project source code:
|
||||
* demonstration/test code for GT keyboard input
|
||||
*
|
||||
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
|
||||
* www - http://www.harbour-project.org
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
#include "inkey.ch"
|
||||
#ifdef __HARBOUR__
|
||||
#include "hbgtinfo.ch"
|
||||
#endif
|
||||
|
||||
function main()
|
||||
local k, i
|
||||
local aKeys := { ;
|
||||
{ "K_UP", 5, "Up arrow, Ctrl-E" }, ;
|
||||
{ "K_DOWN", 24, "Down arrow, Ctrl-X" }, ;
|
||||
{ "K_LEFT", 19, "Left arrow, Ctrl-S" }, ;
|
||||
{ "K_RIGHT", 4, "Right arrow, Ctrl-D" }, ;
|
||||
{ "K_HOME", 1, "Home, Ctrl-A" }, ;
|
||||
{ "K_END", 6, "End, Ctrl-F" }, ;
|
||||
{ "K_PGUP", 18, "PgUp, Ctrl-R" }, ;
|
||||
{ "K_PGDN", 3, "PgDn, Ctrl-C" }, ;
|
||||
{ "K_CTRL_UP", 397, "Ctrl-Up arrow" }, ;
|
||||
{ "K_CTRL_DOWN", 401, "Ctrl-Down arrow" }, ;
|
||||
{ "K_CTRL_LEFT", 26, "Ctrl-Left arrow, Ctrl-Z" }, ;
|
||||
{ "K_CTRL_RIGHT", 2, "Ctrl-Right arrow, Ctrl-B" }, ;
|
||||
{ "K_CTRL_HOME", 29, "Ctrl-Home, Ctrl-]" }, ;
|
||||
{ "K_CTRL_END", 23, "Ctrl-End, Ctrl-W" }, ;
|
||||
{ "K_CTRL_PGUP", 31, "Ctrl-PgUp, Ctrl-Hyphen" }, ;
|
||||
{ "K_CTRL_PGDN", 30, "Ctrl-PgDn, Ctrl-^" }, ;
|
||||
{ "K_ALT_UP", 408, "Alt-Up arrow" }, ;
|
||||
{ "K_ALT_DOWN", 416, "Alt-Down arrow" }, ;
|
||||
{ "K_ALT_LEFT", 411, "Alt-Left arrow" }, ;
|
||||
{ "K_ALT_RIGHT", 413, "Alt-Right arrow" }, ;
|
||||
{ "K_ALT_HOME", 407, "Alt-Home" }, ;
|
||||
{ "K_ALT_END", 415, "Alt-End" }, ;
|
||||
{ "K_ALT_PGUP", 409, "Alt-PgUp" }, ;
|
||||
{ "K_ALT_PGDN", 417, "Alt-PgDn" }, ;
|
||||
{ "K_ENTER", 13, "Enter, Ctrl-M" }, ;
|
||||
{ "K_RETURN", 13, "Return, Ctrl-M" }, ;
|
||||
{ "K_SPACE", 32, "Space bar" }, ;
|
||||
{ "K_ESC", 27, "Esc, Ctrl-[" }, ;
|
||||
{ "K_CTRL_ENTER", 10, "Ctrl-Enter" }, ;
|
||||
{ "K_CTRL_RETURN", 10, "Ctrl-Return" }, ;
|
||||
{ "K_CTRL_RET", 10, "Ctrl-Return (Compat.)" }, ;
|
||||
{ "K_CTRL_PRTSCR", 379, "Ctrl-Print Screen" }, ;
|
||||
{ "K_CTRL_QUESTION", 309, "Ctrl-?" }, ;
|
||||
{ "K_ALT_ENTER", 284, "Alt-Enter" }, ;
|
||||
{ "K_ALT_RETURN", 284, "Alt-Return" }, ;
|
||||
{ "K_ALT_EQUALS", 387, "Alt-Equals" }, ;
|
||||
{ "K_ALT_ESC", 257, "Alt-Esc" }, ;
|
||||
{ "KP_CENTER", 332, "Keypad CENTER (5)" }, ;
|
||||
{ "KP_ALT_ENTER", 422, "Keypad Alt-Enter" }, ;
|
||||
{ "KP_CTRL_5", 399, "Keypad Ctrl-5" }, ;
|
||||
{ "KP_CTRL_SLASH", 405, "Keypad Ctrl-/" }, ;
|
||||
{ "KP_CTRL_ASTERISK", 406, "Keypad Ctrl-*" }, ;
|
||||
{ "KP_CTRL_MINUS", 398, "Keypad Ctrl--" }, ;
|
||||
{ "KP_CTRL_PLUS", 400, "Keypad Ctrl-+" }, ;
|
||||
{ "KP_ALT_5", 5, "Keypad Alt-5" }, ;
|
||||
{ "KP_ALT_SLASH", 420, "Keypad Alt-/" }, ;
|
||||
{ "KP_ALT_ASTERISK", 311, "Keypad Alt-*" }, ;
|
||||
{ "KP_ALT_MINUS", 330, "Keypad Alt--" }, ;
|
||||
{ "KP_ALT_PLUS", 334, "Keypad Alt-+" }, ;
|
||||
{ "K_INS", 22, "Ins, Ctrl-V" }, ;
|
||||
{ "K_DEL", 7, "Del, Ctrl-G" }, ;
|
||||
{ "K_BS", 8, "Backspace, Ctrl-H" }, ;
|
||||
{ "K_TAB", 9, "Tab, Ctrl-I" }, ;
|
||||
{ "K_SH_TAB", 271, "Shift-Tab" }, ;
|
||||
{ "K_CTRL_INS", 402, "Ctrl-Ins" }, ;
|
||||
{ "K_CTRL_DEL", 403, "Ctrl-Del" }, ;
|
||||
{ "K_CTRL_BS", 127, "Ctrl-Backspace" }, ;
|
||||
{ "K_CTRL_TAB", 404, "Ctrl-Tab" }, ;
|
||||
{ "K_ALT_INS", 418, "Alt-Ins" }, ;
|
||||
{ "K_ALT_DEL", 419, "Alt-Del" }, ;
|
||||
{ "K_ALT_BS", 270, "Alt-Backspace" }, ;
|
||||
{ "K_ALT_TAB", 421, "Alt-Tab" }, ;
|
||||
{ "K_CTRL_A", 1, "Ctrl-A, Home" }, ;
|
||||
{ "K_CTRL_B", 2, "Ctrl-B, Ctrl-Right arrow" }, ;
|
||||
{ "K_CTRL_C", 3, "Ctrl-C, PgDn, Ctrl-ScrollLock" }, ;
|
||||
{ "K_CTRL_D", 4, "Ctrl-D, Right arrow" }, ;
|
||||
{ "K_CTRL_E", 5, "Ctrl-E, Up arrow" }, ;
|
||||
{ "K_CTRL_F", 6, "Ctrl-F, End" }, ;
|
||||
{ "K_CTRL_G", 7, "Ctrl-G, Del" }, ;
|
||||
{ "K_CTRL_H", 8, "Ctrl-H, Backspace" }, ;
|
||||
{ "K_CTRL_I", 9, "Ctrl-I, Tab" }, ;
|
||||
{ "K_CTRL_J", 10, "Ctrl-J" }, ;
|
||||
{ "K_CTRL_K", 11, "Ctrl-K" }, ;
|
||||
{ "K_CTRL_L", 12, "Ctrl-L" }, ;
|
||||
{ "K_CTRL_M", 13, "Ctrl-M, Return" }, ;
|
||||
{ "K_CTRL_N", 14, "Ctrl-N" }, ;
|
||||
{ "K_CTRL_O", 15, "Ctrl-O" }, ;
|
||||
{ "K_CTRL_P", 16, "Ctrl-P" }, ;
|
||||
{ "K_CTRL_Q", 17, "Ctrl-Q" }, ;
|
||||
{ "K_CTRL_R", 18, "Ctrl-R, PgUp" }, ;
|
||||
{ "K_CTRL_S", 19, "Ctrl-S, Left arrow" }, ;
|
||||
{ "K_CTRL_T", 20, "Ctrl-T" }, ;
|
||||
{ "K_CTRL_U", 21, "Ctrl-U" }, ;
|
||||
{ "K_CTRL_V", 22, "Ctrl-V, Ins" }, ;
|
||||
{ "K_CTRL_W", 23, "Ctrl-W, Ctrl-End" }, ;
|
||||
{ "K_CTRL_X", 24, "Ctrl-X, Down arrow" }, ;
|
||||
{ "K_CTRL_Y", 25, "Ctrl-Y" }, ;
|
||||
{ "K_CTRL_Z", 26, "Ctrl-Z, Ctrl-Left arrow" } }
|
||||
aadd(aKeys, { "K_ALT_A", 286, "Alt-A" } )
|
||||
aadd(aKeys, { "K_ALT_B", 304, "Alt-B" } )
|
||||
aadd(aKeys, { "K_ALT_C", 302, "Alt-C" } )
|
||||
aadd(aKeys, { "K_ALT_D", 288, "Alt-D" } )
|
||||
aadd(aKeys, { "K_ALT_E", 274, "Alt-E" } )
|
||||
aadd(aKeys, { "K_ALT_F", 289, "Alt-F" } )
|
||||
aadd(aKeys, { "K_ALT_G", 290, "Alt-G" } )
|
||||
aadd(aKeys, { "K_ALT_H", 291, "Alt-H" } )
|
||||
aadd(aKeys, { "K_ALT_I", 279, "Alt-I" } )
|
||||
aadd(aKeys, { "K_ALT_J", 292, "Alt-J" } )
|
||||
aadd(aKeys, { "K_ALT_K", 293, "Alt-K" } )
|
||||
aadd(aKeys, { "K_ALT_L", 294, "Alt-L" } )
|
||||
aadd(aKeys, { "K_ALT_M", 306, "Alt-M" } )
|
||||
aadd(aKeys, { "K_ALT_N", 305, "Alt-N" } )
|
||||
aadd(aKeys, { "K_ALT_O", 280, "Alt-O" } )
|
||||
aadd(aKeys, { "K_ALT_P", 281, "Alt-P" } )
|
||||
aadd(aKeys, { "K_ALT_Q", 272, "Alt-Q" } )
|
||||
aadd(aKeys, { "K_ALT_R", 275, "Alt-R" } )
|
||||
aadd(aKeys, { "K_ALT_S", 287, "Alt-S" } )
|
||||
aadd(aKeys, { "K_ALT_T", 276, "Alt-T" } )
|
||||
aadd(aKeys, { "K_ALT_U", 278, "Alt-U" } )
|
||||
aadd(aKeys, { "K_ALT_V", 303, "Alt-V" } )
|
||||
aadd(aKeys, { "K_ALT_W", 273, "Alt-W" } )
|
||||
aadd(aKeys, { "K_ALT_X", 301, "Alt-X" } )
|
||||
aadd(aKeys, { "K_ALT_Y", 277, "Alt-Y" } )
|
||||
aadd(aKeys, { "K_ALT_Z", 300, "Alt-Z" } )
|
||||
aadd(aKeys, { "K_ALT_1", 376, "Alt-1" } )
|
||||
aadd(aKeys, { "K_ALT_2", 377, "Alt-2" } )
|
||||
aadd(aKeys, { "K_ALT_3", 378, "Alt-3" } )
|
||||
aadd(aKeys, { "K_ALT_4", 379, "Alt-4" } )
|
||||
aadd(aKeys, { "K_ALT_5", 380, "Alt-5" } )
|
||||
aadd(aKeys, { "K_ALT_6", 381, "Alt-6" } )
|
||||
aadd(aKeys, { "K_ALT_7", 382, "Alt-7" } )
|
||||
aadd(aKeys, { "K_ALT_8", 383, "Alt-8" } )
|
||||
aadd(aKeys, { "K_ALT_9", 384, "Alt-9" } )
|
||||
aadd(aKeys, { "K_ALT_0", 385, "Alt-0" } )
|
||||
aadd(aKeys, { "K_F1", 28, "F1, Ctrl-Backslash" } )
|
||||
aadd(aKeys, { "K_F2", -1, "F2" } )
|
||||
aadd(aKeys, { "K_F3", -2, "F3" } )
|
||||
aadd(aKeys, { "K_F4", -3, "F4" } )
|
||||
aadd(aKeys, { "K_F5", -4, "F5" } )
|
||||
aadd(aKeys, { "K_F6", -5, "F6" } )
|
||||
aadd(aKeys, { "K_F7", -6, "F7" } )
|
||||
aadd(aKeys, { "K_F8", -7, "F8" } )
|
||||
aadd(aKeys, { "K_F9", -8, "F9" } )
|
||||
aadd(aKeys, { "K_F10", -9, "F10" } )
|
||||
aadd(aKeys, { "K_F11", -40, "F11" } )
|
||||
aadd(aKeys, { "K_F12", -41, "F12" } )
|
||||
aadd(aKeys, { "K_CTRL_F1", -20, "Ctrl-F1" } )
|
||||
aadd(aKeys, { "K_CTRL_F2", -21, "Ctrl-F2" } )
|
||||
aadd(aKeys, { "K_CTRL_F3", -22, "Ctrl-F4" } )
|
||||
aadd(aKeys, { "K_CTRL_F4", -23, "Ctrl-F3" } )
|
||||
aadd(aKeys, { "K_CTRL_F5", -24, "Ctrl-F5" } )
|
||||
aadd(aKeys, { "K_CTRL_F6", -25, "Ctrl-F6" } )
|
||||
aadd(aKeys, { "K_CTRL_F7", -26, "Ctrl-F7" } )
|
||||
aadd(aKeys, { "K_CTRL_F8", -27, "Ctrl-F8" } )
|
||||
aadd(aKeys, { "K_CTRL_F9", -28, "Ctrl-F9" } )
|
||||
aadd(aKeys, { "K_CTRL_F10", -29, "Ctrl-F10" } )
|
||||
aadd(aKeys, { "K_CTRL_F11", -44, "Ctrl-F11" } )
|
||||
aadd(aKeys, { "K_CTRL_F12", -45, "Ctrl-F12" } )
|
||||
aadd(aKeys, { "K_ALT_F1", -30, "Alt-F1" } )
|
||||
aadd(aKeys, { "K_ALT_F2", -31, "Alt-F2" } )
|
||||
aadd(aKeys, { "K_ALT_F3", -32, "Alt-F3" } )
|
||||
aadd(aKeys, { "K_ALT_F4", -33, "Alt-F4" } )
|
||||
aadd(aKeys, { "K_ALT_F5", -34, "Alt-F5" } )
|
||||
aadd(aKeys, { "K_ALT_F6", -35, "Alt-F6" } )
|
||||
aadd(aKeys, { "K_ALT_F7", -36, "Alt-F7" } )
|
||||
aadd(aKeys, { "K_ALT_F8", -37, "Alt-F8" } )
|
||||
aadd(aKeys, { "K_ALT_F9", -38, "Alt-F9" } )
|
||||
aadd(aKeys, { "K_ALT_F10", -39, "Alt-F10" } )
|
||||
aadd(aKeys, { "K_ALT_F11", -46, "Alt-F11" } )
|
||||
aadd(aKeys, { "K_ALT_F12", -47, "Alt-F12" } )
|
||||
aadd(aKeys, { "K_SH_F1", -10, "Shift-F1" } )
|
||||
aadd(aKeys, { "K_SH_F2", -11, "Shift-F2" } )
|
||||
aadd(aKeys, { "K_SH_F3", -12, "Shift-F3" } )
|
||||
aadd(aKeys, { "K_SH_F4", -13, "Shift-F4" } )
|
||||
aadd(aKeys, { "K_SH_F5", -14, "Shift-F5" } )
|
||||
aadd(aKeys, { "K_SH_F6", -15, "Shift-F6" } )
|
||||
aadd(aKeys, { "K_SH_F7", -16, "Shift-F7" } )
|
||||
aadd(aKeys, { "K_SH_F8", -17, "Shift-F8" } )
|
||||
aadd(aKeys, { "K_SH_F9", -18, "Shift-F9" } )
|
||||
aadd(aKeys, { "K_SH_F10", -19, "Shift-F10" } )
|
||||
aadd(aKeys, { "K_SH_F11", -42, "Shift-F11" } )
|
||||
aadd(aKeys, { "K_SH_F12", -43, "Shift-F12" } )
|
||||
aadd(aKeys, { "K_MOUSEMOVE", 1001, "mouse move" } )
|
||||
aadd(aKeys, { "K_LBUTTONDOWN", 1002, "mouse left button down" } )
|
||||
aadd(aKeys, { "K_LBUTTONUP", 1003, "mouse left button up" } )
|
||||
aadd(aKeys, { "K_RBUTTONDOWN", 1004, "mouse right button down" } )
|
||||
aadd(aKeys, { "K_RBUTTONUP", 1005, "mouse right button up" } )
|
||||
aadd(aKeys, { "K_LDBLCLK", 1006, "mouse left button double click" } )
|
||||
aadd(aKeys, { "K_RDBLCLK", 1007, "mouse right button double click"} )
|
||||
aadd(aKeys, { "K_MBUTTONDOWN", 1008, "mouse middle button down" } )
|
||||
aadd(aKeys, { "K_MBUTTONUP", 1009, "mouse middle button up" } )
|
||||
aadd(aKeys, { "K_MDBLCLK", 1010, "mouse middle button double click" } )
|
||||
aadd(aKeys, { "K_MMLEFTDOWN", 1011, "Mouse Move Left Down" } )
|
||||
aadd(aKeys, { "K_MMRIGHTDOWN", 1012, "Mouse Move Right Down" } )
|
||||
aadd(aKeys, { "K_MMMIDDLEDOWN", 1013, "Mouse Move Middle Down" } )
|
||||
aadd(aKeys, { "K_MWFORWARD", 1014, "Mouse Wheel Forward" } )
|
||||
aadd(aKeys, { "K_MWBACKWARD", 1015, "Mouse Wheel Backward" } )
|
||||
aadd(aKeys, { "K_NCMOUSEMOVE", 1016, "Non-Client Area Mouse Movement" } )
|
||||
|
||||
? os(), version(), date(), time()
|
||||
|
||||
mdblclk(250)
|
||||
setcancel(.f.)
|
||||
//altd(0)
|
||||
|
||||
#ifdef __HARBOUR__
|
||||
set(_SET_EVENTMASK,INKEY_ALL)
|
||||
hb_gtInfo(GTI_ESCDELAY,50)
|
||||
hb_setCodePage( "PLMAZ" )
|
||||
hb_setTermCP( "PLISO" )
|
||||
? hb_gtVersion(1), hb_gtVersion()
|
||||
#endif
|
||||
|
||||
? "@ - interrupt, keycodes checking: "
|
||||
?
|
||||
while (.t.)
|
||||
k:=inkey(0,INKEY_ALL)
|
||||
if (i:=ascan(aKeys, { |x| x[2]==k }))!=0
|
||||
? " key:"+str(aKeys[i,2],7)+" "+padr(aKeys[i,1],18)+aKeys[i,3]
|
||||
elseif k>=32 .and. k<=126 .or. (k>=160 .and. k<=255) .or. IsAlpha(chr(k))
|
||||
? "char:"+str(k,7)+" "+chr(k)
|
||||
else
|
||||
? " key:"+str(k,7)
|
||||
endif
|
||||
// ?? " ("+ltrim(str(maxrow()))+":"+ltrim(str(maxcol()))+")"
|
||||
if k==64 .and. nextkey()==0
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
?
|
||||
return nil
|
||||
Reference in New Issue
Block a user