X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmathed%2Fmath_inset.C;h=33f2119d5006f8fe7bc98ea6abecdc6d126c48a7;hb=ea53de7c85a432377f87a4e0cc47a027d7793a74;hp=d0b2655b55bfa7594c3efd6613a7504d5d02838e;hpb=f73a9f37f4a7ce429f345546eb21f1a5adb96f29;p=lyx.git diff --git a/src/mathed/math_inset.C b/src/mathed/math_inset.C index d0b2655b55..33f2119d50 100644 --- a/src/mathed/math_inset.C +++ b/src/mathed/math_inset.C @@ -1,238 +1,255 @@ -/* - * File: math_inset.C - * Purpose: Implementation of insets for mathed - * Author: Alejandro Aguilar Sierra - * Created: January 1996 - * Description: +/** + * \file math_inset.C + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * - * Dependencies: Xlib, XForms + * \author Alejandro Aguilar Sierra + * \author André Pönitz * - * Copyright: 1996, 1997 Alejandro Aguilar Sierra - * - * Version: 0.8beta. - * - * You are free to use and modify this code under the terms of - * the GNU General Public Licence version 2 or later. + * Full author contact details are available in file CREDITS. */ -#ifdef __GNUG__ -#pragma implementation -#endif - #include -#include "Lsstream.h" #include "math_inset.h" -#include "math_scriptinset.h" +#include "math_data.h" +#include "math_mathmlstream.h" #include "debug.h" +using std::string; +using std::ostream; +using std::endl; -MathInset::MathInset() -{} +MathInset::size_type MathInset::nargs() const +{ + return 0; +} -MathInset::~MathInset() -{} +MathArray dummyCell; -int MathInset::height() const +MathArray & MathInset::cell(idx_type) { - return ascent() + descent(); + lyxerr << "I don't have a cell 1" << endl; + return dummyCell; } -std::ostream & operator<<(std::ostream & os, MathInset const & inset) +MathArray const & MathInset::cell(idx_type) const { - MathWriteInfo wi(0, os, false); - inset.write(wi); - return os; + lyxerr << "I don't have a cell 2" << endl; + return dummyCell; } -MathInset::size_type 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; } +void MathInset::substitute(MathMacro const &) +{} -MathXArray dummyCell; -MathXArray & MathInset::xcell(idx_type) +bool MathInset::idxNext(LCursor &) const { - lyxerr << "I don't have a cell 1\n"; - return dummyCell; + return false; } -MathXArray const & MathInset::xcell(idx_type) const +bool MathInset::idxRight(LCursor &) const { - lyxerr << "I don't have a cell 2\n"; - return dummyCell; + return false; } -MathArray & MathInset::cell(idx_type) +bool MathInset::idxPrev(LCursor &) const { - lyxerr << "I don't have a cell 3\n"; - return dummyCell.data_; + return false; } -MathArray const & MathInset::cell(idx_type) const +bool MathInset::idxLeft(LCursor &) const { - lyxerr << "I don't have a cell 4\n"; - return dummyCell.data_; + return false; } -void MathInset::substitute(MathMacro const &) -{} +bool MathInset::idxUpDown(LCursor &, bool, int) const +{ + return false; +} -bool MathInset::idxNext(idx_type &, pos_type &) const +bool MathInset::idxUpDown2(LCursor &, bool, int) const { return false; } -bool MathInset::idxRight(idx_type &, pos_type &) const +bool MathInset::idxFirst(LCursor &) const { return false; } -bool MathInset::idxPrev(idx_type &, pos_type &) const +bool MathInset::idxLast(LCursor &) const { return false; } -bool MathInset::idxLeft(idx_type &, pos_type &) const +bool MathInset::idxHome(LCursor &) const { return false; } -bool MathInset::idxUp(idx_type &, pos_type &) const +bool MathInset::idxEnd(LCursor &) const { return false; } -bool MathInset::idxDown(idx_type &, pos_type &) const +void MathInset::getScreenPos(idx_type, pos_type, int & x, int & y) const { - return false; + lyxerr << "MathInset::getScreenPos() called directly!" << endl; + x = y = 0; } -bool MathInset::idxFirst(idx_type &, pos_type &) const +void MathInset::dump() const { - return false; + lyxerr << "---------------------------------------------" << endl; + WriteStream wi(lyxerr, false, true); + write(wi); + lyxerr << "\n---------------------------------------------" << endl; } -bool MathInset::idxLast(idx_type &, pos_type &) const +bool MathInset::idxBetween(idx_type idx, idx_type from, idx_type to) const { - return false; + return from <= idx && idx <= to; } -bool MathInset::idxHome(idx_type &, pos_type &) const +void MathInset::drawSelection(PainterInfo &, + idx_type, pos_type, idx_type, pos_type) const { - return false; + lyxerr << "MathInset::drawSelection() called directly!" << endl; } -bool MathInset::idxEnd(idx_type &, pos_type &) const +void MathInset::metricsT(TextMetricsInfo const &, Dimension &) const { - return false; +#ifdef WITH_WARNINGS + lyxerr << "MathInset::metricsT(Text) called directly!" << endl; +#endif } -void MathInset::idxDelete(idx_type &, 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(idx_type, idx_type) -{} + +void MathInset::write(WriteStream & os) const +{ + os << '\\' << name().c_str(); + os.pendingSpace(true); +} -void MathInset::writeNormal(std::ostream & os) const +void MathInset::normalize(NormalStream & os) const { - os << "[unknown "; - MathWriteInfo wi(0, os, false); - write(wi); - os << "] "; + os << '[' << name().c_str() << "] "; } -void MathInset::dump() const +void MathInset::octave(OctaveStream & os) const { - lyxerr << "---------------------------------------------\n"; - MathWriteInfo wi(0, lyxerr, false); - write(wi); - lyxerr << "\n---------------------------------------------\n"; + NormalStream ns(os.os()); + normalize(ns); } -bool MathInset::covers(int, int) const +void MathInset::maple(MapleStream & os) const { - lyxerr << "MathInset::covers() called directly!\n"; - return false; + NormalStream ns(os.os()); + normalize(ns); } -void MathInset::validate(LaTeXFeatures &) const -{} +void MathInset::maxima(MaximaStream & os) const +{ + MapleStream ns(os.os()); + maple(ns); +} -std::vector - MathInset::idxBetween(idx_type from, idx_type to) const +void MathInset::mathematica(MathematicaStream & os) const { - std::vector res; - for (idx_type i = from; i <= to; ++i) - res.push_back(i); - return res; + NormalStream ns(os.os()); + normalize(ns); } -void MathInset::metrics(MathMetricsInfo const &) const +void MathInset::mathmlize(MathMLStream & os) const { - lyxerr << "MathInset::metrics() called directly!\n"; + NormalStream ns(os.os()); + normalize(ns); } -void MathInset::draw(Painter &, int, int) const +int MathInset::plaintext(std::ostream &, OutputParams const &) const { - lyxerr << "MathInset::draw() called directly!\n"; + return 0; } -void MathInset::write(MathWriteInfo &) const +int MathInset::linuxdoc(std::ostream &, OutputParams const &) const { - lyxerr << "MathInset::write() called directly!\n"; + return 0; } -string MathInset::octavize() const +int MathInset::docbook(std::ostream &, OutputParams const &) const { - ostringstream os; - writeNormal(os); - return os.str(); - return string(); + return 0; } -string MathInset::maplize() const +string const & MathInset::getType() const { - return octavize(); + static string const t("none"); + return t; +} + + +string MathInset::name() const +{ + return "unknown"; +} + + +ostream & operator<<(ostream & os, MathAtom const & at) +{ + WriteStream wi(os, false, false); + at->write(wi); + return os; } -string MathInset::mathmlize() const +string MathInset::fileInsetLabel() const { - return string(); + return "Formula"; }