From: André Pönitz Date: Thu, 26 Jul 2001 14:37:09 +0000 (+0000) Subject: simplify BigopInset handling X-Git-Tag: 1.6.10~20985 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=1db325d20c6442c99106196989fe5ceb6c94d6cc;p=features.git simplify BigopInset handling git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2360 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/mathed/math_bigopinset.C b/src/mathed/math_bigopinset.C index a6dbc948c6..cdf09f4282 100644 --- a/src/mathed/math_bigopinset.C +++ b/src/mathed/math_bigopinset.C @@ -1,13 +1,12 @@ #include "math_bigopinset.h" -#include "Painter.h" -#include "mathed/support.h" +#include "mathed/math_parser.h" #include "support/LOstream.h" using std::ostream; -MathBigopInset::MathBigopInset(string const & name, int id) - : MathInset(0, name), sym_(id) +MathBigopInset::MathBigopInset(const latexkeys * l) + : sym_(l) {} @@ -19,34 +18,30 @@ MathInset * MathBigopInset::clone() const void MathBigopInset::write(ostream & os, bool /* fragile */) const { - //bool f = sym_ != LM_int && sym_ != LM_oint && size() == LM_ST_DISPLAY; - os << '\\' << name(); + os << '\\' << sym_->name; } void MathBigopInset::writeNormal(ostream & os) const { - os << "[bigop " << name() << "] "; + os << "[bigop " << sym_->name << "] "; } void MathBigopInset::metrics(MathStyles st) { - //cerr << "\nBigopDraw: " << name_ << ": " << sym_ << "\n"; size(st); - if (sym_ && (sym_ < 256 || sym_ == LM_oint)) { + if (sym_->id > 0 && sym_->id < 256) { ssym_ = string(); - ssym_ += (sym_ == LM_oint) ? LM_int : sym_; + ssym_ += sym_->id; code_ = LM_TC_BSYM; } else { - ssym_ = name(); + ssym_ = sym_->name; code_ = LM_TC_TEXTRM; } mathed_string_dim(code_, size(), ssym_, ascent_, descent_, width_); - if (sym_ == LM_oint) - width_ += 2; } @@ -56,10 +51,4 @@ void MathBigopInset::draw(Painter & pain, int x, int y) yo(y); drawStr(pain, code_, size_, x, y, ssym_); - - if (sym_ == LM_oint) { - int xx = x - 1; - int yy = y - (ascent_ - descent_) / 2; - pain.arc(xx, yy, width_, width_, 0, 360 * 64, LColor::mathline); - } } diff --git a/src/mathed/math_bigopinset.h b/src/mathed/math_bigopinset.h index eaef44e808..2c1a477b32 100644 --- a/src/mathed/math_bigopinset.h +++ b/src/mathed/math_bigopinset.h @@ -4,11 +4,13 @@ #include "math_inset.h" +struct latexkeys; + /// big operators class MathBigopInset : public MathInset { public: /// - MathBigopInset(string const &, int); + explicit MathBigopInset(latexkeys const *); /// MathInset * clone() const; /// @@ -23,7 +25,7 @@ public: bool isScriptable() const { return true; } private: /// - int sym_; + latexkeys const * sym_; /// string ssym_; /// diff --git a/src/mathed/math_cursor.C b/src/mathed/math_cursor.C index d8ec314f5c..bc1ddf707c 100644 --- a/src/mathed/math_cursor.C +++ b/src/mathed/math_cursor.C @@ -667,7 +667,7 @@ void MathCursor::interpret(string const & s) switch (l->token) { case LM_TK_BIGSYM: case LM_TK_FUNCLIM: - p = new MathBigopInset(s, l->id); + p = new MathBigopInset(l); break; case LM_TK_SYM: { diff --git a/src/mathed/math_hash.C b/src/mathed/math_hash.C index 6c2c4c4365..67139db71f 100644 --- a/src/mathed/math_hash.C +++ b/src/mathed/math_hash.C @@ -184,7 +184,7 @@ latexkeys const wordlist[] = {"nu", LM_TK_SYM, LM_nu, LMB_NONE}, {"nwarrow", LM_TK_SYM, LM_nwarrow, LMB_NONE}, {"odot", LM_TK_SYM, LM_odot, LMB_OPERATOR}, - {"oint", LM_TK_BIGSYM, LM_oint, LMB_NONE}, + //{"oint", LM_TK_BIGSYM, LM_oint, LMB_NONE}, {"omega", LM_TK_SYM, LM_omega, LMB_NONE}, {"ominus", LM_TK_SYM, LM_ominus, LMB_OPERATOR}, {"oplus", LM_TK_SYM, LM_oplus, LMB_OPERATOR}, diff --git a/src/mathed/math_parser.C b/src/mathed/math_parser.C index a9839b8dd2..a07d5ad7e5 100644 --- a/src/mathed/math_parser.C +++ b/src/mathed/math_parser.C @@ -633,7 +633,7 @@ void mathed_parse(MathArray & array, unsigned flags) case LM_TK_BIGSYM: case LM_TK_FUNCLIM: limits = 0; - array.push_back(new MathBigopInset(yylval.l->name, yylval.l->id)); + array.push_back(new MathBigopInset(yylval.l)); break; case LM_TK_SYM: