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

View File

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

View File

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