#ifndef INSET_TABULAR_H
#define INSET_TABULAR_H
+#include "Changes.h"
#include "InsetText.h"
#include "support/Length.h"
+#include "support/types.h"
#include <climits>
#include <iosfwd>
class FuncStatus;
class Lexer;
class OutputParams;
-class Paragraph;
class XMLStream;
///
void toggleFixedWidth(bool fw) { isFixedWidth = fw; }
///
+ void toggleVarWidth(bool vw) { isVarwidth = vw; }
+ ///
void toggleMultiCol(bool m) { isMultiColumn = m; }
///
void toggleMultiRow(bool m) { isMultiRow = m; }
///
- void setContentAlignment(LyXAlignment al) {contentAlign = al; }
+ void setContentAlignment(LyXAlignment al) { contentAlign = al; }
/// writes the contents of the cell as a string, optionally
/// descending into insets
docstring asString(bool intoInsets = true);
bool inheritFont() const override { return false; }
/// Can the cell contain several paragraphs?
bool allowMultiPar() const override { return !isMultiRow && (!isMultiColumn || isFixedWidth); }
+ ///
+ bool canPaintChange(BufferView const &) const override { return false; }
+ /// This assures we never output \maketitle in table cells
+ bool isInTitle() const override { return true; }
private:
- /// unimplemented
- InsetTableCell();
- /// unimplemented
- void operator=(InsetTableCell const &);
+ ///
+ InsetTableCell() = delete;
+ ///
+ void operator=(InsetTableCell const &) = delete;
// FIXME
// These booleans are supposed to track whether the cell has had its
// width explicitly set and whether it is part of a multicolumn, respectively.
///
bool isFixedWidth;
///
+ bool isVarwidth;
+ ///
bool isMultiColumn;
///
bool isMultiRow;
///
bool usePlainLayout() const override { return true; }
///
- bool forcePlainLayout(idx_type = 0) const override;
- ///
bool allowParagraphCustomization(idx_type = 0) const override;
///
bool forceLocalFontSwitch() const override;
bool empty;
};
- /// type for row numbers
- typedef size_t row_type;
- /// type for column numbers
- typedef size_t col_type;
- /// type for cell indices
- typedef size_t idx_type;
/// index indicating an invalid position
static const idx_type npos = static_cast<idx_type>(-1);
///
void insertRow(row_type row, bool copy);
///
- void moveColumn(col_type col, ColDirection direction);
+ void moveColumn(col_type col_start, col_type col_end,
+ ColDirection direction);
///
- void moveRow(row_type row, RowDirection direction);
+ void moveRow(row_type row_start, row_type row_end,
+ RowDirection direction);
///
void appendColumn(col_type column);
///
bool canTrackChanges() const override { return true; }
///
bool canPaintChange(BufferView const &) const override { return true; }
- /** 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 override { return false; }
///
bool allowMultiPar() const override;
//
bool isTable() const override { return true; }
///
- RowFlags rowFlags() const override;
+ int rowFlags() const override;
///
void latex(otexstream &, OutputParams const &) const override;
///
/// should all paragraphs be output with "Standard" layout?
bool allowParagraphCustomization(idx_type cell = 0) const override;
///
- bool forcePlainLayout(idx_type cell = 0) const override;
- ///
void addPreview(DocIterator const & inset_pos,
graphics::PreviewLoader &) const override;