Rif. mod. 95/30. Modificata la TPrintwin::paint_row().
Aggiunto un controllo su _chary: nel caso equivalga ad 1 si stampa la riga nuda e cruda, senza posizionarsi tramite calcoli. Cio' e' utile per stampanti "Generico/Solo testo". In questo modo la stampa delle deleghe risulta precisa sia sull'asse delle ascisse che quello delle ordinate quando si utilizza un font della stampante. git-svn-id: svn://10.65.10.50/trunk@1827 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
63d6803c87
commit
4105a3beed
@ -161,42 +161,49 @@ void TPrintwin::paint_row(long j)
|
||||
const int row = (int)(j % _formlen);
|
||||
const int y = row*_chary + _chary - _descent + _vofs;
|
||||
|
||||
paint_background(j);
|
||||
|
||||
_txt.read_line(j);
|
||||
|
||||
int pos = 0;
|
||||
|
||||
const char* cp;
|
||||
while((cp = _txt.piece()) != NULL)
|
||||
{
|
||||
#if XVT_OS != XVT_OS_SCOUNIX
|
||||
const int st = _txt.get_style();
|
||||
set_font(printer().fontname(), st, _char_size);
|
||||
|
||||
const COLOR bg = trans_color(_txt.get_background());
|
||||
const COLOR fg = trans_color(_txt.get_foreground());
|
||||
set_color(fg, bg);
|
||||
#else
|
||||
set_color(COLOR_BLACK, COLOR_WHITE);
|
||||
#endif
|
||||
if (_chary > 1)
|
||||
{
|
||||
paint_background(j);
|
||||
|
||||
const char* beg = cp;
|
||||
while (*beg)
|
||||
{
|
||||
for (; *beg == ' '; beg++) // Salta spazi iniziali
|
||||
pos++;
|
||||
_txt.read_line(j);
|
||||
|
||||
int pos = 0;
|
||||
|
||||
const char* cp;
|
||||
while((cp = _txt.piece()) != NULL)
|
||||
{
|
||||
#if XVT_OS != XVT_OS_SCOUNIX
|
||||
const int st = _txt.get_style();
|
||||
set_font(printer().fontname(), st, _char_size);
|
||||
|
||||
if (*beg)
|
||||
{
|
||||
int len = 0;
|
||||
for (const char * end = beg; *end && (*end != ' ' || *(end+1) != ' '); end++)
|
||||
len++; // Misura sringa da stampare
|
||||
xvt_dwin_draw_text(win(), _hofs + LEN_SPACES(win(), pos), y, (char*)beg, len);
|
||||
pos += len;
|
||||
beg = end;
|
||||
}
|
||||
}
|
||||
const COLOR bg = trans_color(_txt.get_background());
|
||||
const COLOR fg = trans_color(_txt.get_foreground());
|
||||
set_color(fg, bg);
|
||||
#else
|
||||
set_color(COLOR_BLACK, COLOR_WHITE);
|
||||
#endif
|
||||
|
||||
const char* beg = cp;
|
||||
while (*beg)
|
||||
{
|
||||
for (; *beg == ' '; beg++) // Salta spazi iniziali
|
||||
pos++;
|
||||
|
||||
if (*beg)
|
||||
{
|
||||
int len = 0;
|
||||
for (const char * end = beg; *end && (*end != ' ' || *(end+1) != ' '); end++)
|
||||
len++; // Misura sringa da stampare
|
||||
xvt_dwin_draw_text(win(), _hofs + LEN_SPACES(win(), pos), y, (char*)beg, len);
|
||||
pos += len;
|
||||
beg = end;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
{
|
||||
set_font(printer().fontname(), XVT_FS_NONE, _char_size);
|
||||
xvt_dwin_draw_text(win(), 0, y, (char*)_txt.line(j), -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user