public:
/// additional per-cell information
- struct CellInfo {
+ class CellInfo {
+ public:
///
CellInfo();
/// a dummy cell before a multicolumn cell
};
/// additional per-row information
- struct RowInfo {
+ class RowInfo {
+ public:
///
RowInfo();
///
/// cached offset
mutable int offset_;
/// how many hlines above this row?
- int lines_;
+ unsigned int lines_;
/// parameter to the line break
LyXLength crskip_;
/// extra distance between lines
};
// additional per-row information
- struct ColInfo {
+ class ColInfo {
+ public:
///
ColInfo();
/// currently possible: 'l', 'c', 'r'
mutable int width_;
/// cached offset
mutable int offset_;
- /// do we need a line to the left?
- bool leftline_;
- /// do we need a line to the right?
- bool rightline_;
/// how many lines to the left of this column?
- int lines_;
+ unsigned int lines_;
/// additional amount to be skipped when drawing
int skip_;
};
///
void draw(PainterInfo & pi, int x, int y) const;
///
+ void drawWithMargin(PainterInfo & pi, int x, int y,
+ int lmargin = 0, int rmargin = 0) const;
+ ///
void metricsT(TextMetricsInfo const & mi, Dimension & dim) const;
///
void drawT(TextPainter & pi, int x, int y) const;
/// pulls cell after pressing erase
void idxGlue(idx_type idx);
- ///
+ /// add a row
virtual void addRow(row_type r);
- ///
+ /// delete a row
virtual void delRow(row_type r);
- ///
+ /// copy a row
virtual void copyRow(row_type r);
- ///
+ /// swap two rows
virtual void swapRow(row_type r);
- ///
+ /// add a column
virtual void addCol(col_type c);
- ///
+ /// delete a column
virtual void delCol(col_type c);
- ///
+ /// copy a column
virtual void copyCol(col_type c);
- ///
+ /// swap two columns
virtual void swapCol(col_type c);
///
virtual void appendRow();
//void octave(OctaveStream &) const;
protected:
- ///
- void priv_dispatch(LCursor & cur, FuncRequest & cmd);
+ virtual void doDispatch(LCursor & cur, FuncRequest & cmd);
///
bool getStatus(LCursor & cur, FuncRequest const & cmd,
FuncStatus & flag) const;
/// returns y offset of cell compared to inset
int cellYOffset(idx_type idx) const;
/// returns proper 'end of line' code for LaTeX
- virtual std::string eolString(row_type row, bool fragile = false) const;
+ virtual std::string eolString(row_type row, bool emptyline,
+ bool fragile) const;
/// returns proper 'end of column' code for LaTeX
virtual std::string eocString(col_type col, col_type lastcol) const;
/// extract number of columns from alignment string
/// splits cells and shifts right part to the next cell
void splitCell(LCursor & cur);
-public:
- /// row info
+ /// row info.
+ /// rowinfo_[nrows()] is a dummy row used only for hlines.
std::vector<RowInfo> rowinfo_;
- /// column info
+ /// column info.
+ /// colinfo_[ncols()] is a dummy column used only for vlines.
std::vector<ColInfo> colinfo_;
/// cell info
std::vector<CellInfo> cellinfo_;