]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/command_inset.C
fix #1073
[lyx.git] / src / mathed / command_inset.C
index 7af795e341579f13602379b87a6f0b1f85d9b13f..34956bcdff2c9d5fd5b9e15aaa38b23125567185 100644 (file)
@@ -1,22 +1,14 @@
 
 #include "command_inset.h"
 #include "math_mathmlstream.h"
+#include "funcrequest.h"
+#include "Lsstream.h"
 
 
-CommandInset::CommandInset(string const & data)
+CommandInset::CommandInset(string const & name)
+       : name_(name)
 {
        lock_ = true;
-
-       string::size_type idx0 = data.find("|++|");
-       name_ = data.substr(0, idx0);
-       if (idx0 == string::npos)
-               return;
-       idx0 += 4;
-       string::size_type idx1 = data.find("|++|", idx0);
-       cell(0) = asArray(data.substr(idx0, idx1 - idx0));
-       if (idx1 == string::npos)
-               return;
-       cell(1) = asArray(data.substr(idx1 + 4));
 }
 
 
@@ -26,12 +18,23 @@ MathInset * CommandInset::clone() const
 }
 
 
+dispatch_result
+CommandInset::dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
+{
+       switch (cmd.action) {
+               default:
+                       return ButtonInset::dispatch(cmd, idx, pos);
+       }
+       return UNDISPATCHED;
+}
+
+
 void CommandInset::write(WriteStream & os) const
 {
-       os << "\\" << name_.c_str();
+       os << '\\' << name_.c_str();
        if (cell(1).size())
-               os << "[" << cell(1) << "]";
-       os << "{" << cell(0) << "}";
+               os << '[' << cell(1) << ']';
+       os << '{' << cell(0) << '}';
 }
 
 
@@ -39,3 +42,17 @@ string CommandInset::screenLabel() const
 {
        return name_;
 }
+
+
+string const CommandInset::createDialogStr(string const & name) const
+{
+       ostringstream data;
+       data << name << " LatexCommand ";
+       WriteStream wsdata(data);
+       write(wsdata);
+       wsdata << "\n\\end_inset\n\n";
+
+       return data.str();
+}
+
+