]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_mathmlstream.h
Fix to bug 2362: Deleting superscript also deletes subscript.
[lyx.git] / src / mathed / math_mathmlstream.h
index 9f1ac9fed24646523888050a6b6349a8d51cedaa..65df407fba4de5ab5c8db87269fe2559e36ebe0f 100644 (file)
@@ -1,3 +1,14 @@
+// -*- C++ -*-
+/**
+ * \file math_mathmlstream.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
+ *
+ * \author André Pönitz
+ *
+ * Full author contact details are available in file CREDITS.
+ */
+
 #ifndef MATH_MATHMLSTREAM_H
 #define MATH_MATHMLSTREAM_H
 
@@ -6,7 +17,7 @@
 // settled.
 
 
-#include "math_metricsinfo.h"
+#include "metricsinfo.h"
 
 #include <iosfwd>
 
@@ -23,7 +34,9 @@ public:
        ///
        WriteStream(std::ostream & os, bool fragile, bool latex);
        ///
-       explicit WriteStream(std::ostream & os_);
+       explicit WriteStream(std::ostream & os);
+       ///
+       ~WriteStream();
        ///
        int line() const { return line_; }
        ///
@@ -37,7 +50,7 @@ public:
        ///
        void addlines(unsigned int);
        /// writes space if next thing is isalpha()
-       void pendingSpace(bool how) { pendingspace_ = how; }
+       void pendingSpace(bool how);
        /// writes space if next thing is isalpha()
        bool pendingSpace() const { return pendingspace_; }
 private:
@@ -74,14 +87,16 @@ WriteStream & operator<<(WriteStream &, unsigned int);
 //  MathML
 //
 
-struct MTag {
+class MTag {
+public:
        ///
        MTag(char const * const tag) : tag_(tag) {}
        ///
        char const * const tag_;
 };
 
-struct ETag {
+class ETag {
+public:
        ///
        ETag(char const * const tag) : tag_(tag) {}
        ///
@@ -155,8 +170,6 @@ NormalStream & operator<<(NormalStream &, char);
 NormalStream & operator<<(NormalStream &, int);
 
 
-
-
 //
 // Maple
 //
@@ -186,6 +199,35 @@ MapleStream & operator<<(MapleStream &, char);
 MapleStream & operator<<(MapleStream &, int);
 
 
+//
+// Maxima
+//
+
+
+class MaximaStream {
+public:
+       ///
+       explicit MaximaStream(std::ostream & os) : os_(os) {}
+       ///
+       std::ostream & os() { return os_; }
+private:
+       ///
+       std::ostream & os_;
+};
+
+
+///
+MaximaStream & operator<<(MaximaStream &, MathAtom const &);
+///
+MaximaStream & operator<<(MaximaStream &, MathArray const &);
+///
+MaximaStream & operator<<(MaximaStream &, char const *);
+///
+MaximaStream & operator<<(MaximaStream &, char);
+///
+MaximaStream & operator<<(MaximaStream &, int);
+
+
 //
 // Mathematica
 //