Rif. mod. 96/3. Variazioni per effettuare correttamente l'offset

sulle stampe; correzioni sulla parse_background() per scrivere
correttamente le linee verticali in grafica.


git-svn-id: svn://10.65.10.50/trunk@2385 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-01-03 16:03:08 +00:00
parent f07efd3c84
commit 0b75887d1c

View File

@ -50,7 +50,7 @@ void TPrintwin::paint_background(long j)
{
const char* line = printer().background_chars(rw);
set_color (COLOR_BLACK, COLOR_WHITE);
printat (_hofs, (int)j, "%s", line);
xvt_dwin_draw_text(win(), _hofs , (rw*_chary + _chary - _descent + _vofs), (char*)line, -1);
return;
}
if (!isbackground) return;
@ -64,21 +64,21 @@ void TPrintwin::paint_background(long j)
case 'v': // verticale intera
x1 = (byte)rwd[cnt++]-1;
b.h = e.h = LEN_SPACES(win(), x1)+LEN_SPACES(win(), 1)/2+_hofs;
b.v = rw * _chary + _vofs; e.v = rw * _chary + _vofs;
b.v = rw * _chary + _vofs; e.v = (rw+1) * _chary + _vofs;
xvt_dwin_draw_set_pos(win(),b);
xvt_dwin_draw_line(win(),e);
break;
case 'o': // verticale pezzo sopra
x1 = (byte)rwd[cnt++]-1;
b.h = e.h = LEN_SPACES(win(), x1)+LEN_SPACES(win(), 1)/2 + _hofs;
b.v = rw * _chary + _vofs; e.v = rw * _chary - _chary/2 + _vofs;
b.v = rw * _chary + _vofs; e.v = rw * _chary + _chary/2 + _vofs;
xvt_dwin_draw_set_pos(win(),b);
xvt_dwin_draw_line(win(),e);
break;
case 'u': // verticale pezzo sotto
x1 = (byte)rwd[cnt++]-1;
b.h = e.h = LEN_SPACES(win(), x1)+LEN_SPACES(win(), 1)/2 + _hofs;
b.v = rw*_chary + _chary/2 + _vofs; e.v = rw * _chary + _vofs;
b.v = rw*_chary + _chary/2 + _vofs; e.v = (rw+1) * _chary + _vofs;
xvt_dwin_draw_set_pos(win(),b);
xvt_dwin_draw_line(win(),e);
break;
@ -304,12 +304,15 @@ TPrintwin::TPrintwin(TTextfile& txt)
#if XVT_OS != XVT_OS_SCOUNIX
p.set_win_formlen(prwin); // Calcola offset e altre misure pagina
int abs_column=p.get_column_offset();
int segno = abs_column>=0 ? 1 : -1;
abs_column*=segno;
xvt_dwin_get_font_metrics(prwin, &_lead, &_ascent, &_descent);
_bg = &p.getbgdesc();
_chary = p.get_dots_per_line();
_hofs = p.get_horz_offset();
_vofs = p.get_vert_offset();
_hofs = p.get_horz_offset() + segno*LEN_SPACES(prwin,abs_column);
_vofs = p.get_vert_offset() + p.get_line_offset()*_chary;
#endif
_formlen = p.formlen();