From 087c1bf17dc6779440e6addd658a6d7ee5d293d0 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Mon, 12 Sep 2005 14:57:50 +0000 Subject: [PATCH] fix bug 2022 git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@10439 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/insets/ChangeLog | 5 +++++ src/insets/insetvspace.C | 29 ++++++++++++++++++++--------- src/insets/insetvspace.h | 2 ++ 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/insets/ChangeLog b/src/insets/ChangeLog index 289c649678..b1bae44276 100644 --- a/src/insets/ChangeLog +++ b/src/insets/ChangeLog @@ -1,3 +1,8 @@ +2005-09-12 Georg Baum + + * insetvspace.C (metrics): include label text + * insetvspace.[Ch] (label): new, needed for the above + 2005-08-10 Jürgen Spitzmüller * insetbase.[Ch]: new bool neverIndent() which indicates if diff --git a/src/insets/insetvspace.C b/src/insets/insetvspace.C index 8299f1ed08..ee6a92792a 100644 --- a/src/insets/insetvspace.C +++ b/src/insets/insetvspace.C @@ -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 { int size = 10; - int const arrow_size = 4; int const space_size = space_.inPixels(*mi.base.bv); LyXFont font; @@ -119,7 +130,12 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = 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; } @@ -127,25 +143,20 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const void InsetVSpace::draw(PainterInfo & pi, int x, int y) const { - static std::string const label = _("Vertical Space"); - setPosCache(pi, x, y); x += ADD_TO_VSPACE_WIDTH; - int const arrow_size = 4; int const start = y - dim_.asc; int const end = y + dim_.des; // the label to display (if any) - string str; + string const str = label(); // y-values for top arrow int ty1, ty2; // y-values for bottom arrow int by1, by2; - str = label + " (" + space_.asGUIName() + ")"; - if (space_.kind() == VSpace::VFILL) { ty1 = ty2 = start; by1 = by2 = end; @@ -171,7 +182,7 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const font.setColor(LColor::added_space); 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, str, font, LColor::none, LColor::none); diff --git a/src/insets/insetvspace.h b/src/insets/insetvspace.h index 3fe0caf90c..1d63291a61 100644 --- a/src/insets/insetvspace.h +++ b/src/insets/insetvspace.h @@ -56,6 +56,8 @@ protected: private: virtual std::auto_ptr doClone() const; + /// + std::string const label() const; /// VSpace space_; -- 2.39.2