]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/command_inset.C
fix #1073
[lyx.git] / src / mathed / command_inset.C
index 42a0f5c1e7111055d99a18ce89023a69bfb36612..34956bcdff2c9d5fd5b9e15aaa38b23125567185 100644 (file)
@@ -1,26 +1,14 @@
-#ifdef __GNUG__
-#pragma implementation
-#endif
 
 #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));
 }
 
 
@@ -30,7 +18,7 @@ MathInset * CommandInset::clone() const
 }
 
 
-MathInset::result_type
+dispatch_result
 CommandInset::dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
 {
        switch (cmd.action) {
@@ -43,10 +31,10 @@ CommandInset::dispatch(FuncRequest const & cmd, idx_type & idx, pos_type & pos)
 
 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) << '}';
 }
 
 
@@ -54,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();
+}
+
+