Ola!
Vc está na fronteira, rsrsr
Infelizmente na minha minha época de usar essas libs, a única que funcionava no Linux/Win era a WVT.
Eu fiz algumas telas para simular o ambiente windows/Linux com fundo/bordas lateral direita e a borda de baixo usando 'w/+w'...
Na época usava nCurses no Linux. Ficava bem parecido com essas telas que vc postou.
Mas no caso das telas do Norton pode esquecer, VGA... Nem compensa ficar "encurralado" nessas antigas "ideias" na minha opinião.
**********************************************************
Function Janela(l,c,altura,larg,men,core,cord,corm,sombra)
**********************************************************
* Paramentros passados
* |--------------
* Linha,Coluna,Altura,Largura,Menssagem(opcional),core,cord,corm(opcionais)
*
*PARAMETERS l,c,altura,larg,men,core,cord,corm,sombra
PRIVATE linha1,linha2,linha3,borda1,borda2,borda3,N,titulo
*IF PCOUNT() = 4
* l --
* altura ++
*ENDIF
//HB_CDPSELECT([PT850])
if valtype(cord)= "U"
cord = 'n/w'
endi
if valtype(core)= "U"
core = 'w+/w'
endi
if valtype(corm)= "U"
corm = 'w+/b'
endi
if valtype(sombra)="U"
sombra = .f.
endif
linha1 := eval({|| "Ú"+REPLICATE("Ä",larg) })
linha2 := "³"+space(larg) //REPLICATE(CHR(32),larg)
linha3 := eval({||REPLICATE("Ä",larg)+"Ù" })
borda1 := "¿" //CHR(191)
borda2 := "³" //CHR(179)
borda3 := "À" //CHR(192)
//Wvt_DrawLine( maxrow()-2,0,maxrow()-2,maxcol(),WVT_LINE_HORZ,WVT_LINE_RECESSED,WVT_LINE_BOTTOM )
@ l,c say linha1 color core
@ l,larg+c+1 say borda1 color cord
for N := 1 to altura
@ l+N,c say linha2 color core
@ l+n,larg+c+1 say borda2 color cord
next
@ l+n,c+1 say linha3 color cord
@ l+n,c say borda3 color core
if sombra
sombra(l,c,l+altura+1,c+larg+1)
endif
if valtype(men) # 'U'
@ l+1,c+2 say repl(" ",larg-2) color corm
@ l+1,c+3 say men color corm
endif
//HB_CDPSELECT([PTISO])
Return .t.
ml := maxrow()/2
mc := (maxcol()-40)/2
janela(ml ,mc ,5,40,,'w+/w','n/w','w+/w',.t.)
janela(ml+1,mc+1,3,38,,'n/w','w+/w','n/w')
******************************
Function confirma(texto,opcao)
******************************
*
*
largjan:=len(texto)+1
if largjan<25
largjan:=25
endif
ces:=(maxcol()-largjan)/2
les:=maxrow()-9
telavelha := savescreen(les,0,les+6,79)
CorVf := setcolor('n/w')
janela(les,ces,4,largjan,,'w+/w','n/w','w+/w',.t.)
@ les+1,ces+1 say texto color 'n/w'
coluna:=(largjan-9)/2
janela(les+2,ces+6,1,3,,'w+/w','n/w','w+/w')
janela(les+2,ces+15,1,3,,'w+/w','n/w','w+/w')
@ les+3,ces+7 prom "Sim" //color "r/w,+w/r,r/w,r/w"
@ les+3,ces+16 prom "Nao" //color "r/w,+w/r,r/w,r/w"
if opcao
confirm=2
endif
menu to confirm
if confirm = 1
janela(les+2,ces+6,1,3,,'n/w','w+/w','n/w')
@ les+3,ces+7 say "Sim" color 'n/w'
else
janela(les+2,ces+15,1,3,,'n/w','w+/w','n/w')
@ les+3,ces+16 say "Nao" color 'n/w'
endif
INKEY(.1)
setcolor(CorVf)
restscreen(les,0,les+6,79,telavelha)
return confirm
Ps; Nessa época ainda usava Joiner.
Saudações,
Itamar M. Lins Jr.