]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetvspace.C
* src/LyXAction.C: mark goto-clear-bookmark as working without buffer
[lyx.git] / src / insets / insetvspace.C
index ee6243b723f926da33512a51154f6d183d8f1d80..afb221aff28cc25295def2fab9f87d1cf48b3e06 100644 (file)
@@ -14,7 +14,6 @@
 #include "insetvspace.h"
 
 #include "buffer.h"
-#include "BufferView.h"
 #include "cursor.h"
 #include "dispatchresult.h"
 #include "funcrequest.h"
 #include "lyxtext.h"
 #include "metricsinfo.h"
 
-#include "frontends/font_metrics.h"
+#include "frontends/FontMetrics.h"
 #include "frontends/Painter.h"
 
 #include <sstream>
 
-using lyx::docstring;
+
+namespace lyx {
 
 using std::istringstream;
 using std::ostream;
@@ -67,11 +67,11 @@ void InsetVSpace::doDispatch(LCursor & cur, FuncRequest & cmd)
        switch (cmd.action) {
 
        case LFUN_INSET_MODIFY: {
-               InsetVSpaceMailer::string2params(lyx::to_utf8(cmd.argument()), space_);
+               InsetVSpaceMailer::string2params(to_utf8(cmd.argument()), space_);
                break;
        }
 
-       case LFUN_MOUSE_PRESS:
+       case LFUN_MOUSE_RELEASE:
                InsetVSpaceMailer(*this).showDialog(&cur.bv());
                break;
 
@@ -104,9 +104,9 @@ void InsetVSpace::write(Buffer const &, ostream & os) const
 }
 
 
-string const InsetVSpace::label() const
+docstring const InsetVSpace::label() const
 {
-       static string const label = _("Vertical Space");
+       static docstring const label = _("Vertical Space");
        return label + " (" + space_.asGUIName() + ')';
 }
 
@@ -116,7 +116,7 @@ int const arrow_size = 4;
 }
 
 
-void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
+bool InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        int height = 3 * arrow_size;
        if (space_.length().len().value() >= 0.0)
@@ -129,16 +129,16 @@ void InsetVSpace::metrics(MetricsInfo & mi, Dimension & dim) const
        int w = 0;
        int a = 0;
        int d = 0;
-        string lab = label();
-        docstring dlab(lab.begin(), lab.end());
-       font_metrics::rectText(dlab, font, w, a, d);
+       theFontMetrics(font).rectText(label(), w, a, d);
 
        height = max(height, a + d);
 
        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;
 }
 
 
@@ -181,13 +181,12 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const
        font.setColor(LColor::added_space);
        font.decSize();
        font.decSize();
-        string lab = label();
-        docstring dlab(lab.begin(), lab.end());
-       font_metrics::rectText(dlab, font, w, a, d);
+       docstring const lab = label();
+       theFontMetrics(font).rectText(lab, w, a, d);
 
        pi.pain.rectText(x + 2 * arrow_size + 5,
                         start + (end - start) / 2 + (a - d) / 2,
-                        dlab, font, LColor::none, LColor::none);
+                        lab, font, LColor::none, LColor::none);
 
        // top arrow
        pi.pain.line(x, ty1, midx, ty2, LColor::added_space);
@@ -202,15 +201,15 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const
 }
 
 
-int InsetVSpace::latex(Buffer const & buf, ostream & os,
+int InsetVSpace::latex(Buffer const & buf, odocstream & os,
                          OutputParams const &) const
 {
-       os << space_.asLatexCommand(buf.params()) << '\n';
+       os << from_ascii(space_.asLatexCommand(buf.params())) << '\n';
        return 1;
 }
 
 
-int InsetVSpace::plaintext(Buffer const &, ostream & os,
+int InsetVSpace::plaintext(Buffer const &, odocstream & os,
                           OutputParams const &) const
 {
        os << "\n\n";
@@ -218,7 +217,7 @@ int InsetVSpace::plaintext(Buffer const &, ostream & os,
 }
 
 
-int InsetVSpace::docbook(Buffer const &, std::ostream & os,
+int InsetVSpace::docbook(Buffer const &, odocstream & os,
                         OutputParams const &) const
 {
        os << '\n';
@@ -268,3 +267,6 @@ string const InsetVSpaceMailer::params2string(VSpace const & vspace)
        data << name_ << ' ' << vspace.asLyXCommand();
        return data.str();
 }
+
+
+} // namespace lyx