]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.h
Fix a number of other uninitialized members.
[lyx.git] / src / insets / InsetTabular.h
index 2763eef0b8bdeda10e998ab67d2c730cc00b3c12..f57cbaea13df60710909c94207480ae4ffc6c695 100644 (file)
 #include "InsetText.h"
 #include "Length.h"
 
-#include "support/shared_ptr.h"
-
 #include <climits>
 #include <iosfwd>
+#include <memory>
 #include <vector>
 
+
+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_;