Module: _getsys Library: Clipper 5.3
This module contains the following functions and procedures:
- function GETACTIVE( Arg1 )
- static function ACCELERATO( Arg1, Arg2 )
- static function CLEARGETSY
- static procedure DATEMSG
- procedure GETAPPLYKE( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8 )
- procedure GETDOSETKE( Arg1, Arg2 )
- function GETPOSTVAL( Arg1 )
- function GETPREVALI( Arg1 )
- procedure GETREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
- static function GETREADVAR( Arg1 )
- procedure GUIAPPLYKE( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, ;
- function GUIPOSTVAL( Arg1, Arg2 )
- function GUIPREVALI( Arg1, Arg2 )
- procedure GUIREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
- static function HITTEST( Arg1, Arg2, Arg3 )
- static procedure POSTACTIVE( Arg1 )
- function RANGECHECK( Arg1, Arg2, Arg3, Arg4 )
- function READEXIT( Arg1 )
- function READFORMAT( Arg1 )
- function READINSERT( Arg1 )
- function READKILL( Arg1 )
- function READMODAL( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
- function READUPDATE( Arg1 )
- static procedure RESTOREGET( Arg1 )
- static function SETTLE( Arg1, Arg2, Arg3 )
- static procedure SHOWSCOREB
- procedure TBAPPLYKEY( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, ;
- procedure TBREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
- function UPDATED
- procedure __KILLREAD
- procedure __SETFORMA( Arg1 )
Note: Because this is raw decompiler output, the code is closer
to that seen in a .PPO file, rather than a .PRG file. In other
words, you must allow for the preprocessor conversions normally
performed based on the contents of STD.CH and other .CH files
#include "common.ch"
#include "inkey.ch"
//-----------------------------------------------------------------
// file-wide static variables
//
static Static1, Static2:= .F., Static3, Static4, Static5, Static6, ;
Static7, Static8, Static9, Static10, Static11, Static12, ;
Static13, Static14 := Nil, Static15:= 0
//---------------------------------------------------[top]-
// GETACTIVE( Arg1 )
//
function GETACTIVE( Arg1 )
local Local1 := Static8
if ( PCount() > 0 )
Static8 := Arg1
endif
return Local1
//---------------------------------------------------[top]-
// ACCELERATO( Arg1, Arg2 )
//
static function ACCELERATO( Arg1, Arg2 )
local Local1, Local2, Local3, Local4, Local5, Local6, Local7, ;
Local8
do case
case Arg2 >= 272 .AND. Arg2 <= 281
Local4 := SubStr("qwertyuiop", Arg2 - 272 + 1, 1)
case Arg2 >= 286 .AND. Arg2 <= 294
Local4 := SubStr("asdfghjkl", Arg2 - 286 + 1, 1)
case Arg2 >= 300 .AND. Arg2 <= 306
Local4 := SubStr("zxcvbnm", Arg2 - 300 + 1, 1)
case Arg2 >= 376 .AND. Arg2 <= 385
Local4 := SubStr("1234567890", Arg2 - 376 + 1, 1)
otherwise
return 0
endcase
Local6 := Static13 + 1
Local7 := Len(Arg1)
for Local8 := 1 to 2
for Local1 := Local6 to Local7
Local2 := Arg1[ Local1 ]
if ( ISOBJECT( Local2:control() ) .AND. ;
Local2:control():classname() != "TBROWSE" )
Local5 := Local2:control():caption()
else
Local5 := Local2:caption()
endif
if ( ( Local3 := At("&", Local5) ) == 0 )
elseif ( Local3 == Len(Local5) )
elseif ( Lower(SubStr(Local5, Local3 + 1, 1)) == Local4 )
if ( !getprevali(Arg1[ Local1 ]) )
return 0
endif
return Local1
endif
next
Local6 := 1
Local7 := Static13 - 1
next
return 0
//---------------------------------------------------[top]-
// CLEARGETSY
//
static function CLEARGETSY
local Local1[12]
Local1[ 1 ] := Static3
Local1[ 2 ] := Static4
Local1[ 3 ] := Static5
Local1[ 4 ] := Static6
Local1[ 5 ] := Static7
Local1[ 6 ] := getactive(Nil)
Local1[ 7 ] := readvar("")
Local1[ 8 ] := Static9
Local1[ 9 ] := Static10
Local1[ 10 ] := Static11
Local1[ 11 ] := Static12
Local1[ 12 ] := Static13
Static3 := .F.
Static4 := .F.
Static5 := .F.
Static6 := 0
Static7 := 0
Static9 := ""
Static10 := 0
Static2 := .F.
Static11 := 0
Static12 := 0
Static13 := 0
return Local1
//---------------------------------------------------[top]-
// DATEMSG
//
static procedure DATEMSG
local Local1, Local2
if ( Set(_SET_SCOREBOARD) )
Local1 := Row()
Local2 := Col()
SetPos(0, 60)
dispout(nationmsg(9))
SetPos(Local1, Local2)
do while ( nextkey() == 0 )
enddo
SetPos(0, 60)
dispout(Len(nationmsg(9)))
SetPos(Local1, Local2)
endif
return
//---------------------------------------------------[top]-
// GETAPPLYKE( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8 )
//
procedure GETAPPLYKE( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, Arg8 )
local Local1, Local2, Local3, Local4, Local5, Local6
if ( !( ISNIL( Local2 := SetKey(Arg2) ) ) )
getdosetke(Local2, Arg1)
else
do case
case !( ISNIL( Arg3 ) ) .AND. ( Local6 := accelerato(Arg3, ;
Arg2) ) != 0
Arg1:exitstate(9)
Static11 := Local6
case ISNIL( Arg4 )
case ( Local6 := Arg4:getaccel(Arg2) ) != 0
menumodal(Arg4, Local6, Arg5, Arg6, Arg7, Arg8)
Arg2 := 0
case isshortcut(Arg4, Arg2)
Arg2 := 0
endcase
do case
case Arg2 == 5
Arg1:exitstate(1)
case Arg2 == 271
Arg1:exitstate(1)
case Arg2 == 24
Arg1:exitstate(2)
case Arg2 == 9
Arg1:exitstate(2)
case Arg2 == 13
Arg1:exitstate(5)
case Arg2 == 27
if ( Set(_SET_ESCAPE) )
Arg1:undo()
Arg1:exitstate(7)
endif
case Arg2 == 18
Arg1:exitstate(6)
case Arg2 == 3
Arg1:exitstate(6)
case Arg2 == 29
Arg1:exitstate(3)
case Arg2 == 23
Arg1:exitstate(6)
case Arg2 == 1002 .OR. Arg2 == 1006
Local3 := mrow()
Local4 := mcol()
if ( !( ISOBJECT( Arg4 ) ) )
Local5 := 0
elseif ( !( Arg4:classname() == "TOPBARMENU" ) )
Local5 := 0
elseif ( ( Local5 := Arg4:hittest(Local3, Local4) ) != 0 )
menumodal(Arg4, Local5, Arg5, Arg6, Arg7, Arg8)
Local5 := 1
endif
do case
case Local5 != 0
case ( Local5 := Arg1:hittest(Local3, Local4) ) == -2049
do while ( Arg1:col() + Arg1:pos() - 1 > Local4 )
Arg1:left()
enddo
do while ( Arg1:col() + Arg1:pos() - 1 < Local4 )
Arg1:right()
enddo
case !( Local5 == 0 )
case !( ISNIL( Arg3 ) ) .AND. hittest(Arg3, Local3, Local4)
Arg1:exitstate(10)
otherwise
Arg1:exitstate(0)
endcase
case Arg2 == 21
Arg1:undo()
case Arg2 == 1
Arg1:home()
case Arg2 == 6
Arg1:end()
case Arg2 == 4
Arg1:right()
case Arg2 == 19
Arg1:left()
case Arg2 == 2
Arg1:wordright()
case Arg2 == 26
Arg1:wordleft()
case Arg2 == 8
Arg1:backspace()
case Arg2 == 7
Arg1:delete()
case Arg2 == 20
Arg1:delwordrig()
case Arg2 == 25
Arg1:delend()
case Arg2 == 127
Arg1:delwordlef()
case Arg2 == 22
Set(_SET_INSERT, !Set(_SET_INSERT))
showscoreb()
case Arg2 >= 32 .AND. Arg2 <= 255
Local1 := Chr(Arg2)
if ( Arg1:type() == "N" .AND. ( Local1 == "." .OR. Local1 ;
== "," ) )
Arg1:todecpos()
else
if ( Set(_SET_INSERT) )
Arg1:insert(Local1)
else
Arg1:overstrike(Local1)
endif
if ( Arg1:typeout() )
if ( Set(_SET_BELL) )
?? ""
endif
if ( !Set(_SET_CONFIRM) )
Arg1:exitstate(5)
endif
endif
endif
endcase
return
endif
//---------------------------------------------------[top]-
// GETDOSETKE( Arg1, Arg2 )
//
procedure GETDOSETKE( Arg1, Arg2 )
local Local1
if ( Arg2:changed() )
Arg2:assign()
Static2 := .T.
endif
Local1 := Static2
eval(Arg1, Static9, Static10, readvar())
showscoreb()
Arg2:updatebuff()
Static2 := Local1
if ( Static3 )
Arg2:exitstate(7)
endif
return
//---------------------------------------------------[top]-
// GETPOSTVAL( Arg1 )
//
function GETPOSTVAL( Arg1 )
local Local1, Local2 := .T.
if ( Arg1:exitstate() == 7 )
return .T.
endif
if ( Arg1:baddate() )
Arg1:home()
datemsg()
showscoreb()
return .F.
endif
if ( Arg1:changed() )
Arg1:assign()
Static2 := .T.
endif
Arg1:reset()
if ( !( ISNIL( Arg1:postblock() ) ) )
Local1 := Static2
SetPos(Arg1:row(), Arg1:col() + Len(Arg1:buffer()))
Local2 := eval(Arg1:postblock(), Arg1)
SetPos(Arg1:row(), Arg1:col())
showscoreb()
Arg1:updatebuff()
Static2 := Local1
if ( Static3 )
Arg1:exitstate(7)
Local2 := .T.
endif
endif
return Local2
//---------------------------------------------------[top]-
// GETPREVALI( Arg1 )
//
function GETPREVALI( Arg1 )
local Local1, Local2 := .T.
if ( !( ISNIL( Arg1:preblock() ) ) )
Local1 := Static2
Local2 := eval(Arg1:preblock(), Arg1)
Arg1:display()
showscoreb()
Static2 := Local1
endif
if ( Static3 )
Local2 := .F.
Arg1:exitstate(7)
elseif ( !Local2 )
Arg1:exitstate(8)
else
Arg1:exitstate(0)
endif
return Local2
//---------------------------------------------------[top]-
// GETREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
//
procedure GETREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
if ( getprevali(Arg1) )
Static12 := 0
Arg1:setfocus()
do while ( Arg1:exitstate() == 0 .AND. !Static3 )
if ( Arg1:typeout() )
Arg1:exitstate(5)
endif
do while ( Arg1:exitstate() == 0 .AND. !Static3 )
getapplyke(Arg1, InKey(0), Arg2, Arg3, Arg4, Arg5, Arg6, ;
Arg7)
enddo
if ( !getpostval(Arg1) )
Arg1:exitstate(0)
endif
enddo
Arg1:killfocus()
endif
return
//---------------------------------------------------[top]-
// GETREADVAR( Arg1 )
//
static function GETREADVAR( Arg1 )
local Local1 := Upper(Arg1:name()), Local2
if ( !( ISNIL( Arg1:subscript() ) ) )
for Local2 := 1 to Len(Arg1:subscript())
Local1 := Local1 + ( "[" + ;
LTrim(Str(Arg1:subscript()[ Local2 ])) + "]" )
next
endif
return Local1
//---------------------------------------------------[top]-
// GUIAPPLYKE( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, ;
//
procedure GUIAPPLYKE( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, ;
Arg8, Arg9 )
local Local1, Local2, Local3, Local4, Local5, Local6, Local7, ;
Local8
if ( !( ISNIL( Local2 := SetKey(Arg4) ) ) )
getdosetke(Local2, Arg1)
else
do case
case ( Local7 := accelerato(Arg3, Arg4) ) != 0
Arg1:exitstate(9)
Static11 := Local7
case ISNIL( Arg5 )
case ( Local7 := Arg5:getaccel(Arg4) ) != 0
menumodal(Arg5, Local7, Arg6, Arg7, Arg8, Arg9)
Arg4 := 0
case isshortcut(Arg5, Arg4)
Arg4 := 0
endcase
do case
case Arg4 == 0
case ( Local6 := Arg2:classname() ) == "RADIOGROUP"
if ( Arg4 == 5 )
Arg2:previtem()
Arg4 := 0
elseif ( Arg4 == 24 )
Arg2:nextitem()
Arg4 := 0
elseif ( ( Local7 := Arg2:getaccel(Arg4) ) != 0 )
Arg2:select(Local7)
endif
case Local6 == "CHECKBOX"
if ( Arg4 == 32 )
Arg2:select()
endif
case Local6 == "PUSHBUTTON"
if ( Arg4 == 32 )
Arg2:select(32)
elseif ( Arg4 == 13 )
Arg2:select()
Arg4 := 0
endif
case Local6 == "LISTBOX"
do case
case Arg4 == 5
Arg2:previtem()
Arg4 := 0
case Arg4 == 24
Arg2:nextitem()
Arg4 := 0
case Arg4 == 32
if ( !Arg2:dropdown() )
elseif ( !Arg2:isopen() )
Arg2:open()
Arg4 := 0
endif
case ( Local5 := Arg2:findtext(Chr(Arg4), Arg2:value() + 1, ;
.F., .F.) ) != 0
Arg2:select(Local5)
endcase
endcase
do case
case Arg4 == 5
Arg1:exitstate(1)
case Arg4 == 271
Arg1:exitstate(1)
case Arg4 == 24
Arg1:exitstate(2)
case Arg4 == 9
Arg1:exitstate(2)
case Arg4 == 13
Arg1:exitstate(5)
case Arg4 == 27
if ( Set(_SET_ESCAPE) )
Arg1:exitstate(7)
endif
case Arg4 == 18
Arg1:exitstate(6)
case Arg4 == 3
Arg1:exitstate(6)
case Arg4 == 29
Arg1:exitstate(3)
case Arg4 == 23
Arg1:exitstate(6)
case Arg4 == 1002 .OR. Arg4 == 1006
Local3 := mrow()
Local4 := mcol()
if ( !( ISOBJECT( Arg5 ) ) )
Local5 := 0
elseif ( !( Arg5:classname() == "TOPBARMENU" ) )
Local5 := 0
elseif ( ( Local5 := Arg5:hittest(Local3, Local4) ) != 0 )
menumodal(Arg5, Local5, Arg6, Arg7, Arg8, Arg9)
Local5 := 1
endif
Local8 := .T.
do case
case Local5 != 0
case ( Local5 := Arg2:hittest(Local3, Local4) ) == 0
if ( hittest(Arg3, Local3, Local4) )
Arg1:exitstate(10)
else
Arg1:exitstate(0)
endif
case Local5 >= -2049
Arg2:select(Local5)
case Local5 == -4097
if ( !Arg2:isopen() )
Arg2:open()
Local8 := .F.
endif
case Local5 >= -3077 .AND. Local5 <= -3073
Arg2:scroll(Local5)
Local8 := .F.
endcase
do case
case !Local8
case !( Local6 == "LISTBOX" )
case !Arg2:dropdown()
case Arg2:isopen()
Arg2:close()
Arg2:display()
endcase
endcase
return
endif
//---------------------------------------------------[top]-
// GUIPOSTVAL( Arg1, Arg2 )
//
function GUIPOSTVAL( Arg1, Arg2 )
local Local1, Local2 := .T., Local3, Local4
if ( Arg1:exitstate() == 7 )
return .T.
endif
if ( !( Arg2:classname() == "TBROWSE" ) )
Local3 := Arg1:varget()
Local4 := Arg2:buffer()
endif
if ( !( Local3 == Local4 ) )
Arg1:varput(Local4)
Static2 := .T.
endif
if ( !( ISNIL( Arg1:postblock() ) ) )
Local1 := Static2
Local2 := eval(Arg1:postblock(), Arg1)
SetPos(Arg1:row(), Arg1:col())
showscoreb()
if ( !( Arg2:classname() == "TBROWSE" ) )
Arg2:select(Arg1:varget())
endif
Static2 := Local1
if ( Static3 )
Arg1:exitstate(7)
Local2 := .T.
endif
endif
return Local2
//---------------------------------------------------[top]-
// GUIPREVALI( Arg1, Arg2 )
//
function GUIPREVALI( Arg1, Arg2 )
local Local1, Local2 := .T.
if ( !( ISNIL( Arg1:preblock() ) ) )
Local1 := Static2
Local2 := eval(Arg1:preblock(), Arg1)
if ( !( Arg2:classname() == "TBROWSE" ) )
Arg2:display()
endif
showscoreb()
Static2 := Local1
endif
if ( Static3 )
Local2 := .F.
Arg1:exitstate(7)
elseif ( !Local2 )
Arg1:exitstate(8)
else
Arg1:exitstate(0)
endif
return Local2
//---------------------------------------------------[top]-
// GUIREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
//
procedure GUIREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
local Local1
if ( !guiprevali(Arg1, Arg1:control()) )
elseif ( ISOBJECT( Arg1:control() ) )
Local1 := Arg1:control()
Local1:select(Arg1:varget())
Local1:setfocus()
do case
case Static12 > 0
Local1:select(Static12)
case Static12 == -1025
Local1:select()
case Static12 == -2049
Local1:select(1002)
case Static12 == -4097
Local1:open()
case Static12 >= -3077 .AND. Static12 <= -3073
Local1:scroll(Static12)
endcase
Static12 := 0
do while ( Arg1:exitstate() == 0 .AND. !Static3 )
if ( Local1:typeout() )
Arg1:exitstate(5)
endif
do while ( Arg1:exitstate() == 0 .AND. !Static3 )
guiapplyke(Arg1, Local1, Arg2, InKey(0), Arg3, Arg4, ;
Arg5, Arg6, Arg7)
enddo
if ( !guipostval(Arg1, Local1) )
Arg1:exitstate(0)
endif
enddo
Arg1:varput(Local1:buffer())
Local1:killfocus()
if ( !( Local1:classname() == "LISTBOX" ) )
elseif ( !Local1:dropdown() )
elseif ( Local1:isopen() )
Local1:close()
endif
endif
return
//---------------------------------------------------[top]-
// HITTEST( Arg1, Arg2, Arg3 )
//
static function HITTEST( Arg1, Arg2, Arg3 )
local Local1, Local2
Static11 := 0
Local2 := Len(Arg1)
for Local1 := 1 to Local2
if ( ( Static12 := Arg1[ Local1 ]:hittest(Arg2, Arg3) ) != 0 )
Static11 := Local1
exit
endif
next
if ( Static11 == 0 )
elseif ( ValType(Arg1[ Static11 ]:control()) != "O" )
elseif ( !guiprevali(Arg1[ Static11 ], ;
Arg1[ Static11 ]:control()) )
Static11 := 0
endif
if ( Static11 == 0 )
elseif ( !getprevali(Arg1[ Static11 ]) )
Static11 := 0
endif
return Static11 != 0
//---------------------------------------------------[top]-
// POSTACTIVE( Arg1 )
//
static procedure POSTACTIVE( Arg1 )
getactive(Arg1)
readvar(getreadvar(Arg1))
showscoreb()
return
//---------------------------------------------------[top]-
// RANGECHECK( Arg1, Arg2, Arg3, Arg4 )
//
function RANGECHECK( Arg1, Arg2, Arg3, Arg4 )
local Local1, Local2, Local3, Local4
if ( !Arg1:changed() )
return .T.
endif
Local4 := Arg1:varget()
if ( Local4 >= Arg3 .AND. Local4 <= Arg4 )
return .T.
endif
if ( Set(_SET_SCOREBOARD) )
Local1 := nationmsg(10) + LTrim(Transform(Arg3, "")) + ;
nationmsg(11) + LTrim(Transform(Arg4, ""))
if ( Len(Local1) > MaxCol() )
Local1 := SubStr(Local1, 1, MaxCol())
endif
Local2 := Row()
Local3 := Col()
SetPos(0, Min(60, MaxCol() - Len(Local1)))
dispout(Local1)
SetPos(Local2, Local3)
do while ( nextkey() == 0 )
enddo
SetPos(0, Min(60, MaxCol() - Len(Local1)))
dispout(Space(Len(Local1)))
SetPos(Local2, Local3)
endif
return .F.
//---------------------------------------------------[top]-
// READEXIT( Arg1 )
//
function READEXIT( Arg1 )
return Set(_SET_EXIT, Arg1)
//---------------------------------------------------[top]-
// READFORMAT( Arg1 )
//
function READFORMAT( Arg1 )
local Local1 := Static1
if ( PCount() > 0 )
Static1 := Arg1
endif
return Local1
//---------------------------------------------------[top]-
// READINSERT( Arg1 )
//
function READINSERT( Arg1 )
return Set(_SET_INSERT, Arg1)
//---------------------------------------------------[top]-
// READKILL( Arg1 )
//
function READKILL( Arg1 )
local Local1 := Static3
if ( PCount() > 0 )
Static3 := Arg1
endif
return Local1
//---------------------------------------------------[top]-
// READMODAL( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
//
function READMODAL( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
local Local1, Local2, Local3, Local4, Local5, Local6, Local7 := ;
Nil, Local8, Local9, Local10, Local11, Local12
if ( ISBLOCK( Static1 ) )
eval(Static1)
endif
if ( Empty(Arg1) )
SetPos(MaxRow() - 1, 0)
return .F.
endif
Local2 := cleargetsy()
Static9 := procname(1)
Static10 := procline(1)
if ( ISNUMBER( Arg2 ) )
Static13 := settle(Arg1, Arg2, .T.)
else
Static13 := settle(Arg1, 0, .T.)
endif
if ( !( ISNUMBER( Arg4 ) ) )
Local4 := .F.
elseif ( !( ISNUMBER( Arg5 ) ) )
Local4 := .F.
elseif ( !( ISNUMBER( Arg6 ) ) )
Local4 := .F.
else
Local4 := .T.
Local3 := SaveScreen(Arg4, Arg5, Arg4, Arg6)
Local6 := ISCHARACTER( Arg7 )
endif
Static11 := 0
Static12 := 0
do while ( !( Static13 == 0 ) )
Local1 := Arg1[ Static13 ]
postactive(Local1)
if ( Local4 )
if ( !_isgraphic() )
if ( Local6 )
Local5 := SetColor(Arg7)
endif
if ( ISOBJECT( Local1:control() ) )
@ Arg4, Arg5 say padc(Local1:control():message(), ;
Arg6 - Arg5 + 1)
else
@ Arg4, Arg5 say padc(Local1:message(), Arg6 - Arg5 + ;
1)
endif
if ( Local6 )
set color to (Local5)
endif
else
if ( !Local6 )
Arg7 := SetColor()
endif
Local8 := _getnumcol(Arg7)
Local10 := At("/", Arg7)
Local9 := _getnumcol(SubStr(Arg7, Local10 + 1, Len(Arg7) ;
- Local10))
if ( ISOBJECT( Local1:control() ) )
Local7 := Local1:control():message()
else
Local7 := Local1:message()
endif
Local11 := Int(( Arg6 - Arg5 ) / 2) - Int(Len(Local7) / ;
2) + 1
Local12 := gmode()[ 5 ]
if ( Static14 != Nil .AND. ( Static14 != Local7 .OR. ;
Len(Local7) == 0 ) )
gwriteat(Static15 * 8, Arg4 * Local12, Static14, ;
Local9, -1)
gframe(Arg5 * 8, Arg4 * Local12 - 1, Arg6 * 8, ( Arg4 ;
+ 1 ) * Local12 + 1, Local9, 8, 15, 2, 2, 2, 2, ;
-4, .T.)
endif
if ( Static14 != Local7 .OR. Len(Local7) == 0 )
gframe(Arg5 * 8, Arg4 * Local12 - 1, Arg6 * 8, ( Arg4 ;
+ 1 ) * Local12 + 1, Local9, 8, 15, 2, 2, 2, 2, ;
-4, .T.)
gwriteat(Local11 * 8, Arg4 * Local12, Local7, Local8, ;
-1)
endif
Static14 := Local7
Static15 := Local11
endif
endif
if ( ISBLOCK( Local1:reader() ) )
eval(Local1:reader(), Local1, Arg1, Arg3, Arg4, Arg5, Arg6, ;
Arg7)
else
getreader(Local1, Arg1, Arg3, Arg4, Arg5, Arg6, Arg7)
endif
Static13 := settle(Arg1, Static13, .F.)
enddo
if ( Local4 )
RestScreen(Arg4, Arg5, Arg4, Arg6, Local3)
endif
restoreget(Local2)
SetPos(MaxRow() - 1, 0)
return Static2
//---------------------------------------------------[top]-
// READUPDATE( Arg1 )
//
function READUPDATE( Arg1 )
local Local1 := Static2
if ( PCount() > 0 )
Static2 := Arg1
endif
return Local1
//---------------------------------------------------[top]-
// RESTOREGET( Arg1 )
//
static procedure RESTOREGET( Arg1 )
Static3 := Arg1[ 1 ]
Static4 := Arg1[ 2 ]
Static5 := Arg1[ 3 ]
Static6 := Arg1[ 4 ]
Static7 := Arg1[ 5 ]
Static11 := Arg1[ 10 ]
Static12 := Arg1[ 11 ]
Static13 := Arg1[ 12 ]
getactive(Arg1[ 6 ])
readvar(Arg1[ 7 ])
Static9 := Arg1[ 8 ]
Static10 := Arg1[ 9 ]
return
//---------------------------------------------------[top]-
// SETTLE( Arg1, Arg2, Arg3 )
//
static function SETTLE( Arg1, Arg2, Arg3 )
local Local1
if ( Arg2 == 0 )
Local1 := 2
elseif ( Arg2 > 0 .AND. Arg3 )
Local1 := 0
else
Local1 := Arg1[ Arg2 ]:exitstate()
endif
if ( Local1 == 7 .OR. Local1 == 6 )
return 0
endif
if ( !( Local1 == 8 ) )
Static7 := Arg2
Static4 := .F.
Static5 := .F.
else
Local1 := Static6
endif
do case
case Local1 == 1
Arg2--
case Local1 == 2
Arg2++
case Local1 == 3
Arg2 := 1
Static4 := .T.
Local1 := 2
case Local1 == 4
Arg2 := Len(Arg1)
Static5 := .T.
Local1 := 1
case Local1 == 5
Arg2++
case Local1 == 9
return Static11
case Local1 == 10
return Static11
endcase
if ( Arg2 == 0 )
if ( !readexit() .AND. !Static5 )
Static4 := .T.
Arg2 := Static7
Local1 := 2
endif
elseif ( Arg2 == Len(Arg1) + 1 )
if ( !readexit() .AND. !( Local1 == 5 ) .AND. !Static4 )
Static5 := .T.
Arg2 := Static7
Local1 := 1
else
Arg2 := 0
endif
endif
Static6 := Local1
if ( !( Arg2 == 0 ) )
Arg1[ Arg2 ]:exitstate(Local1)
endif
return Arg2
//---------------------------------------------------[top]-
// SHOWSCOREB
//
static procedure SHOWSCOREB
local Local1, Local2
if ( Set(_SET_SCOREBOARD) )
Local1 := Row()
Local2 := Col()
SetPos(0, 60)
dispout(iif( Set(_SET_INSERT), nationmsg(7), nationmsg(8) ))
SetPos(Local1, Local2)
endif
return
//---------------------------------------------------[top]-
// TBAPPLYKEY( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, ;
//
procedure TBAPPLYKEY( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7, ;
Arg8, Arg9 )
local Local1, Local2, Local3, Local4, Local5, Local6
if ( !( ISNIL( Local2 := SetKey(Arg4) ) ) )
getdosetke(Local2, Arg1)
else
do case
case ( Local6 := accelerato(Arg3, Arg4) ) != 0
Arg1:exitstate(9)
Static11 := Local6
case ISNIL( Arg5 )
case ( Local6 := Arg5:getaccel(Arg4) ) != 0
menumodal(Arg5, Local6, Arg6, Arg7, Arg8, Arg9)
Arg4 := 0
case isshortcut(Arg5, Arg4)
Arg4 := 0
endcase
do case
case Arg4 == 9
Arg1:exitstate(2)
case Arg4 == 271
Arg1:exitstate(1)
case Arg4 == 13
Arg1:exitstate(5)
case Arg4 == 27
if ( Set(_SET_ESCAPE) )
Arg1:exitstate(7)
endif
case Arg4 == 23
Arg1:exitstate(6)
case Arg4 == 1002 .OR. Arg4 == 1006
Local3 := mrow()
Local4 := mcol()
if ( !( ISOBJECT( Arg5 ) ) )
Local5 := 0
elseif ( !( Arg5:classname() == "TOPBARMENU" ) )
Local5 := 0
elseif ( ( Local5 := Arg5:hittest(Local3, Local4) ) != 0 )
menumodal(Arg5, Local5, Arg6, Arg7, Arg8, Arg9)
Local5 := 1
endif
if ( Local5 != 0 )
elseif ( ( Local5 := Arg2:hittest(Local3, Local4) ) == 0 )
if ( hittest(Arg3, Local3, Local4) )
Arg1:exitstate(10)
else
Arg1:exitstate(0)
endif
endif
endcase
return
endif
//---------------------------------------------------[top]-
// TBREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
//
procedure TBREADER( Arg1, Arg2, Arg3, Arg4, Arg5, Arg6, Arg7 )
local Local1, Local2, Local3, Local4, Local5, Local6
if ( !guiprevali(Arg1, Arg1:control()) )
elseif ( ISOBJECT( Arg1:control() ) )
Local5 := setcursor(0)
Local1 := Arg1:control()
Local3 := Local1:autolite()
Local1:autolite(.T.)
Local1:hilite()
if ( Static12 == -5121 )
tbmouse(Local1, mrow(), mcol())
endif
Static12 := 0
do while ( Arg1:exitstate() == 0 )
do while ( Arg1:exitstate() == 0 )
Local2 := 0
do while ( !Local1:stabilize() .AND. Local2 == 0 )
Local2 := InKey()
enddo
if ( Local2 == 0 )
Local2 := InKey(0)
endif
Local6 := Local1:applykey(Local2)
if ( Local6 == -1 )
Arg1:exitstate(7)
exit
elseif ( Local6 == 1 )
tbapplykey(Arg1, Local1, Arg2, Local2, Arg3, Arg4, ;
Arg5, Arg6, Arg7)
endif
enddo
if ( !guipostval(Arg1, Local1) )
Arg1:exitstate(0)
endif
enddo
Local1:autolite(Local3)
Local1:dehilite()
setcursor(Local5)
endif
return
//---------------------------------------------------[top]-
// UPDATED
//
function UPDATED
return Static2
//---------------------------------------------------[top]-
// __KILLREAD
//
procedure __KILLREAD
Static3 := .T.
return
//---------------------------------------------------[top]-
// __SETFORMA( Arg1 )
//
procedure __SETFORMA( Arg1 )
Static1 := iif( ISBLOCK( Arg1 ), Arg1, Nil )
return
//---EOF
Use your Browser's BACK button to return to Function Listings