fix bug 2022

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10439 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Georg Baum 2005-09-12 14:57:50 +00:00
parent c8c45171e8
commit 087c1bf17d
3 changed files with 27 additions and 9 deletions

View File

@ -1,3 +1,8 @@
2005-09-12 Georg Baum <Georg.Baum@post.rwth-aachen.de>
* insetvspace.C (metrics): include label text
* insetvspace.[Ch] (label): new, needed for the above
2005-08-10 Jürgen Spitzmüller <j.spitzmueller@gmx.de> 2005-08-10 Jürgen Spitzmüller <j.spitzmueller@gmx.de>
* insetbase.[Ch]: new bool neverIndent() which indicates if * insetbase.[Ch]: new bool neverIndent() which indicates if

View File

@ -102,10 +102,21 @@ void InsetVSpace::write(Buffer const &, ostream & os) const
} }
string const InsetVSpace::label() const
{
static string const label = _("Vertical Space");
return label + " (" + space_.asGUIName() + ')';
}
namespace {
int const arrow_size = 4;
}
void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
{ {
int size = 10; int size = 10;
int const arrow_size = 4;
int const space_size = space_.inPixels(*mi.base.bv); int const space_size = space_.inPixels(*mi.base.bv);
LyXFont font; LyXFont font;
@ -119,7 +130,12 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
dim.asc = size / 2; dim.asc = size / 2;
dim.des = size / 2; dim.des = size / 2;
dim.wid = 10 + 2 * ADD_TO_VSPACE_WIDTH; int w = 0;
int a = 0;
int d = 0;
font.decSize();
font_metrics::rectText(label(), font, w, a, d);
dim.wid = ADD_TO_VSPACE_WIDTH + 2 * arrow_size + 5 + w;
dim_ = dim; dim_ = dim;
} }
@ -127,25 +143,20 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
void InsetVSpace::draw(PainterInfo & pi, int x, int y) const void InsetVSpace::draw(PainterInfo & pi, int x, int y) const
{ {
static std::string const label = _("Vertical Space");
setPosCache(pi, x, y); setPosCache(pi, x, y);
x += ADD_TO_VSPACE_WIDTH; x += ADD_TO_VSPACE_WIDTH;
int const arrow_size = 4;
int const start = y - dim_.asc; int const start = y - dim_.asc;
int const end = y + dim_.des; int const end = y + dim_.des;
// the label to display (if any) // the label to display (if any)
string str; string const str = label();
// y-values for top arrow // y-values for top arrow
int ty1, ty2; int ty1, ty2;
// y-values for bottom arrow // y-values for bottom arrow
int by1, by2; int by1, by2;
str = label + " (" + space_.asGUIName() + ")";
if (space_.kind() == VSpace::VFILL) { if (space_.kind() == VSpace::VFILL) {
ty1 = ty2 = start; ty1 = ty2 = start;
by1 = by2 = end; by1 = by2 = end;
@ -171,7 +182,7 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const
font.setColor(LColor::added_space); font.setColor(LColor::added_space);
font.decSize(); font.decSize();
font.decSize(); font.decSize();
font_metrics::rectText(str, font, w, a, d); font_metrics::rectText(label(), font, w, a, d);
pi.pain.rectText(x + 2 * arrow_size + 5, y + d, pi.pain.rectText(x + 2 * arrow_size + 5, y + d,
str, font, LColor::none, LColor::none); str, font, LColor::none, LColor::none);

View File

@ -56,6 +56,8 @@ protected:
private: private:
virtual std::auto_ptr<InsetBase> doClone() const; virtual std::auto_ptr<InsetBase> doClone() const;
///
std::string const label() const;
/// ///
VSpace space_; VSpace space_;