* This file is part of LyX, the document processor.
* Licence details can be found in the file COPYING.
*
- * \author André Pönitz
+ * \author André Pönitz
*
* Full author contact details are available in file CREDITS.
*/
///
RowInfo();
///
- int skipPixels() const;
+ int skipPixels(MetricsInfo const & mi) const;
/// cached descent
mutable int descent_;
/// cached ascent
ColInfo();
/// currently possible: 'l', 'c', 'r'
char align_;
- /// cache for drawing
- int h_offset;
/// cached width
mutable int width_;
/// cached offset
public:
/// sets nrows and ncols to 1, vertical alingment to 'c'
- InsetMathGrid();
+ InsetMathGrid(Buffer * buf);
/// Note: columns first!
- InsetMathGrid(col_type m, row_type n);
+ InsetMathGrid(Buffer * buf, col_type m, row_type n);
///
- InsetMathGrid(col_type m, row_type n, char valign, docstring const & halign);
+ InsetMathGrid(Buffer * buf, col_type m, row_type n, char valign,
+ docstring const & halign);
///
void metrics(MetricsInfo & mi, Dimension &) const;
///
void metricsT(TextMetricsInfo const & mi, Dimension & dim) const;
///
void drawT(TextPainter & pi, int x, int y) const;
+ ///
+ void updateBuffer(ParIterator const &, UpdateType);
/// extract number of columns from alignment string
static col_type guessColumns(docstring const & halign);
/// accepts some LaTeX column codes: p,m,!,@,M,<,>
/// swap two columns
virtual void swapCol(col_type c);
///
- virtual void appendRow();
- ///
idx_type index(row_type r, col_type c) const;
///
bool idxBetween(idx_type idx, idx_type from, idx_type to) const;
virtual char defaultColAlign(col_type) { return 'c'; }
///
void setDefaults();
+ ///
+ virtual bool interpretString(Cursor & cur, docstring const & str);
///
virtual int colsep() const;
///
void write(WriteStream & os) const;
///
+ void write(WriteStream & os,
+ row_type beg_row, col_type beg_col,
+ row_type end_row, col_type end_col) const;
+ ///
void normalize(NormalStream &) const;
///
//void maple(MapleStream &) const;
///
void mathmlize(MathStream &) const;
+ ///
+ void htmlize(HtmlStream &) const;
+ ///
+ void htmlize(HtmlStream &, std::string attrib) const;
///
//void octave(OctaveStream &) const;
/// returns y offset of cell compared to inset
int cellYOffset(idx_type idx) const;
/// returns proper 'end of line' code for LaTeX
- virtual docstring eolString(row_type row, bool emptyline,
- bool fragile) const;
+ virtual docstring eolString(row_type row, bool fragile, bool latex,
+ bool last_eoln) const;
/// returns proper 'end of column' code for LaTeX
virtual docstring eocString(col_type col, col_type lastcol) const;
/// splits cells and shifts right part to the next cell
void splitCell(Cursor & cur);
+ /// Column aligmment for display of cell at (\p row, \p col).
+ /// Must not be written to file!
+ virtual char displayColAlign(col_type col, row_type) const { return colinfo_[col].align_; }
+
/// row info.
/// rowinfo_[nrows()] is a dummy row used only for hlines.
std::vector<ColInfo> colinfo_;
/// cell info
std::vector<CellInfo> cellinfo_;
+ ///
+ InsetCode lyxCode() const { return MATH_GRID_CODE; }
+
private:
///
char v_align_; // add approp. type