]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathStream.cpp
Remove unneccessary uses of dynamic_cast from the code.
[lyx.git] / src / mathed / MathStream.cpp
index 25bb288a50847b6b9114b80cf6f5016eafc0ed53..b142f7e9c04b2d63632d86f57b78883eaf9d6023 100644 (file)
@@ -437,18 +437,18 @@ HtmlStream & operator<<(HtmlStream & ms, docstring const & s)
 SetMode::SetMode(MathStream & os, bool text)
        : os_(os), opened_(false)
 {
-       init(text, from_ascii(""));
+       init(text, "");
 }
 
 
-SetMode::SetMode(MathStream & os, bool text, docstring attrs)
+SetMode::SetMode(MathStream & os, bool text, string const & attrs)
        : os_(os), opened_(false)
 {
        init(text, attrs);
 }
 
 
-void SetMode::init(bool text, docstring attrs)
+void SetMode::init(bool text, string const & attrs)
 {
        was_text_ = os_.inText();
        if (was_text_)
@@ -457,12 +457,12 @@ void SetMode::init(bool text, docstring attrs)
                os_.setTextMode();
                os_ << "<mtext";
                if (!attrs.empty())
-                       os_ << " " << attrs;
+                       os_ << " " << from_utf8(attrs);
                os_ << ">";
                opened_ = true;
        } else {
                if (!attrs.empty()) {
-                       os_ << "<mstyle " << attrs << ">";
+                       os_ << "<mstyle " << from_utf8(attrs) << ">";
                        opened_ = true;
                }
                os_.setMathMode();
@@ -490,6 +490,49 @@ SetMode::~SetMode()
 //////////////////////////////////////////////////////////////////////
 
 
+SetHTMLMode::SetHTMLMode(HtmlStream & os, bool text)
+       : os_(os), opened_(false)
+{
+       init(text, "");
+}
+
+
+SetHTMLMode::SetHTMLMode(HtmlStream & os, bool text, string attrs)
+       : os_(os), opened_(true)
+{
+       init(text, attrs);
+}
+
+
+void SetHTMLMode::init(bool text, string const & attrs)
+{
+       was_text_ = os_.inText();
+       if (text) {
+               os_.setTextMode();
+               if (attrs.empty())
+                       os_ << MTag("span");
+               else
+                       os_ << MTag("span", attrs);
+               opened_ = true;
+       } else
+               os_.setMathMode();
+}
+
+
+SetHTMLMode::~SetHTMLMode()
+{
+       if (opened_)
+               os_ << ETag("span");
+       if (was_text_)
+               os_.setTextMode();
+       else
+               os_.setMathMode();
+}
+
+
+//////////////////////////////////////////////////////////////////////
+
+
 MapleStream & operator<<(MapleStream & ms, MathAtom const & at)
 {
        at->maple(ms);