2012-10-16 18:13 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/hbnf/hbnf.hbx
  * contrib/hbnf/mouse.c
  * contrib/hbnf/mouse1.prg
    % removed many .prg layer stub functions
    ! fixed lots of typos and other bugs.

  * contrib/hbnf/menu1.prg
  * contrib/hbnf/popadder.prg
    % two internal callbacks made STATIC. INCOMPATIBLE, but doubtful
      anybody would use these accidentally public special functions.
This commit is contained in:
Viktor Szakats
2012-10-16 16:15:39 +00:00
parent 61c2f3b43d
commit 9485ec31aa
6 changed files with 190 additions and 360 deletions

View File

@@ -16,6 +16,18 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-10-16 18:13 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbnf/hbnf.hbx
* contrib/hbnf/mouse.c
* contrib/hbnf/mouse1.prg
% removed many .prg layer stub functions
! fixed lots of typos and other bugs.
* contrib/hbnf/menu1.prg
* contrib/hbnf/popadder.prg
% two internal callbacks made STATIC. INCOMPATIBLE, but doubtful
anybody would use these accidentally public special functions.
2012-10-16 16:50 UTC+0200 Viktor Szakats (harbour syenar.net)
- contrib/hbnf/dosver.prg
- contrib/hbnf/isshare.prg

View File

@@ -223,35 +223,14 @@ DYNAMIC FT_WOY
DYNAMIC FT_XBOX
DYNAMIC FT_XTOY
DYNAMIC FT_YEAR
DYNAMIC _FTADDERTAPEUDF
DYNAMIC _FT_DFCLOS
DYNAMIC _FT_DFINIT
DYNAMIC _FT_NWKSTAT
DYNAMIC _FT_TEMPFIL
DYNAMIC _MGET_DOUBLESPEED
DYNAMIC _MGET_HORISPEED
DYNAMIC _MGET_MICS
DYNAMIC _MGET_MVERSION
DYNAMIC _MGET_PAGE
DYNAMIC _MGET_VERSPEED
DYNAMIC _MSET_PAGE
DYNAMIC _MSET_SENSITIVE
DYNAMIC _MSE_CONOFF
DYNAMIC _MSE_GETPOS
DYNAMIC _MSE_MHIDECRS
DYNAMIC _MSE_SHOWCURS
DYNAMIC _M_GETX
DYNAMIC _M_GETY
DYNAMIC _M_MBUTPRS
DYNAMIC _M_MBUTREL
DYNAMIC _M_MDEFCRS
DYNAMIC _M_MGETCOORD
DYNAMIC _M_MSETCOORD
DYNAMIC _M_MSETPOS
DYNAMIC _M_MXLIMIT
DYNAMIC _M_MYLIMIT
DYNAMIC _M_RESET
DYNAMIC __FTACUDF
#if defined( __HBEXTREQ__ ) .OR. defined( __HBEXTERN__HBNF__REQUEST )
#uncommand DYNAMIC <fncs,...> => EXTERNAL <fncs>

View File

@@ -196,7 +196,7 @@ FUNCTION FT_MENU1( aBar, aOptions, aColors, nTopRow, lShadow )
RETURN NIL
// ACHOICE() user function
FUNCTION __ftAcUdf( nMode )
STATIC FUNCTION __ftAcUdf( nMode )
LOCAL nRtnVal := AC_CONT
DO CASE

View File

@@ -59,16 +59,16 @@
# include "dos.h"
#endif
HB_FUNC( _MGET_PAGE )
HB_FUNC( FT_MGETPAGE )
{
int iPage;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1E;
regs.HB_XREGS.ax = 0x1E;
HB_DOS_INT86( 0x33, &regs, &regs );
iPage = regs.HB_XREGS.bx;
iPage = regs.HB_XREGS.bx;
}
#else
{
@@ -79,174 +79,132 @@ HB_FUNC( _MGET_PAGE )
hb_retni( iPage );
}
HB_FUNC( _MSET_PAGE )
HB_FUNC( FT_MSETPAGE )
{
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1D;
regs.HB_XREGS.bx = hb_parni( 1 );
regs.HB_XREGS.ax = 0x1D;
regs.HB_XREGS.bx = hb_parni( 1 );
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _MGET_MVERSION )
HB_FUNC( FT_MVERSION )
{
int iMinor;
int iType;
int iIRQ;
int iMajor;
int iMinor;
int iType;
int iIRQ;
int iMajor;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x24;
regs.HB_XREGS.ax = 0x24;
HB_DOS_INT86( 0x33, &regs, &regs );
iMinor = regs.h.bl;
iType = regs.h.ch;
iIRQ = regs.h.cl;
iMajor = regs.h.bh;
iMinor = regs.h.bl;
iType = regs.h.ch;
iIRQ = regs.h.cl;
iMajor = regs.h.bh;
}
#else
{
iMinor = 0;
iType = 0;
iIRQ = 0;
iMajor = 0;
iMinor = 0;
iType = 0;
iIRQ = 0;
iMajor = 0;
}
#endif
{
PHB_ITEM pArray = hb_itemArrayNew( 4 );
hb_storni( iMinor, 1 );
hb_storni( iType, 2 );
hb_storni( iIRQ, 3 );
hb_arraySetNI( pArray, 1, iMinor );
hb_arraySetNI( pArray, 2, iType );
hb_arraySetNI( pArray, 3, iIRQ );
hb_arraySetNI( pArray, 4, iMajor );
hb_itemReturnRelease( pArray );
}
hb_retni( iMajor );
}
HB_FUNC( _MGET_HORISPEED )
HB_FUNC( _MSET_SENSITIVE ) /* nHoriz, nVert, nDouble */
{
int iSpeed;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1A;
regs.HB_XREGS.bx = hb_parni( 1 );
regs.HB_XREGS.cx = hb_parni( 2 );
regs.HB_XREGS.dx = hb_parni( 3 );
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( FT_MGETSENS )
{
int iHoriz;
int iVert;
int iDouble;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1B;
regs.HB_XREGS.ax = 0x1B;
HB_DOS_INT86( 0x33, &regs, &regs );
iSpeed = regs.HB_XREGS.bx;
iHoriz = regs.HB_XREGS.bx;
iVert = regs.HB_XREGS.cx;
iDouble = regs.HB_XREGS.dx;
}
#else
{
iSpeed = 0;
iHoriz = 0;
iVert = 0;
iDouble = 0;
}
#endif
hb_retni( iSpeed );
hb_storni( iHoriz, 1 );
hb_storni( iVert, 2 );
hb_storni( iDouble, 3 );
}
HB_FUNC( _MGET_VERSPEED )
HB_FUNC( FT_MCONOFF )
{
int iSpeed;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1A;
regs.HB_XREGS.cx = hb_parni( 2 ) * 8; /* nLeft */
regs.HB_XREGS.dx = hb_parni( 1 ) * 8; /* nTop */
regs.HB_XREGS.si = hb_parni( 4 ) * 8; /* nRight */
regs.HB_XREGS.di = hb_parni( 3 ) * 8; /* nBottom */
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( FT_MMICKEYS )
{
int iX;
int iY;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1B;
regs.HB_XREGS.ax = 0x0B;
HB_DOS_INT86( 0x33, &regs, &regs );
iSpeed = regs.HB_XREGS.cx;
iX = regs.HB_XREGS.cx;
iY = regs.HB_XREGS.dx;
}
#else
{
iSpeed = 0;
iX = 0;
iY = 0;
}
#endif
hb_retni( iSpeed );
}
HB_FUNC( _MGET_DOUBLESPEED )
{
int iSpeed;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1B;
HB_DOS_INT86( 0x33, &regs, &regs );
iSpeed = regs.HB_XREGS.dx;
}
#else
{
iSpeed = 0;
}
#endif
hb_retni( iSpeed );
}
HB_FUNC( _MSET_SENSITIVE ) /* nHoriz,nVert,nDouble) */
{
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1A;
regs.HB_XREGS.bx = hb_parni( 1 );
regs.HB_XREGS.cx = hb_parni( 2 );
regs.HB_XREGS.dx = hb_parni( 3 );
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _MSE_CONOFF ) /* nTop*8,nLeft*8,nBotton*8,nRight*8) */
{
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x1A;
regs.HB_XREGS.cx = hb_parni( 2 );
regs.HB_XREGS.dx = hb_parni( 1 );
regs.HB_XREGS.si = hb_parni( 4 );
regs.HB_XREGS.di = hb_parni( 3 );
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _MGET_MICS )
{
int iHori;
int iVert;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x0B;
HB_DOS_INT86( 0x33, &regs, &regs );
iHori = regs.HB_XREGS.cx;
iVert = regs.HB_XREGS.dx;
}
#else
{
iHori = 0;
iVert = 0;
}
#endif
{
PHB_ITEM pArray = hb_itemArrayNew( 2 );
hb_arraySetNI( pArray, 1, iHori );
hb_arraySetNI( pArray, 2, iVert );
hb_itemReturnRelease( pArray );
}
hb_storni( 1, iX );
hb_storni( 2, iY );
}
HB_FUNC( _M_RESET )
@@ -291,45 +249,45 @@ HB_FUNC( _MSE_MHIDECRS )
#endif
}
HB_FUNC( _MSE_GETPOS )
HB_FUNC( FT_MGETPOS )
{
int iHori;
int iVert;
int iX;
int iY;
int iButton;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 3;
regs.HB_XREGS.ax = 3;
HB_DOS_INT86( 0x33, &regs, &regs );
iHori = regs.HB_XREGS.cx;
iVert = regs.HB_XREGS.dx;
iX = regs.HB_XREGS.dx;
iY = regs.HB_XREGS.cx;
iButton = regs.HB_XREGS.bx;
}
#else
{
iHori = 0;
iVert = 0;
iX = 0;
iY = 0;
iButton = 0;
}
#endif
{
PHB_ITEM pArray = hb_itemArrayNew( 2 );
hb_arraySetNI( pArray, 1, iHori );
hb_arraySetNI( pArray, 2, iVert );
hb_storni( iX, 1 );
hb_storni( iY, 2 );
hb_itemReturnRelease( pArray );
}
hb_retni( iButton );
}
HB_FUNC( _M_GETX )
HB_FUNC( FT_MGETX )
{
int iRow;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 3;
regs.HB_XREGS.ax = 3;
HB_DOS_INT86( 0x33, &regs, &regs );
iRow = regs.HB_XREGS.dx;
iRow = regs.HB_XREGS.dx / 8;
}
#else
{
@@ -340,16 +298,16 @@ HB_FUNC( _M_GETX )
hb_retni( iRow );
}
HB_FUNC( _M_GETY )
HB_FUNC( FT_MGETY )
{
int iCol;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 3;
regs.HB_XREGS.ax = 3;
HB_DOS_INT86( 0x33, &regs, &regs );
iCol = regs.HB_XREGS.cx;
iCol = regs.HB_XREGS.cx / 8;
}
#else
{
@@ -360,157 +318,154 @@ HB_FUNC( _M_GETY )
hb_retni( iCol );
}
HB_FUNC( _M_MSETPOS )
HB_FUNC( FT_MSETPOS )
{
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 4;
regs.HB_XREGS.cx = hb_parni( 1 );
regs.HB_XREGS.dx = hb_parni( 2 );
regs.HB_XREGS.ax = 4;
regs.HB_XREGS.dx = hb_parni( 1 ); /* x */
regs.HB_XREGS.cx = hb_parni( 2 ); /* y */
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _M_MSETCOORD )
HB_FUNC( FT_MSETCOORD )
{
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 4;
regs.HB_XREGS.cx = hb_parni( 1 );
regs.HB_XREGS.dx = hb_parni( 2 );
regs.HB_XREGS.ax = 4;
regs.HB_XREGS.dx = hb_parni( 1 ) * 8; /* x */
regs.HB_XREGS.cx = hb_parni( 2 ) * 8; /* y */
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _M_MXLIMIT )
HB_FUNC( FT_MXLIMIT )
{
#if defined( HB_OS_DOS )
{
union REGS regs;
int iMaxRow = hb_parni( 2 );
int iMinRow = hb_parni( 1 );
regs.HB_XREGS.ax = 7;
regs.HB_XREGS.cx = iMinRow;
regs.HB_XREGS.dx = iMaxRow;
union REGS regs;
regs.HB_XREGS.ax = 7;
regs.HB_XREGS.cx = hb_parni( 1 ); /* nXMin */
regs.HB_XREGS.dx = hb_parni( 2 ); /* nXMax */
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _M_MYLIMIT )
HB_FUNC( FT_MYLIMIT )
{
#if defined( HB_OS_DOS )
{
union REGS regs;
int iMaxCol = hb_parni( 2 );
int iMinCol = hb_parni( 1 );
regs.HB_XREGS.ax = 8;
regs.HB_XREGS.cx = iMinCol;
regs.HB_XREGS.dx = iMaxCol;
union REGS regs;
regs.HB_XREGS.ax = 8;
regs.HB_XREGS.cx = hb_parni( 1 ); /* nYMin */
regs.HB_XREGS.dx = hb_parni( 2 ); /* nYMax */
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _M_MBUTPRS )
HB_FUNC( FT_MBUTPRS )
{
int inX;
int inY;
int inButton;
int lStatus;
int inX;
int inY;
int inButton;
int iStatus;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 6;
regs.HB_XREGS.bx = hb_parni( 1 );
regs.HB_XREGS.ax = 5;
regs.HB_XREGS.bx = hb_parni( 1 );
HB_DOS_INT86( 0x33, &regs, &regs );
inY = regs.HB_XREGS.cx;
inX = regs.HB_XREGS.dx;
inButton = regs.HB_XREGS.bx;
lStatus = regs.HB_XREGS.ax;
inX = regs.HB_XREGS.dx;
inY = regs.HB_XREGS.cx;
inButton = regs.HB_XREGS.bx;
iStatus = regs.HB_XREGS.ax;
}
#else
{
inY = 0;
inX = 0;
inY = 0;
inButton = 0;
lStatus = 0;
iStatus = 0;
}
#endif
{
PHB_ITEM pArray = hb_itemArrayNew( 4 );
hb_arraySetNI( pArray, 1, inButton ); /* NOTE: I've changed 1 to 3 */
hb_arraySetNI( pArray, 2, inX );
hb_arraySetNI( pArray, 3, inY );
hb_arraySetNI( pArray, 4, lStatus ); /* NOTE: I've changed 1 to 3 */
hb_storni( inButton, 2 );
hb_storni( inX, 3 );
hb_storni( inY, 4 );
hb_itemReturnRelease( pArray );
}
hb_retni( iStatus );
}
HB_FUNC( _M_MBUTREL )
HB_FUNC( FT_MBUTREL )
{
int inX;
int inY;
int inButton;
int iStatus;
#if defined( HB_OS_DOS )
union REGS regs;
regs.HB_XREGS.ax = 0x0A;
regs.HB_XREGS.bx = hb_parni( 1 );
HB_DOS_INT86( 0x33, &regs, &regs );
hb_reta( 4 );
hb_storvni( regs.HB_XREGS.bx, -1, 1 );
hb_storvni( regs.HB_XREGS.cx, -1, 2 );
hb_storvni( regs.HB_XREGS.dx, -1, 3 );
hb_storvni( regs.HB_XREGS.ax, -1, 4 );
{
union REGS regs;
regs.HB_XREGS.ax = 6;
regs.HB_XREGS.bx = hb_parni( 1 );
HB_DOS_INT86( 0x33, &regs, &regs );
inX = regs.HB_XREGS.dx;
inY = regs.HB_XREGS.cx;
inButton = regs.HB_XREGS.bx;
iStatus = regs.HB_XREGS.ax;
}
#else
hb_reta( 4 );
hb_storvni( 0, -1, 1 );
hb_storvni( 0, -1, 2 );
hb_storvni( 0, -1, 3 );
hb_storvni( 0, -1, 4 );
{
inX = 0;
inY = 0;
inButton = 0;
iStatus = 0;
}
#endif
hb_storni( inButton, 2 );
hb_storni( inX, 3 );
hb_storni( inY, 4 );
hb_retni( iStatus );
}
HB_FUNC( _M_MDEFCRS )
HB_FUNC( FT_MDEFCRS )
{
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 0x0A;
regs.HB_XREGS.bx = hb_parni( 1 );
regs.HB_XREGS.cx = hb_parni( 2 );
regs.HB_XREGS.dx = hb_parni( 3 );
regs.HB_XREGS.ax = 10;
regs.HB_XREGS.bx = hb_parni( 1 ); /* nCurType */
regs.HB_XREGS.cx = hb_parni( 2 ); /* nScrMask */
regs.HB_XREGS.dx = hb_parni( 3 ); /* nCurMask */
HB_DOS_INT86( 0x33, &regs, &regs );
}
#endif
}
HB_FUNC( _M_MGETCOORD )
HB_FUNC( FT_MGETCOORD )
{
int inX;
int inY;
int inButton;
int inX;
int inY;
int inButton;
#if defined( HB_OS_DOS )
{
union REGS regs;
regs.HB_XREGS.ax = 3;
regs.HB_XREGS.ax = 3;
HB_DOS_INT86( 0x33, &regs, &regs );
inButton = regs.HB_XREGS.bx;
inY = regs.HB_XREGS.cx;
inX = regs.HB_XREGS.dx;
inX = regs.HB_XREGS.dx / 8;
inY = regs.HB_XREGS.cx / 8;
inButton = regs.HB_XREGS.bx;
}
#else
{
@@ -519,13 +474,9 @@ HB_FUNC( _M_MGETCOORD )
inButton = 0;
}
#endif
{
PHB_ITEM pArray = hb_itemArrayNew( 3 );
hb_arraySetNI( pArray, 1, inX );
hb_arraySetNI( pArray, 2, inY );
hb_arraySetNI( pArray, 3, inButton );
hb_storni( inX, 1 );
hb_storni( inY, 2 );
hb_itemReturnRelease( pArray );
}
hb_retni( inButton );
}

View File

@@ -5,15 +5,6 @@
THREAD STATIC t_lCrsState := .F.
THREAD STATIC t_lMinit := .F.
FUNCTION FT_MMICKEYS( /* @ */ nX, /* @ */ nY ) // read mouse motion counters
LOCAL aReturn := _mget_mics()
nX := aReturn[ 1 ] // store horizontal motion units
nY := aReturn[ 2 ] // store vertical motion units
RETURN NIL // no function output
FUNCTION FT_MDBLCLK( nClick, nButton, nInterval, nRow, nCol, nStart )
LOCAL nVert, nHorz // local row and col coordinates
@@ -101,12 +92,6 @@ FUNCTION FT_MDBLCLK( nClick, nButton, nInterval, nRow, nCol, nStart )
RETURN lDouble
FUNCTION FT_MCONOFF( nTop, nLeft, nBottom, nRight )
_mse_conoff( nTop * 8, nLeft * 8, nBottom * 8, nRight * 8 )
RETURN NIL
FUNCTION FT_MINREGION( nTR, nLC, nBR, nRC )
RETURN ;
@@ -118,19 +103,15 @@ FUNCTION FT_MSETSENS( nHoriz, nVert, nDouble )
LOCAL nCurHoriz, nCurVert, nCurDouble
// Get current values
FT_MGETSENS( @nCurHoriz, @nCurVert, @nCurDouble )
// Set defaults if necessary
IF ! HB_ISNUMERIC( nHoriz )
nHoriz := nCurHoriz
ENDIF
IF ! HB_ISNUMERIC( nVert )
nVert := nCurVert
ENDIF
IF ! HB_ISNUMERIC( nDouble )
nDouble := nCurDouble
ENDIF
@@ -140,32 +121,6 @@ FUNCTION FT_MSETSENS( nHoriz, nVert, nDouble )
RETURN NIL
FUNCTION FT_MGETSENS( /* @ */ nHoriz, /* @ */ nVert, /* @ */ nDouble )
nHoriz := _mget_horispeed()
nVert := _mget_verspeed()
nDouble := _mget_doublespeed()
RETURN NIL
FUNCTION FT_MVERSION( /* @ */ nMinor, /* @ */ nType, /* @ */ nIRQ )
LOCAL aReturn := _mget_mversion()
nMinor := aReturn[ 1 ]
nType := aReturn[ 2 ]
nIRQ := aReturn[ 3 ]
RETURN aReturn[ 4 ]
FUNCTION FT_MSETPAGE( nPage )
RETURN _mset_page( nPage )
FUNCTION FT_MGETPAGE()
RETURN _mget_page()
FUNCTION FT_MINIT()
// If not previously initialized then try
@@ -223,70 +178,3 @@ FUNCTION FT_MHIDECRS() // decrement internal cursor flag and hide cursor
t_lCrsState := .F.
RETURN NIL // no output from function
FUNCTION FT_MGETPOS( /* @ */ nX, /* @ */ nY )
LOCAL aReturn := _mse_getpos()
nX := aReturn[ 1 ] // store new x-coordinate
nY := aReturn[ 2 ] // store new y-coordinate
RETURN aReturn[ 3 ] // return button status
FUNCTION FT_MGETX()
RETURN _m_getx() / 8 // return x-coordinate
FUNCTION FT_MGETY()
RETURN _m_gety() / 8 // return y-coordinate
FUNCTION FT_MSETPOS( nX, nY ) // set mouse cursor location
RETURN _m_msetpos( nY, nX )
FUNCTION FT_MSETCOORD( nX, nY ) // set mouse cursor location
RETURN _m_MSETCOORD( nY * 8, nX * 8 )
FUNCTION FT_MXLIMIT( nXMin, nXMax ) // set vertical minimum and maximum coordinates
RETURN _m_mxlimit( nXMin, nXMAX )
FUNCTION FT_MYLIMIT( nYMin, nYMax ) // set horizontal minimum and maximum coordinates
RETURN _m_mYlimit( nYMin, nYMAX )
FUNCTION FT_MBUTPRS( nButton, /* @ */ nButPrs, /* @ */ nX, /* @ */ nY ) // get button press information
LOCAL aReturn := _m_MBUTPRS( nButton )
nButPrs := aReturn[ 1 ] // store updated press count
nX := aReturn[ 2 ] // x-coordinate at last press
nY := aReturn[ 3 ] // y-coordinate at last press
RETURN aReturn[ 4 ] // return button status
FUNCTION FT_MBUTREL( nButton, /* @ */ nButRel, /* @ */ nX, /* @ */ nY ) // get button release information
LOCAL aReturn := _m_MBUTREL( nButton )
nButRel := aReturn[ 1 ] // store updated release count
nX := aReturn[ 2 ] // x-coordinate at last release
nY := aReturn[ 3 ] // y-coordinate at last release
RETURN aReturn[ 4 ] // return button status
FUNCTION FT_MDEFCRS( nCurType, nScrMask, nCurMask ) // define text cursor type and masks
RETURN _m_mdefcrs( nCurType, nScrMask, nCurMask )
// Duplicated code from FT_MGETPOS() for speed reasons
FUNCTION FT_MGETCOORD( /* @ */ nX, /* @ */ nY )
LOCAL aReturn := _m_mgetcoord()
nX := Int( aReturn[ 1 ] / 8 ) // store new x-coordinate
nY := Int( aReturn[ 2 ] / 8 ) // store new y-coordinate
RETURN aReturn[ 3 ] // return button status

View File

@@ -1249,7 +1249,7 @@ STATIC FUNCTION _ftQuest( cMessage, xVarVal, cPict, bValid, lNoESC, nWinColor, n
+--------------------------------------------------------------------------+
*/
FUNCTION _ftAdderTapeUDF( mode, cur_elem, rel_pos, /* @ */ lAC_exit_ok )
STATIC FUNCTION _ftAdderTapeUDF( mode, cur_elem, rel_pos, /* @ */ lAC_exit_ok )
LOCAL nKey, nRtnVal