]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_spaceinset.C
oh well
[lyx.git] / src / mathed / math_spaceinset.C
index 764a324bfc9a045054066e019eccf1df9d8cb8ca..d6da0ed575c69629d4031c392c592743864bc987 100644 (file)
@@ -3,10 +3,16 @@
 #endif
 
 #include "math_spaceinset.h"
-#include "support.h"
+#include "math_support.h"
 #include "LColor.h"
 #include "Painter.h"
-#include "support/LOstream.h"
+#include "math_mathmlstream.h"
+
+
+char const * latex_mathspace[] = {
+       "!", ",", ":", ";", "quad", "qquad", "lyxnegspace"
+};
+
 
 
 MathSpaceInset::MathSpaceInset(int sp)
@@ -20,53 +26,69 @@ MathInset * MathSpaceInset::clone() const
 }
 
 
+void MathSpaceInset::metrics(MathMetricsInfo const &) const
+{
+       switch (space_) {
+               case 0: width_ = 6; break;
+               case 1: width_ = 6; break;
+               case 2: width_ = 8; break;
+               case 3: width_ = 10; break;
+               case 4: width_ = 20; break;
+               case 5: width_ = 40; break;
+               case 6: width_ = -2; break;
+               default: width_ = 6; break;
+       }
+       ascent_  = 4;
+       descent_ = 0;
+}
+
+
 void MathSpaceInset::draw(Painter & pain, int x, int y) const
-{ 
-       
-// XPoint p[4] = {{++x, y-3}, {x, y}, {x+width-2, y}, {x+width-2, y-3}};
-       
+{
+
 // Sadly, HP-UX CC can't handle that kind of initialization.
-       
+// XPoint p[4] = {{++x, y-3}, {x, y}, {x+width-2, y}, {x+width-2, y-3}};
+       if (space_ == 6)
+               return;
+
        int xp[4];
        int yp[4];
-       
+
        xp[0] = ++x;             yp[0] = y - 3;
        xp[1] = x;                   yp[1] = y;
        xp[2] = x + width_ - 2;  yp[2] = y;
        xp[3] = x + width_ - 2;  yp[3] = y - 3;
-       
+
        pain.lines(xp, yp, 4, space_ ? LColor::latex : LColor::math);
 }
 
 
-void MathSpaceInset::write(std::ostream & os, bool /* fragile */) const
+void MathSpaceInset::incSpace()
 {
-       if (space_ >= 0 && space_ < 6)
-               os << '\\' << latex_mathspace[space_] << ' ';
+       space_ = (space_ + 1) % 6;
 }
 
 
-void MathSpaceInset::writeNormal(std::ostream & os) const
+void MathSpaceInset::maplize(MapleStream & os) const
 {
-       os << "[space " << space_ << "] ";
+       os << ' ';
 }
 
 
-void MathSpaceInset::metrics(MathStyles st) const
+void MathSpaceInset::octavize(OctaveStream & os) const
 {
-       size_  = st;
-       width_ = space_ ? space_ * 2 : 2;
-       if (space_ > 3)
-               width_ *= 2;
-       if (space_ == 5)
-               width_ *= 2;
-       width_  += 4;
-       ascent_  = 4;
-       descent_ = 0;
+       os << ' ';
 }
 
 
-void MathSpaceInset::incSpace()
+void MathSpaceInset::normalize(NormalStream & os) const
 {
-       space_ = (space_ + 1) % 6;
+       os << "[space " << space_ << "] ";
+}
+
+
+void MathSpaceInset::write(WriteStream & os) const
+{
+       if (space_ >= 0 && space_ < 7)
+               os << '\\' << latex_mathspace[space_] << ' ';
 }