store optional eol arg and write it back if necessary

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@2480 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2001-08-10 11:51:06 +00:00
parent 3b870366b4
commit babee598f4
3 changed files with 39 additions and 2 deletions

View File

@ -45,6 +45,7 @@ int MathGridInset::index(int row, int col) const
}
void MathGridInset::halign(string const & hh)
{
int n = hh.size();
@ -54,26 +55,45 @@ void MathGridInset::halign(string const & hh)
colinfo_[i].h_align_ = hh[i];
}
void MathGridInset::halign(char h, int col)
{
colinfo_[col].h_align_ = h;
}
char MathGridInset::halign(int col) const
{
return colinfo_[col].h_align_;
}
void MathGridInset::valign(char c)
{
v_align_ = c;
}
char MathGridInset::valign() const
{
return v_align_;
}
void MathGridInset::vskip(LyXLength const & skip, int row)
{
rowinfo_[row].skip_ = skip;
}
LyXLength MathGridInset::vskip(int row) const
{
return rowinfo_[row].skip_;
}
void MathGridInset::metrics(MathStyles st) const
{
// let the cells adjust themselves
@ -220,6 +240,9 @@ string MathGridInset::eolString(int row) const
if (row == nrows() - 1)
return "";
if (rowinfo_[row].skip_ != LyXLength())
return "\\\\[" + rowinfo_[row].skip_.asLatexString() + "]\n";
// make sure an upcoming '[' does not break anything
MathArray const & c = cell(index(row + 1, 0));
if (c.size() && (*c.begin())->getChar() == '[')
@ -243,6 +266,7 @@ void MathGridInset::addRow(int row)
cells_.insert(cells_.begin() + (row + 1) * ncols(), ncols(), MathXArray());
}
void MathGridInset::appendRow()
{
rowinfo_.push_back(RowInfo());

View File

@ -3,6 +3,7 @@
#define MATH_GRID_H
#include "math_nestinset.h"
#include "vspace.h"
#include "LString.h"
#ifdef __GNUG__
@ -31,6 +32,8 @@ class MathGridInset : public MathNestInset {
bool upperline_;
/// hline below this row?
bool lowerline_;
/// distance
LyXLength skip_;
};
// additional per-row information
@ -71,6 +74,10 @@ public:
///
char valign() const;
///
void vskip(LyXLength const &, int row);
///
LyXLength vskip(int row) const;
///
void resize(short int type, int cols);
///
const RowInfo & rowinfo(int row) const;

View File

@ -237,8 +237,10 @@ private:
///
bool curr_num_;
//
///
string curr_label_;
///
string curr_skip_;
};
@ -410,6 +412,10 @@ void Parser::parse_lines(MathGridInset * p, int col, bool numbered, bool outmost
MathMatrixInset * m = static_cast<MathMatrixInset *>(p);
m->numbered(row, curr_num_);
m->label(row, curr_label_);
if (curr_skip_.size()) {
m->vskip(LyXLength(curr_skip_), row);
curr_skip_.erase();
}
}
#ifdef WITH_WARNINGS
@ -673,7 +679,7 @@ void Parser::parse_into(MathArray & array, unsigned flags)
case LM_TK_NEWLINE:
{
lexArg('['); // ignore things like \\[5pt] for a while
curr_skip_ = lexArg('[');
if (flags & FLAG_NEWLINE) {
flags &= ~FLAG_NEWLINE;
--plevel;