]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_dotsinset.C
architectural changes to tex2lyx
[lyx.git] / src / mathed / math_dotsinset.C
index 83363d8bb03e0ab096a49eb8f8fd8f6cec8bfb6c..086c6c658f3c85f5aa52ac7ecd4add0290aef56b 100644 (file)
@@ -1,62 +1,58 @@
 #include <config.h>
 
-#ifdef __GNUG__
-#pragma implementation
-#endif
-
 #include "math_dotsinset.h"
 #include "math_mathmlstream.h"
 #include "math_streamstr.h"
 #include "math_support.h"
 #include "math_parser.h"
 
+using std::auto_ptr;
+
 
 MathDotsInset::MathDotsInset(latexkeys const * key)
        : key_(key)
 {}
 
 
-MathInset * MathDotsInset::clone() const
+auto_ptr<InsetBase> MathDotsInset::clone() const
 {
-       return new MathDotsInset(*this);
+       return auto_ptr<InsetBase>(new MathDotsInset(*this));
 }
 
 
-void MathDotsInset::metrics(MathMetricsInfo & mi) const
+void MathDotsInset::metrics(MetricsInfo & mi, Dimension & dim) const
 {
        mathed_char_dim(mi.base.font, 'M', dim_);
-       if (key_->name == "ldots" || key_->name == "dotsm") 
-               dh_ = 0;
-       else if (key_->name == "cdots" || key_->name == "dotsb"
+       dh_ = 0;
+       if (key_->name == "cdots" || key_->name == "dotsb"
                        || key_->name == "dotsm" || key_->name == "dotsi")
-               dh_ = ascent() / 2;
+               dh_ = dim_.asc / 2;
        else if (key_->name == "dotsc")
-               dh_ = ascent() / 4;
-       else if (key_->name == "vdots")
-               dim_.w /= 2;
+               dh_ = dim_.asc / 4;
+       else if (key_->name == "vdots") {
+               dim_.wid = (dim_.wid / 2) + 1;
+               dh_ = dim_.asc;
+       }
        else if (key_->name == "ddots")
-               dh_ = ascent();
+               dh_ = dim_.asc;
+       dim = dim_;
 }
 
 
-void MathDotsInset::draw(MathPainterInfo & pain, int x, int y) const
+void MathDotsInset::draw(PainterInfo & pain, int x, int y) const
 {
-       mathed_draw_deco(pain, x + 2, y - dh_, width() - 2, ascent(), key_->name);
+       mathed_draw_deco(pain, x + 2, y - dh_, dim_.width() - 2, dim_.ascent(),
+               key_->name);
        if (key_->name == "vdots" || key_->name == "ddots")
                ++x;
        if (key_->name != "vdots")
                --y;
-       mathed_draw_deco(pain, x + 2, y - dh_, width() - 2, ascent(), key_->name);
-}
-
-
-void MathDotsInset::write(WriteStream & os) const
-{
-       os << '\\' << key_->name << ' ';
+       mathed_draw_deco(pain, x + 2, y - dh_, dim_.width() - 2, dim_.ascent(),
+               key_->name);
 }
 
 
-void MathDotsInset::normalize(NormalStream & os) const
+string MathDotsInset::name() const
 {
-       os << "[" << key_->name << "] ";
+       return key_->name;
 }