]> git.lyx.org Git - features.git/blobdiff - src/insets/insetvspace.C
change "support/std_sstream.h" to <sstream>
[features.git] / src / insets / insetvspace.C
index 595db97a73eb406617b9757c27623a8fbcd3471b..5946dd70e26f6cf58b4dfe07fe9ba0091fba01c9 100644 (file)
@@ -15,6 +15,7 @@
 
 #include "buffer.h"
 #include "BufferView.h"
+#include "cursor.h"
 #include "dispatchresult.h"
 #include "funcrequest.h"
 #include "gettext.h"
@@ -26,7 +27,7 @@
 #include "frontends/font_metrics.h"
 #include "frontends/Painter.h"
 
-#include "support/std_sstream.h"
+#include <sstream>
 
 using std::istringstream;
 using std::ostream;
@@ -59,23 +60,22 @@ std::auto_ptr<InsetBase> InsetVSpace::clone() const
 }
 
 
-DispatchResult
-InsetVSpace::priv_dispatch(FuncRequest const & cmd,
-                          idx_type & idx, pos_type & pos)
+void InsetVSpace::priv_dispatch(LCursor & cur, FuncRequest & cmd)
 {
        switch (cmd.action) {
 
        case LFUN_INSET_MODIFY: {
                InsetVSpaceMailer::string2params(cmd.argument, space_);
-               return DispatchResult(true, true);
+               break;
        }
 
        case LFUN_MOUSE_PRESS:
-               InsetVSpaceMailer(*this).showDialog(cmd.view());
-               return DispatchResult(true, true);
+               InsetVSpaceMailer(*this).showDialog(&cur.bv());
+               break;
 
        default:
-               return InsetOld::priv_dispatch(cmd, idx, pos);
+               InsetOld::priv_dispatch(cur, cmd);
+               break;
        }
 }
 
@@ -129,8 +129,7 @@ void InsetVSpace::draw(PainterInfo & pi, int x, int y) const
 {
        static std::string const label = _("Vertical Space");
 
-       xo_ = x;
-       yo_ = y;
+       setPosCache(pi, x, y);
 
        x += ADD_TO_VSPACE_WIDTH;
 
@@ -239,15 +238,20 @@ string const InsetVSpaceMailer::inset2string(Buffer const &) const
 void InsetVSpaceMailer::string2params(string const & in, VSpace & vspace)
 {
        vspace = VSpace();
-
        if (in.empty())
                return;
 
        istringstream data(in);
        LyXLex lex(0,0);
        lex.setStream(data);
-       string name, vsp;
-       lex >> name >> vsp;
+
+       string name;
+       lex >> name;
+       if (!lex || name != name_)
+               return print_mailer_error("InsetVSpaceMailer", in, 1, name_);
+
+       string vsp;
+       lex >> vsp;
        if (lex)
                vspace = VSpace(vsp);
 }