X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetTabular.h;h=f57cbaea13df60710909c94207480ae4ffc6c695;hb=667560114752e668fbd59123faf9d454da632fb0;hp=2763eef0b8bdeda10e998ab67d2c730cc00b3c12;hpb=3a784227823967ce04067c1f6f88e2e63ed2909f;p=lyx.git diff --git a/src/insets/InsetTabular.h b/src/insets/InsetTabular.h index 2763eef0b8..f57cbaea13 100644 --- a/src/insets/InsetTabular.h +++ b/src/insets/InsetTabular.h @@ -28,12 +28,14 @@ #include "InsetText.h" #include "Length.h" -#include "support/shared_ptr.h" - #include #include +#include #include + +using std::shared_ptr; + namespace lyx { class Buffer; @@ -71,7 +73,8 @@ public: /// docstring xhtml(XHTMLStream &, OutputParams const &) const; /// - void addToToc(DocIterator const & di, bool output_active) const; + void addToToc(DocIterator const & di, bool output_active, + UpdateType utype) const; private: /// unimplemented InsetTableCell(); @@ -115,8 +118,16 @@ private: virtual bool forcePlainLayout(idx_type = 0) const; /// virtual bool allowParagraphCustomization(idx_type = 0) const; + /// + virtual bool forceLocalFontSwitch() const; /// Is the width forced to some value? bool hasFixedWidth() const { return isFixedWidth; } + /// Can the cell contain several paragraphs? + /** FIXME this is wrong for multirows, that are limited to one + * paragraph. However, we cannot test for this (see the big + * comment above). + */ + bool allowMultiPar() const { return isFixedWidth; } }; @@ -210,6 +221,8 @@ public: /// UNSET_ALL_LINES, /// + TOGGLE_LONGTABULAR, + /// SET_LONGTABULAR, /// UNSET_LONGTABULAR, @@ -257,6 +270,8 @@ public: /// SET_SPECIAL_MULTICOLUMN, /// + TOGGLE_BOOKTABS, + /// SET_BOOKTABS, /// UNSET_BOOKTABS, @@ -868,6 +883,8 @@ public: bool inheritFont() const { return false; } /// bool allowsCaptionVariation(std::string const &) const; + // + bool isTable() const { return true; } /// DisplayType display() const; /// @@ -890,9 +907,9 @@ public: /// get offset of this cursor slice relative to our upper left corner void cursorPos(BufferView const & bv, CursorSlice const & sl, bool boundary, int & x, int & y) const; - /// - bool tabularFeatures(Cursor & cur, std::string const & what); - /// + /// Executes a space-separated sequence of tabular-features requests + void tabularFeatures(Cursor & cur, std::string const & what); + /// Change a single tabular feature; does not handle undo. void tabularFeatures(Cursor & cur, Tabular::Feature feature, std::string const & val = std::string()); /// number of cells @@ -934,7 +951,8 @@ public: /// Update the counters of this inset and of its contents void updateBuffer(ParIterator const &, UpdateType); /// - void addToToc(DocIterator const & di, bool output_active) const; + void addToToc(DocIterator const & di, bool output_active, + UpdateType utype) const; /// bool completionSupported(Cursor const &) const; @@ -969,6 +987,8 @@ public: /// Returns whether the cell in the specified row and column is selected. bool isCellSelected(Cursor & cur, row_type row, col_type col) const; + /// + void setLayoutForHiddenCells(DocumentClass const & dc); // // Public structures and variables /// @@ -980,10 +1000,20 @@ private: /// void doDispatch(Cursor & cur, FuncRequest & cmd); /// + bool getFeatureStatus(Cursor & cur, std::string const & s, + std::string const & argument, FuncStatus & status) const; + /// bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const; /// Inset * clone() const { return new InsetTabular(*this); } + /// + bool hitSelectRow(BufferView const & bv, int x) const; + /// + bool hitSelectColumn(BufferView const & bv, int y) const; + /// Returns true if coordinates are on row/column selection zones + bool clickable(BufferView const &, int x, int y) const; + /// void drawCellLines(PainterInfo &, int x, int y, row_type row, idx_type cell) const; @@ -1001,8 +1031,6 @@ private: /// int cellYPos(idx_type cell) const; /// - void resetPos(Cursor & cur) const; - /// bool copySelection(Cursor & cur); /// bool pasteClipboard(Cursor & cur); @@ -1024,9 +1052,7 @@ private: row_type row_start, row_type row_end, col_type col_start, col_type col_end) const; /// - mutable idx_type first_visible_cell; - /// - mutable int scx_; + mutable idx_type first_visible_cell_; /// The vertical offset of the table due to the vertical /// alignment with respect to the baseline. mutable int offset_valign_;