insetcharstyle.C (metrics,draw): consider inset label for

width computation; fix drawing of labels of undefined char styles


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10412 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Michael Schmitt 2005-09-06 16:27:24 +00:00
parent c8c616688f
commit 70cf40ccef
2 changed files with 22 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2005-09-05 Michael Gerz <michael.gerz@teststep.org>
* insetcharstyle.C (metrics,draw): consider inset label for
width computation; fix drawing of labels of undefined char styles
2005-08-07 Martin Vermeer <martin.vermeer@hut.fi> 2005-08-07 Martin Vermeer <martin.vermeer@hut.fi>
* insettabular.C (getStatus): fix Helge's bug that a number of insets * insettabular.C (getStatus): fix Helge's bug that a number of insets

View File

@ -38,6 +38,7 @@
using std::string; using std::string;
using std::auto_ptr; using std::auto_ptr;
using std::istringstream; using std::istringstream;
using std::max;
using std::ostream; using std::ostream;
using std::ostringstream; using std::ostringstream;
@ -139,6 +140,21 @@ void InsetCharStyle::metrics(MetricsInfo & mi, Dimension & dim) const
mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET; mi.base.textwidth -= 2 * TEXT_TO_INSET_OFFSET;
InsetText::metrics(mi, dim); InsetText::metrics(mi, dim);
mi.base.font = tmpfont; mi.base.font = tmpfont;
if (has_label_) {
// consider width of the inset label
LyXFont font(params_.labelfont);
font.realize(LyXFont(LyXFont::ALL_SANE));
font.decSize();
font.decSize();
int w = 0;
int a = 0;
int d = 0;
string s(params_.type);
if (undefined())
s = _("Undef: ") + s;
font_metrics::rectText(s, font, w, a, d);
dim.wid = max(dim.wid, w);
}
dim.asc += TEXT_TO_INSET_OFFSET; dim.asc += TEXT_TO_INSET_OFFSET;
dim.des += TEXT_TO_INSET_OFFSET; dim.des += TEXT_TO_INSET_OFFSET;
dim.wid += 2 * TEXT_TO_INSET_OFFSET; dim.wid += 2 * TEXT_TO_INSET_OFFSET;
@ -182,7 +198,7 @@ void InsetCharStyle::draw(PainterInfo & pi, int x, int y) const
string s(params_.type); string s(params_.type);
if (undefined()) if (undefined())
s = _("Undef: ") + s; s = _("Undef: ") + s;
font_metrics::rectText(params_.type, font, w, a, d); font_metrics::rectText(s, font, w, a, d);
pi.pain.rectText(x + (dim_.wid - w) / 2, y + desc + a, pi.pain.rectText(x + (dim_.wid - w) / 2, y + desc + a,
s, font, LColor::none, LColor::none); s, font, LColor::none, LColor::none);
} }