X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetVSpace.cpp;h=24cfe3ebcf14869a9e8ddf1576e211d28143b992;hb=2c357c1d23b7b83839a9beb8225d4f1ae4f793b4;hp=a1134fcbc9bcfb3a1cb785e097fbf78b934b024b;hpb=42123ab8a71080b6d15fca4e0c43ae76abf00a1e;p=lyx.git diff --git a/src/insets/InsetVSpace.cpp b/src/insets/InsetVSpace.cpp index a1134fcbc9..24cfe3ebcf 100644 --- a/src/insets/InsetVSpace.cpp +++ b/src/insets/InsetVSpace.cpp @@ -15,12 +15,12 @@ #include "Buffer.h" #include "Cursor.h" +#include "Dimension.h" #include "DispatchResult.h" #include "FuncRequest.h" -#include "gettext.h" -#include "LColor.h" +#include "support/gettext.h" #include "Lexer.h" -#include "LyXText.h" +#include "Text.h" #include "MetricsInfo.h" #include "OutputParams.h" @@ -29,16 +29,10 @@ #include +using namespace std; namespace lyx { -using std::istringstream; -using std::ostream; -using std::ostringstream; -using std::string; -using std::max; - - namespace { int const ADD_TO_VSPACE_WIDTH = 5; @@ -57,9 +51,9 @@ InsetVSpace::~InsetVSpace() } -std::auto_ptr InsetVSpace::doClone() const +Inset * InsetVSpace::clone() const { - return std::auto_ptr(new InsetVSpace(*this)); + return new InsetVSpace(*this); } @@ -73,11 +67,12 @@ void InsetVSpace::doDispatch(Cursor & cur, FuncRequest & cmd) } case LFUN_MOUSE_RELEASE: - InsetVSpaceMailer(*this).showDialog(&cur.bv()); + if (!cur.selection()) + InsetVSpaceMailer(*this).showDialog(&cur.bv()); break; default: - InsetBase::doDispatch(cur, cmd); + Inset::doDispatch(cur, cmd); break; } } @@ -117,13 +112,13 @@ int const arrow_size = 4; } -bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const +void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const { int height = 3 * arrow_size; if (space_.length().len().value() >= 0.0) height = max(height, space_.inPixels(*mi.base.bv)); - LyXFont font; + FontInfo font; font.decSize(); font.decSize(); @@ -137,20 +132,17 @@ bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const dim.asc = height / 2 + (a - d) / 2; // align cursor with the dim.des = height - dim.asc; // label text dim.wid = ADD_TO_VSPACE_WIDTH + 2 * arrow_size + 5 + w; - bool const changed = dim_ != dim; - dim_ = dim; - return changed; + // Cache the inset dimension. + setDimCache(mi, dim); } void InsetVSpace::draw(PainterInfo & pi, int x, int y) const { - setPosCache(pi, x, y); - + Dimension const dim = dimension(*pi.base.bv); x += ADD_TO_VSPACE_WIDTH; - - int const start = y - dim_.asc; - int const end = y + dim_.des; + int const start = y - dim.asc; + int const end = y + dim.des; // y-values for top arrow int ty1, ty2; @@ -178,8 +170,8 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const int a = 0; int d = 0; - LyXFont font; - font.setColor(LColor::added_space); + FontInfo font; + font.setColor(Color_added_space); font.decSize(); font.decSize(); docstring const lab = label(); @@ -187,23 +179,23 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const pi.pain.rectText(x + 2 * arrow_size + 5, start + (end - start) / 2 + (a - d) / 2, - lab, font, LColor::none, LColor::none); + lab, font, Color_none, Color_none); // top arrow - pi.pain.line(x, ty1, midx, ty2, LColor::added_space); - pi.pain.line(midx, ty2, rightx, ty1, LColor::added_space); + pi.pain.line(x, ty1, midx, ty2, Color_added_space); + pi.pain.line(midx, ty2, rightx, ty1, Color_added_space); // bottom arrow - pi.pain.line(x, by1, midx, by2, LColor::added_space); - pi.pain.line(midx, by2, rightx, by1, LColor::added_space); + pi.pain.line(x, by1, midx, by2, Color_added_space); + pi.pain.line(midx, by2, rightx, by1, Color_added_space); // joining line - pi.pain.line(midx, ty2, midx, by2, LColor::added_space); + pi.pain.line(midx, ty2, midx, by2, Color_added_space); } int InsetVSpace::latex(Buffer const & buf, odocstream & os, - OutputParams const &) const + OutputParams const &) const { os << from_ascii(space_.asLatexCommand(buf.params())) << '\n'; return 1; @@ -211,7 +203,7 @@ int InsetVSpace::latex(Buffer const & buf, odocstream & os, int InsetVSpace::plaintext(Buffer const &, odocstream & os, - OutputParams const &) const + OutputParams const &) const { os << "\n\n"; return PLAINTEXT_NEWLINE; @@ -219,7 +211,7 @@ int InsetVSpace::plaintext(Buffer const &, odocstream & os, int InsetVSpace::docbook(Buffer const &, odocstream & os, - OutputParams const &) const + OutputParams const &) const { os << '\n'; return 1;