]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/math_dotsinset.C
small up/down tweaking
[lyx.git] / src / mathed / math_dotsinset.C
index 839af0d3602ac319de5c0ac548cbc430d825588d..fe37ae08ea3c383105417914130c4d92e349ceb0 100644 (file)
@@ -8,10 +8,11 @@
 #include "math_mathmlstream.h"
 #include "math_streamstr.h"
 #include "math_support.h"
+#include "math_parser.h"
 
 
-MathDotsInset::MathDotsInset(string const & name)
-       : name_(name)
+MathDotsInset::MathDotsInset(latexkeys const * key)
+       : key_(key)
 {}
 
 
@@ -21,43 +22,36 @@ MathInset * MathDotsInset::clone() const
 }
 
 
-void MathDotsInset::metrics(MathMetricsInfo const & mi) const
+void MathDotsInset::metrics(MathMetricsInfo & mi) const
 {
-       LyXFont font;
-       whichFont(font, LM_TC_VAR, mi);
-       mathed_char_dim(font, 'M', ascent_, descent_, width_);
-       if (name_ == "ldots" || name_ == "dotsm") 
-               dh_ = 0;
-       else if (name_ == "cdots" || name_ == "dotsb"
-                       || name_ == "dotsm" || name_ == "dotsi")
-               dh_ = ascent_ / 2;
-       else if (name_ == "dotsc")
-               dh_ = ascent_ / 4;
-       else if (name_ == "vdots")
-               width_ /= 2;
-       else if (name_ == "ddots")
-               dh_ = ascent_;
+       mathed_char_dim(mi.base.font, 'M', dim_);
+       dh_ = 0;
+       if (key_->name == "cdots" || key_->name == "dotsb"
+                       || key_->name == "dotsm" || key_->name == "dotsi")
+               dh_ = ascent() / 2;
+       else if (key_->name == "dotsc")
+               dh_ = ascent() / 4;
+       else if (key_->name == "vdots") {
+               dim_.w = (dim_.w / 2) + 1;
+               dh_ = ascent();
+       }
+       else if (key_->name == "ddots")
+               dh_ = ascent();
 }
 
 
-void MathDotsInset::draw(Painter & pain, int x, int y) const
+void MathDotsInset::draw(MathPainterInfo & pain, int x, int y) const
 {
-       mathed_draw_deco(pain, x + 2, y - dh_, width_ - 2, ascent_, name_);
-       if (name_ == "vdots" || name_ == "ddots")
+       mathed_draw_deco(pain, x + 2, y - dh_, width() - 2, ascent(), key_->name);
+       if (key_->name == "vdots" || key_->name == "ddots")
                ++x;
-       if (name_ != "vdots")
+       if (key_->name != "vdots")
                --y;
-       mathed_draw_deco(pain, x + 2, y - dh_, width_ - 2, ascent_, name_);
+       mathed_draw_deco(pain, x + 2, y - dh_, width() - 2, ascent(), key_->name);
 }
 
 
-void MathDotsInset::write(WriteStream & os) const
+string MathDotsInset::name() const
 {
-       os << '\\' << name_ << ' ';
-}
-
-
-void MathDotsInset::normalize(NormalStream & os) const
-{
-       os << "[" << name_ << "] ";
+       return key_->name;
 }