home *** CD-ROM | disk | FTP | other *** search
- ********************
-
- FUNCTION Shadow
-
- PARAMETERS _shada, _shadb, _shadc, _shadd, _shadde, _shaddf, _shaddg
-
- PRIVATE _shadcolor, _shadx
-
- IF PCOUNT() = 4
- _shadde = CHR(177)
- _shaddf = 1
- _shaddg = IF ( (TYPE("scrmono") = "U"), .F., !scrmono)
- ELSEIF PCOUNT() = 5
- _shaddf = 1
- _shaddg = IF ( (TYPE("scrmono") = "U"), .F., !scrmono)
- ELSEIF PCOUNT() = 6
- _shaddg = IF ( (TYPE("scrmono") = "U"), .F., !scrmono)
- ENDIF
-
- IF TYPE("_shadde") = "N"
- _shaddf = _shadde
- _shadde = CHR(177)
- _shaddg = .T.
- ENDIF
- _shadde = SUBSTR(IF(EMPTY(_shadde), CHR(177), _shadde), 1, 1)
-
- _shadcolor = SETCOLOR()
- SETCOLOR( STRTRAN( _shadcolor, "+", "" ) )
-
- IF !_shaddg
- DO CASE
- CASE _shaddf = 1 && Right side, underneath
- FOR _shadx = _shada+1 TO _shadc+1
- @ _shadx, _shadd+1 SAY _shadde + _shadde
- NEXT
- @ _shadc+1,_shadb+1 SAY REPLICATE(_shadde, _shadd-_shadb)
-
- CASE _shaddf = 2
- FOR _shadx = _shada+1 TO _shadc+1
- @ _shadx, _shadb-2 SAY _shadde + _shadde
- NEXT
- @ _shadc+1,_shadb SAY REPLICATE(_shadde, _shadd-_shadb)
-
- CASE _shaddf = 3 && Left side, on bottom
- FOR _shadx = _shada-1 TO _shadc-1
- @ _shadx, _shadb-2 SAY _shadde + _shadde
- NEXT
- @ _shada-1,_shadb-1 SAY REPLICATE(_shadde, _shadd-_shadb)
-
- CASE _shaddf = 4 && Right side, on top
- FOR _shadx = _shada-1 TO _shadc-1
- @ _shadx, _shadd+1 SAY _shadde + _shadde
- NEXT
- @ _shada-1,_shadb+2 SAY REPLICATE(_shadde, _shadd-_shadb)
- ENDCASE
- ELSE
- DO CASE
- CASE _shaddf = 1
- RESTSCREEN(_shada+1,_shadd+1,_shadc+1,_shadd+2, DULLING(SAVESCREEN(_shada+1,_shadd+1,_shadc+1,_shadd+2)))
- RESTSCREEN(_shadc+1,_shadb+1,_shadc+1,_shadd+2, DULLING(SAVESCREEN(_shadc+1,_shadb+1,_shadc+1,_shadd+2)))
- CASE _shaddf = 2
- RESTSCREEN(_shada-1,_shadd+1,_shadc-1,_shadd+2, DULLING(SAVESCREEN(_shada-1,_shadd+1,_shadc-1,_shadd+2)))
- RESTSCREEN(_shada-1,_shadb+1,_shada-1,_shadd+2, DULLING(SAVESCREEN(_shada-1,_shadb+1,_shada-1,_shadd+2)))
- CASE _shaddf = 3
- RESTSCREEN(_shada+1, _shadb-2, _shadc+1, _shadb-1, DULLING(SAVESCREEN(_shada+1, _shadb-2, _shadc+1, _shadb-1)))
- RESTSCREEN(_shadc+1, _shadb-2, _shadc+1, _shadd-1, DULLING(SAVESCREEN(_shadc+1, _shadb-2, _shadc+1, _shadd-1)))
- CASE _shaddf = 4
- RESTSCREEN(_shada-1, _shadb-2, _shadc-1, _shadb-1, DULLING(SAVESCREEN(_shada-1, _shadb-2, _shadc-1, _shadb-1)))
- RESTSCREEN(_shada-1, _shadb-2, _shada-1, _shadd-1, DULLING(SAVESCREEN(_shada-1, _shadb-2, _shada-1, _shadd-1)))
- ENDCASE
- ENDIF
-
- SETCOLOR( _shadcolor )
- RETURN("")
-
- * End of File