#define INSET_TABULAR_H
#include "InsetText.h"
-#include "Length.h"
+
+#include "support/Length.h"
#include <climits>
#include <iosfwd>
class Lexer;
class OutputParams;
class Paragraph;
-class XHTMLStream;
+class XMLStream;
///
/// descending into insets
docstring asString(bool intoInsets = true);
///
- docstring xhtml(XHTMLStream &, OutputParams const &) const;
+ docstring xhtml(XMLStream &, OutputParams const &) const;
+ ///
+ void docbook(XMLStream &, OutputParams const &) const;
///
void addToToc(DocIterator const & di, bool output_active,
UpdateType utype, TocBackend & backend) const;
///
void metrics(MetricsInfo &, Dimension &) const;
+ /// Needs to be same as InsetTabular
+ bool inheritFont() const { return false; }
+ /// Can the cell contain several paragraphs?
+ bool allowMultiPar() const { return !isMultiRow && (!isMultiColumn || isFixedWidth); }
private:
/// unimplemented
InsetTableCell();
// FIXME: Here the thoughts from the comment above also apply.
///
LyXAlignment contentAlign;
- /// should paragraph indendation be omitted in any case?
+ /// should paragraph indentation be omitted in any case?
bool neverIndent() const { return true; }
///
LyXAlignment contentAlignment() const { return contentAlign; }
virtual bool forceLocalFontSwitch() const;
/// Is the width forced to some value?
bool hasFixedWidth() const { return isFixedWidth; }
- /// Can the cell contain several paragraphs?
- bool allowMultiPar() const { return !isMultiRow && (!isMultiColumn || isFixedWidth); }
};
///
void insertColumn(col_type column, bool copy);
///
- idx_type getFirstCellInRow(row_type row) const;
+ idx_type getFirstCellInRow(row_type row, bool const ct = false) const;
///
- idx_type getLastCellInRow(row_type row) const;
+ idx_type getLastCellInRow(row_type row, bool const ct = false) const;
+ ///
+ idx_type getFirstRow(bool const ct = false) const;
+ ///
+ idx_type getLastRow(bool const ct = false) const;
///
idx_type numberOfCellsInRow(row_type row) const;
///
void read(Lexer &);
///
void latex(otexstream &, OutputParams const &) const;
+ /// serialise the table in DocBook, according to buffer parameters
+ void docbook(XMLStream &, OutputParams const &) const;
///
- int docbook(odocstream & os, OutputParams const &) const;
- ///
- docstring xhtml(XHTMLStream & os, OutputParams const &) const;
+ docstring xhtml(XMLStream &, OutputParams const &) const;
///
void plaintext(odocstringstream &,
OutputParams const & runparams, int const depth,
/// caption
bool caption;
///
- Change::Type change;
+ Change change;
};
///
typedef std::vector<RowData> row_vector;
///
bool varwidth;
///
- Change::Type change;
+ Change change;
};
///
typedef std::vector<ColumnData> column_vector;
///
// helper function for Latex
///
- void TeXTopHLine(otexstream &, row_type row, std::list<col_type>) const;
+ void TeXTopHLine(otexstream &, row_type row, std::list<col_type>,
+ std::list<col_type>) const;
///
- void TeXBottomHLine(otexstream &, row_type row, std::list<col_type>) const;
+ void TeXBottomHLine(otexstream &, row_type row, std::list<col_type>,
+ std::list<col_type>) const;
///
void TeXCellPreamble(otexstream &, idx_type cell, bool & ismulticol, bool & ismultirow,
bool const bidi) const;
///
void TeXCellPostamble(otexstream &, idx_type cell, bool ismulticol, bool ismultirow) const;
///
- void TeXLongtableHeaderFooter(otexstream &, OutputParams const &, std::list<col_type>) const;
+ void TeXLongtableHeaderFooter(otexstream &, OutputParams const &, std::list<col_type>,
+ std::list<col_type>) const;
///
bool isValidRow(row_type const row) const;
///
void TeXRow(otexstream &, row_type const row,
- OutputParams const &, std::list<col_type>) const;
+ OutputParams const &, std::list<col_type>, std::list<col_type>) const;
///
// helper functions for plain text
///
idx_type cell, row_type row, col_type column,
std::vector<unsigned int> const &,
bool onlydata, size_t max_length) const;
- /// auxiliary function for docbook
- int docbookRow(odocstream & os, row_type, OutputParams const &) const;
- ///
- docstring xhtmlRow(XHTMLStream & xs, row_type, OutputParams const &,
+ /// auxiliary function for DocBook
+ void docbookRow(XMLStream &, row_type, OutputParams const &,
+ bool header = false) const;
+ /// auxiliary function for DocBook: export this row as HTML
+ void docbookRowAsHTML(XMLStream &, row_type, OutputParams const &,
+ bool header) const;
+ /// auxiliary function for DocBook: export this row as CALS
+ void docbookRowAsCALS(XMLStream &, row_type, OutputParams const &) const;
+ ///
+ docstring xhtmlRow(XMLStream & xs, row_type, OutputParams const &,
bool header = false) const;
/// change associated Buffer
bool canTrackChanges() const { return true; }
///
bool canPaintChange(BufferView const &) const { return true; }
- /** returns false if, when outputing LaTeX, font changes should
+ /** returns false if, when outputting LaTeX, font changes should
be closed before generating this inset. This is needed for
insets that may contain several paragraphs */
bool inheritFont() const { return false; }
///
+ bool allowMultiPar() const;
+ ///
bool allowsCaptionVariation(std::string const &) const;
//
bool isTable() const { return true; }
///
- DisplayType display() const;
+ RowFlags rowFlags() const;
///
void latex(otexstream &, OutputParams const &) const;
///
int plaintext(odocstringstream & ods, OutputParams const & op,
size_t max_length = INT_MAX) const;
///
- int docbook(odocstream &, OutputParams const &) const;
+ void docbook(XMLStream &, OutputParams const &) const;
///
- docstring xhtml(XHTMLStream &, OutputParams const &) const;
+ docstring xhtml(XMLStream &, OutputParams const &) const;
///
void validate(LaTeXFeatures & features) const;
///
///
Text * getText(int) const;
+ /// does the inset contain changes ?
+ bool isChanged() const;
/// set the change for the entire inset
void setChange(Change const & change);
/// accept the changes within the inset
/// 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 updateBuffer(ParIterator const &, UpdateType);
+ void updateBuffer(ParIterator const &, UpdateType, bool const deleted = false);
///
void addToToc(DocIterator const & di, bool output_active,
UpdateType utype, TocBackend & backend) const;
/// writes the cells between stidx and enidx as a string, optionally
/// descending into the insets
docstring asString(idx_type stidx, idx_type enidx, bool intoInsets = true);
+ ///
+ ParagraphList asParList(idx_type stidx, idx_type enidx);
/// Returns whether the cell in the specified row and column is selected.
bool isCellSelected(Cursor & cur, row_type row, col_type col) const;