home *** CD-ROM | disk | FTP | other *** search
- /*
- File: GRUMPR.CH
- System: GRUMPFISH LIBRARY
- Author: Greg Lief
- Dialect: Clipper 5.01
- Copyright (c) 1988-91, Greg Lief
- Header file to be used in conjunction with GrumpLib @..GGET and GREAD
- */
-
- //───── manifest constants for GFTimeout() function
- #define TIME_OUT 1
- #define EXIT_EVENT 2
- #define WARNING 3
- #define WARN_EVENT 4
-
- //───── ARRAY (and optional NOEDIT) clause
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [ARRAY <array>] ;
- [<noedit:NOEDIT>] ;
- [MESSAGE <message>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, ) ;
- ) ; ;
- Atail(GetList):preblock := ;
- { | g | g:varPut(padr(<array>\[max(apick(,,,,<array>,,,,,,,, ;
- max(ascan(<array>, trim(g:varGet())), 1)), 1)], ;
- len(g:varGet()))), ! <.noedit.> } ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | getapplykey(get, key) } ) } ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message> } ]
-
-
- //───── PROPER clause
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [PROPER] ;
- [MESSAGE <message>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}>) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeyproper(get, key) } ) } ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message> } ]
-
-
- //───── LIST clause
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [LIST <list>] ;
- [WHEN <when>] ;
- [MESSAGE <message>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}>) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeylist(get, key) } ) } ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message>, <list> } ]
-
-
- //───── STEP clause
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [STEP] ;
- [MESSAGE <message>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}>) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeystep(get, key) } ) } ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message> } ]
-
-
- //───── PASSWORD clause, using default character ("*")
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [PASSWORD ] ;
- [MESSAGE <message>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}>) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeypass(get, key) } ) } ; ;
- ATail(Getlist):picture := "@P*" ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message> } ]
-
-
- //───── PASSWORD clause with user-defined override character
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [PASSWORD <char>] ;
- [MESSAGE <message>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}>) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeypass(get, key) } ) } ; ;
- ATail(Getlist):picture := "@P" + <char> ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message> } ]
-
-
- //───── CALCULATOR clause (with message)
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [<calc:CALCULATOR>] ;
- [COLOR <color>] ;
- [MESSAGE <message>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}> ) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeycalc(get, key) } ) } ;
- [ ; Atail(GetList):cargo := { <message>, #<calc> } ] ;
- [ ; Atail(GetList):colorDisp( <color> )]
-
-
- //───── CALCULATOR clause (without message)
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [<calc:CALCULATOR>] ;
- [COLOR <color>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}> ) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | gkeycalc(get, key) } ) } ;
- [ ; Atail(GetList):cargo := { , #<calc> } ] ;
- [ ; Atail(GetList):colorDisp( <color> )]
-
-
- //───── to allow SAY and GET in same statement
- #xcommand @ <row>, <col> SAY <sayxpr> ;
- [<sayClauses,...>] ;
- GGET <var> ;
- [<getClauses,...>] ;
- ;
- => @ <row>, <col> SAY <sayxpr> [<sayClauses>] ;
- ; @ Row(), Col()+1 GGET <var> [<getClauses>]
-
- //───── MESSAGE clause only
- #xcommand @ <row>, <col> GGET <var> ;
- [PICTURE <pic>] ;
- [VALID <valid>] ;
- [WHEN <when>] ;
- [COLOR <color>] ;
- [MESSAGE <message>] ;
- ;
- => SetPos( <row>, <col> ) ;
- ; AAdd( ;
- GetList, ;
- _GET_( <var>, <(var)>, <pic>, <{valid}>, <{when}> ) ;
- ) ; ;
- ATail(GetList):reader := { | g | GFReader(g, ;
- { | get, key | getapplykey(get, key) } ) } ;
- [ ; Atail(GetList):colorDisp( <color> )] ;
- [ ; Atail(GetList):cargo := { <message> } ]
-
-
- //───── @..GET..RANGE (preprocessed to @..GET..VALID)
-
- #command @ <row>, <col> GGET <var> ;
- [<clauses,...>] ;
- RANGE <lo>, <hi> ;
- [<moreClauses,...>] ;
- ;
- => @ <row>, <col> GGET <var> ;
- [<clauses>] ;
- VALID {|_1| RangeCheck(_1,, <lo>, <hi>)} ;
- [<moreClauses>]
-
- #xcommand READ ;
- TIMEOUT <seconds> ;
- [EXITEVENT <exitevent>] ;
- [WARNING <warnsecs>] ;
- [WARNEVENT <warnevent>] ;
- [<validation:VALIDATION>] ;
- => ;
- gftimeout(TIME_OUT, <seconds> ) ;
- [ ; gftimeout(EXIT_EVENT, <{exitevent}>) ] ;
- [ ; gftimeout(WARNING, <warnsecs>) ] ;
- [ ; gftimeout(WARN_EVENT, <{warnevent}>) ] ;
- ; ReadModal( getlist ) ;
- [; gfvalid(getlist, <.validation.>) ] ;
- ; getlist := {} ;
- ; gftimeout()
-
- #xcommand READ VALIDATION ;
- => ;
- ReadModal( getlist ) ;
- ; gfvalid(getlist) ;
- ; getlist := {}
-
- //───── directives for READ CYCLE and INITIAL clauses
- //───── currently disabled, so don't try to use them!
- /*
- #xcommand GREAD [<cycle: CYCLE>] [INITIAL <initial>] => ;
- GReadModal(GetList, <.cycle.>, <initial>) ; GetList := {}
-
- #xcommand GREAD [<cycle: CYCLE>] [INITIAL <initial>] SAVE => ;
- GReadModal(GetList, <.cycle.>, <initial>)
-
- //───── the following command is necessary because it must call the
- //───── KillRead() function in GFGETSYS.PRG rather than GETSYS.PRG
- #xcommand CLEAR GGETS ;
- => GFKillRead() ;
- ; GetList := {}
- */
-