Patch level : 2.1 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : Migliorata stampa di campi su piu' righe git-svn-id: svn://10.65.10.50/trunk@12173 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
75f854a3a0
commit
0986f0aa0c
@ -374,22 +374,19 @@ void advanced_draw_paragraph(TWindow& win, TString& para, const RCT& rct,
|
|||||||
char halign, char valign)
|
char halign, char valign)
|
||||||
{
|
{
|
||||||
const bool acapo = para.find('\n') >= 0;
|
const bool acapo = para.find('\n') >= 0;
|
||||||
const bool parag = para.find(char(0xB6)) >= 0;
|
|
||||||
|
|
||||||
int leading, ascent, descent;
|
int leading, ascent, descent;
|
||||||
xvt_dwin_get_font_metrics(win.win(), &leading, &ascent, &descent);
|
xvt_dwin_get_font_metrics(win.win(), &leading, &ascent, &descent);
|
||||||
const int ky = leading + ascent + descent;
|
const int ky = leading + ascent + descent;
|
||||||
|
|
||||||
const int rct_height = rct.bottom - rct.top;
|
const int rct_height = rct.bottom - rct.top;
|
||||||
int rows = rct_height / ky;
|
int rows = (rct_height+ky/2) / ky;
|
||||||
|
|
||||||
if (acapo || parag || rows > 1) // Devo scrivere piu' righe?
|
if (acapo || rows > 1) // Devo scrivere piu' righe?
|
||||||
{
|
{
|
||||||
const int kx = xvt_dwin_get_text_width(win.win(), "ABCDEFGH", 8) / 8;
|
const int kx = xvt_dwin_get_text_width(win.win(), "ABCDEFGH", 8) / 8;
|
||||||
const unsigned columns = (rct.right - rct.left) / kx;
|
const unsigned columns = (rct.right - rct.left) / kx;
|
||||||
|
|
||||||
if (parag)
|
|
||||||
para.replace(char('0xB6'), '\n');
|
|
||||||
TParagraph_string str(para, columns);
|
TParagraph_string str(para, columns);
|
||||||
if (str.items() < rows)
|
if (str.items() < rows)
|
||||||
rows = str.items();
|
rows = str.items();
|
||||||
@ -1294,6 +1291,13 @@ const TString& TReport_field::formatted_text() const
|
|||||||
tmp << _picture << ' ' << _var.as_string();
|
tmp << _picture << ' ' << _var.as_string();
|
||||||
return tmp;
|
return tmp;
|
||||||
}
|
}
|
||||||
|
if (dynamic_height() && _var.as_string().find(char(0xB6)) >= 0)
|
||||||
|
{
|
||||||
|
TString& tmp = get_tmp_string();
|
||||||
|
tmp = _var.as_string();
|
||||||
|
tmp.replace(char(0xB6), '\n');
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
return _var.as_string();
|
return _var.as_string();
|
||||||
}
|
}
|
||||||
return EMPTY_STRING;
|
return EMPTY_STRING;
|
||||||
|
@ -905,6 +905,8 @@ bool TBook::print_page(TWindow& win, size_t page)
|
|||||||
ifs.getline(buffer, str.size());
|
ifs.getline(buffer, str.size());
|
||||||
if (str == "</text>")
|
if (str == "</text>")
|
||||||
break;
|
break;
|
||||||
|
if (stringona.not_empty())
|
||||||
|
stringona << '\n';
|
||||||
stringona << str;
|
stringona << str;
|
||||||
}
|
}
|
||||||
advanced_draw_paragraph(win, stringona, rct, _horizontal_alignment, _vertical_alignment);
|
advanced_draw_paragraph(win, stringona, rct, _horizontal_alignment, _vertical_alignment);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user