X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_inset.C;h=1a9b26d3e5d3924af921f8105d1240eea70ff8fd;hb=f1ff990de782f1a4c3ae14902f5242bdb012b264;hp=c086bb9b504508db591b3f72d208e01b08080b8d;hpb=244d75e9422f046ec150412e0e43a479f9abed90;p=lyx.git diff --git a/src/mathed/math_inset.C b/src/mathed/math_inset.C index c086bb9b50..1a9b26d3e5 100644 --- a/src/mathed/math_inset.C +++ b/src/mathed/math_inset.C @@ -1,9 +1,9 @@ /* * File: math_inset.C * Purpose: Implementation of insets for mathed - * Author: Alejandro Aguilar Sierra + * Author: Alejandro Aguilar Sierra * Created: January 1996 - * Description: + * Description: * * Dependencies: Xlib, XForms * @@ -15,299 +15,258 @@ * the GNU General Public Licence version 2 or later. */ -#ifdef __GNUG__ -#pragma implementation -#endif +#include #include "math_inset.h" +#include "math_scriptinset.h" +#include "math_mathmlstream.h" +#include "math_cursor.h" #include "debug.h" +#include "frontends/LyXView.h" +#include "frontends/Dialogs.h" +#include "BufferView.h" +#include "formulabase.h" -int MathInset::workwidth; - - -MathInset::MathInset(string const & name) - : name_(name), size_(LM_ST_DISPLAY), code_(LM_TC_MIN), xo_(0), yo_(0) -{} - - -int MathInset::height() const -{ - return ascent() + descent(); -} - - -string const & MathInset::name() const -{ - return name_; -} - - -void MathInset::setName(string const & n) -{ - name_ = n; -} - - -MathStyles MathInset::size() const -{ - return size_; -} +using std::ostream; +using std::endl; -void MathInset::size(MathStyles s) +BufferView * MathInset::view() const { - size_ = s; + return mathcursor ? mathcursor->formula()->view() : 0; } -std::ostream & operator<<(std::ostream & os, MathInset const & inset) +MathInset::size_type MathInset::nargs() const { - inset.write(os, false); - return os; + return 0; } -int MathInset::xo() const -{ - return xo_; -} +MathArray dummyCell; - -int MathInset::yo() const +MathArray & MathInset::cell(idx_type) { - return yo_; -} - - -void MathInset::xo(int x) -{ - xo_ = x; + lyxerr << "I don't have a cell 1" << endl; + return dummyCell; } -void MathInset::yo(int y) +MathArray const & MathInset::cell(idx_type) const { - yo_ = y; + lyxerr << "I don't have a cell 2" << endl; + return dummyCell; } -int MathInset::nargs() const +MathInset::idx_type MathInset::index(row_type row, col_type col) const { + if (row != 0) + lyxerr << "illegal row: " << row << endl; + if (col != 0) + lyxerr << "illegal col: " << col << endl; return 0; } - -MathXArray dummyCell; - -MathXArray & MathInset::xcell(int) -{ - lyxerr << "I don't have a cell\n"; - return dummyCell; -} - - -MathXArray const & MathInset::xcell(int) const -{ - lyxerr << "I don't have a cell\n"; - return dummyCell; -} +void MathInset::substitute(MathMacro const &) +{} -MathArray & MathInset::cell(int) +bool MathInset::idxNext(idx_type &, pos_type &) const { - lyxerr << "I don't have a cell\n"; - return dummyCell.data_; + return false; } -MathArray const & MathInset::cell(int) const +bool MathInset::idxRight(idx_type &, pos_type &) const { - lyxerr << "I don't have a cell\n"; - return dummyCell.data_; + return false; } -void MathInset::substitute(MathArray & array, MathMacro const &) const +bool MathInset::idxPrev(idx_type &, pos_type &) const { - array.push_back(clone()); + return false; } -bool MathInset::idxNext(int &, int &) const +bool MathInset::idxLeft(idx_type &, pos_type &) const { return false; } -bool MathInset::idxRight(int &, int &) const +bool MathInset::idxUpDown(idx_type &, pos_type &, bool, int) const { return false; } -bool MathInset::idxPrev(int &, int &) const +bool MathInset::idxUpDown2(idx_type &, pos_type &, bool, int) const { return false; } -bool MathInset::idxLeft(int &, int &) const +bool MathInset::idxFirst(idx_type &, pos_type &) const { return false; } -bool MathInset::idxUp(int &, int &) const +bool MathInset::idxLast(idx_type &, pos_type &) const { return false; } -bool MathInset::idxDown(int &, int &) const +bool MathInset::idxHome(idx_type &, pos_type &) const { return false; } -bool MathInset::idxFirst(int &, int &) const +bool MathInset::idxEnd(idx_type &, pos_type &) const { return false; } -bool MathInset::idxLast(int &, int &) const +void MathInset::getPos(idx_type, pos_type, int & x, int & y) const { - return false; + lyxerr << "MathInset::getPos() called directly!" << endl; + x = y = 0; } -bool MathInset::idxHome(int &, int &) const +void MathInset::dump() const { - return false; + lyxerr << "---------------------------------------------" << endl; + WriteStream wi(lyxerr, false, true); + write(wi); + lyxerr << "\n---------------------------------------------" << endl; } -bool MathInset::idxEnd(int &, int &) const +bool MathInset::idxBetween(idx_type idx, idx_type from, idx_type to) const { - return false; + return from <= idx && idx <= to; } -bool MathInset::idxFirstUp(int &, int &) const +void MathInset::drawSelection(PainterInfo &, + idx_type, pos_type, idx_type, pos_type) const { - return false; + lyxerr << "MathInset::drawSelection() called directly!" << endl; } -bool MathInset::idxFirstDown(int &, int &) const +void MathInset::metricsT(TextMetricsInfo const &, Dimension &) const { - return false; +#ifdef WITH_WARNINGS + lyxerr << "MathInset::metricsT(Text) called directly!" << endl; +#endif } -void MathInset::idxDelete(int &, bool & popit, bool & deleteit) +void MathInset::drawT(TextPainter &, int, int) const { - popit = false; - deleteit = false; +#ifdef WITH_WARNINGS + lyxerr << "MathInset::drawT(Text) called directly!" << endl; +#endif } -void MathInset::idxDeleteRange(int, int) -{} - -bool MathInset::idxLastUp(int &, int &) const +void MathInset::write(WriteStream & os) const { - return false; + os << '\\' << name().c_str(); + os.pendingSpace(true); } -bool MathInset::idxLastDown(int &, int &) const +void MathInset::normalize(NormalStream & os) const { - return false; + os << '[' << name().c_str() << "] "; } -void MathInset::getXY(int & x, int & y) const +void MathInset::octave(OctaveStream & os) const { - x = xo(); - y = yo(); + NormalStream ns(os.os()); + normalize(ns); } -/* -void MathInset::userSetSize(MathStyles sz) +void MathInset::maple(MapleStream & os) const { - if (sz >= 0) { - size_ = sz; - flag = flag & ~LMPF_FIXED_SIZE; - } + NormalStream ns(os.os()); + normalize(ns); } -*/ -void MathInset::writeNormal(std::ostream & os) const + +void MathInset::maxima(MaximaStream & os) const { - os << "[" << name_ << "] "; + MapleStream ns(os.os()); + maple(ns); } -void MathInset::dump() const +void MathInset::mathematica(MathematicaStream & os) const { - lyxerr << "---------------------------------------------\n"; - write(lyxerr, false); - lyxerr << "\n---------------------------------------------\n"; + NormalStream ns(os.os()); + normalize(ns); } -void MathInset::push_back(unsigned char, MathTextCodes) +void MathInset::mathmlize(MathMLStream & os) const { - lyxerr << "can't push without a cell\n"; + NormalStream ns(os.os()); + normalize(ns); } -void MathInset::push_back(MathInset *) +int MathInset::ascii(std::ostream &, int) const { - lyxerr << "can't push without a cell\n"; + return 0; } -bool MathInset::covers(int x, int y) const +int MathInset::linuxdoc(std::ostream &) const { - return - x >= xo_ && - x <= xo_ + width() && - y >= yo_ - ascent() && - y <= yo_ + descent(); + return 0; } -void MathInset::validate(LaTeXFeatures &) const -{} +int MathInset::docbook(std::ostream &, bool) const +{ + return 0; +} -std::vector MathInset::idxBetween(int from, int to) const +string const & MathInset::getType() const { - std::vector res; - for (int i = from; i <= to; ++i) - res.push_back(i); - return res; + static string const t("none"); + return t; } -MathTextCodes MathInset::code() const +string MathInset::name() const { - return code_; + return "unknown"; } -void MathInset::code(MathTextCodes t) +ostream & operator<<(ostream & os, MathAtom const & at) { - code_ = t; + WriteStream wi(os, false, false); + at->write(wi); + return os; } -void MathInset::metrics(MathStyles st) +string MathInset::fileInsetLabel() const { - size_ = st; + return "Formula"; }