#include "Layout.h"
#include "Length.h"
-#include <boost/shared_ptr.hpp>
+#include "support/shared_ptr.h"
#include <iosfwd>
#include <vector>
///
COPY_COLUMN,
///
- TOGGLE_LINE_TOP,
+ SET_LINE_TOP,
///
- TOGGLE_LINE_BOTTOM,
+ SET_LINE_BOTTOM,
///
- TOGGLE_LINE_LEFT,
+ SET_LINE_LEFT,
///
+ SET_LINE_RIGHT,
+ ///FIXME: remove
+ TOGGLE_LINE_TOP,
+ ///FIXME: remove
+ TOGGLE_LINE_BOTTOM,
+ ///FIXME: remove
+ TOGGLE_LINE_LEFT,
+ ///FIXME: remove
TOGGLE_LINE_RIGHT,
///
ALIGN_LEFT,
///
ALIGN_BLOCK,
///
+ ALIGN_DECIMAL,
+ ///
VALIGN_TOP,
///
VALIGN_BOTTOM,
///
LONGTABULAR_ALIGN_RIGHT,
///
+ SET_DECIMAL_POINT,
+ ///
LAST_ACTION
};
///
/// Returns true if there is a topline, returns false if not
bool rightLine(idx_type cell) const;
- ///
- bool topAlreadyDrawn(idx_type cell) const;
- ///
- bool leftAlreadyDrawn(idx_type cell) const;
- ///
- bool isLastRow(idx_type cell) const;
-
/// return space occupied by the second horizontal line and
/// interline space above row \p row in pixels
int interRowSpace(row_type row) const;
/* returns the maximum over all rows */
///
- int columnWidth(idx_type cell) const;
+ int cellWidth(idx_type cell) const;
///
- int rowHeight(idx_type cell) const;
+ int cellHeight(idx_type cell) const;
///
int width() const;
///
int height() const;
///
+ row_type nrows() const {return row_info.size();}
+ ///
+ col_type ncols() const {return column_info.size();}
+ ///
int rowAscent(row_type row) const;
///
int rowDescent(row_type row) const;
///
void setRowDescent(row_type row, int height);
///
- void setCellWidth(idx_type cell, int new_width);
- ///
- void setAllLines(idx_type cell, bool line);
- ///
void setTopLine(idx_type cell, bool line);
///
void setBottomLine(idx_type cell, bool line);
///
Length const getPWidth(idx_type cell) const;
///
- int cellWidth(idx_type cell) const;
- ///
int textHOffset(idx_type cell) const;
///
int textVOffset(idx_type cell) const;
///
idx_type getFirstCellInRow(row_type row) const;
///
- bool isLastCellInRow(idx_type cell) const;
- ///
idx_type getLastCellInRow(row_type row) const;
///
- idx_type numberOfCellsInRow(idx_type cell) const;
+ idx_type numberOfCellsInRow(row_type row) const;
///
void write(std::ostream &) const;
///
///
bool isMultiColumn(idx_type cell) const;
///
- bool isMultiColumnReal(idx_type cell) const;
- ///
- void setMultiColumn(idx_type cell, idx_type number);
+ idx_type setMultiColumn(idx_type cell, idx_type number);
///
void unsetMultiColumn(idx_type cell);
///
///
bool isMultiRow(idx_type cell) const;
///
- void setMultiRow(idx_type cell, idx_type number);
+ idx_type setMultiRow(idx_type cell, idx_type number);
///
void unsetMultiRow(idx_type cell);
///
///
col_type cellColumn(idx_type cell) const;
///
- col_type cellRightColumn(idx_type cell) const;
- ///
void setRotateCell(idx_type cell, bool);
///
bool getRotateCell(idx_type cell) const;
///
// end longtable support
///
- boost::shared_ptr<InsetTableCell> cellInset(idx_type cell) const;
+ shared_ptr<InsetTableCell> cellInset(idx_type cell) const;
///
- boost::shared_ptr<InsetTableCell> cellInset(row_type row,
+ shared_ptr<InsetTableCell> cellInset(row_type row,
col_type column) const;
///
void setCellInset(row_type row, col_type column,
- boost::shared_ptr<InsetTableCell>) const;
+ shared_ptr<InsetTableCell>) const;
/// Search for \param inset in the tabular, with the
///
void validate(LaTeXFeatures &) const;
LyXAlignment alignment;
///
VAlignment valignment;
+ /// width of the part before the decimal
+ int decimal_hoffset;
+ /// width of the decimal part
+ int decimal_width;
+ ///
+ int voffset;
///
bool top_line;
///
///
Length p_width; // this is only set for multicolumn!!!
///
- boost::shared_ptr<InsetTableCell> inset;
+ shared_ptr<InsetTableCell> inset;
};
CellData & cellInfo(idx_type cell) const;
///
Length p_width;
///
docstring align_special;
+ ///
+ docstring decimal_point;
};
///
typedef std::vector<ColumnData> column_vector;
void updateIndexes();
///
bool setFixedWidth(row_type r, col_type c);
- ///
- void updateContentAlignment(row_type r, col_type c);
/// return true of update is needed
bool updateColumnWidths();
///
///
void tabularFeatures(Cursor & cur, Tabular::Feature feature,
std::string const & val = std::string());
- ///
- void openLayoutDialog(BufferView *) const;
- ///
- bool showInsetDialog(BufferView *) const;
/// number of cells
size_t nargs() const { return tabular.numberofcells; }
///
- boost::shared_ptr<InsetTableCell const> cell(idx_type) const;
+ shared_ptr<InsetTableCell const> cell(idx_type) const;
///
- boost::shared_ptr<InsetTableCell> cell(idx_type);
+ shared_ptr<InsetTableCell> cell(idx_type);
///
Text * getText(int) const;
/// can we go further down on mouse click?
bool descendable(BufferView const &) const { return true; }
/// Update the counters of this inset and of its contents
- void updateLabels(ParIterator const &, UpdateType);
+ void updateBuffer(ParIterator const &, UpdateType);
///
void addToToc(DocIterator const &);
virtual bool usePlainLayout() const { return true; }
///
- virtual InsetTabular * asInsetTabular() { return this; }
+ InsetTabular * asInsetTabular() { return this; }
///
- virtual InsetTabular const * asInsetTabular() const { return this; }
+ InsetTabular const * asInsetTabular() const { return this; }
///
bool isRightToLeft(Cursor & cur) const;
/// writes the cells between stidx and enidx as a string, optionally
///
void resetPos(Cursor & cur) const;
///
- void removeTabularRow();
- ///
bool copySelection(Cursor & cur);
///
bool pasteClipboard(Cursor & cur);
std::string const featureAsString(Tabular::Feature feature);
+/// Split cell on decimal symbol
+InsetTableCell splitCell(InsetTableCell & head, docstring const decimal_sym, bool & hassep);
+
} // namespace lyx
#endif // INSET_TABULAR_H