X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_splitinset.C;h=83a9caf3b38e7aa6cc6ff56506c8e55fe3b83779;hb=b447408de232872fef1537fca542abc23702d572;hp=e7b5c18f182746cd3b83b0d0e9b205b8a4d4f30a;hpb=3b2f6decf27da05ecb59d23ec15636bebbc3953e;p=lyx.git diff --git a/src/mathed/math_splitinset.C b/src/mathed/math_splitinset.C index e7b5c18f18..83a9caf3b3 100644 --- a/src/mathed/math_splitinset.C +++ b/src/mathed/math_splitinset.C @@ -1,31 +1,57 @@ -#ifdef __GNUG__ -#pragma implementation -#endif +/** + * \file math_splitinset.C + * 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. + */ + +#include #include "math_splitinset.h" -#include "support/LOstream.h" +#include "math_data.h" +#include "math_mathmlstream.h" +#include "math_streamstr.h" + +using std::string; +using std::auto_ptr; -MathSplitInset::MathSplitInset(int n) - : MathGridInset(2, n) + +MathSplitInset::MathSplitInset(string const & name) + : MathGridInset(1, 1), name_(name) { setDefaults(); } -MathInset * MathSplitInset::clone() const +auto_ptr MathSplitInset::clone() const +{ + return auto_ptr(new MathSplitInset(*this)); +} + + +char MathSplitInset::defaultColAlign(col_type col) { - return new MathSplitInset(*this); + if (name_ == "split") + return 'l'; + if (name_ == "gathered") + return 'c'; + if (name_ == "aligned") + return (col & 1) ? 'l' : 'r'; + return 'l'; } -void MathSplitInset::write(std::ostream & os, bool fragile) const +void MathSplitInset::write(WriteStream & ws) const { - if (fragile) - os << "\\protect"; - os << "\\begin{split}"; - MathGridInset::write(os, fragile); - if (fragile) - os << "\\protect"; - os << "\\end{split}\n"; + if (ws.fragile()) + ws << "\\protect"; + ws << "\\begin{" << name_ << '}'; + MathGridInset::write(ws); + if (ws.fragile()) + ws << "\\protect"; + ws << "\\end{" << name_ << "}\n"; }