]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.h
Merge branch 'master' into biblatex2
[lyx.git] / src / insets / InsetTabular.h
index b23fc85b74c5b0d912713800b0e567badc92a957..1e1379cc7b28df7decf825ef123cd56dcab41faf 100644 (file)
@@ -24,7 +24,6 @@
 #ifndef INSET_TABULAR_H
 #define INSET_TABULAR_H
 
-#include "Inset.h"
 #include "InsetText.h"
 #include "Length.h"
 
@@ -34,8 +33,6 @@
 #include <vector>
 
 
-using std::shared_ptr;
-
 namespace lyx {
 
 class Buffer;
@@ -473,6 +470,9 @@ public:
        ///
        VAlignment getVAlignment(idx_type cell,
                                 bool onlycolumn = false) const;
+       /// The vertical offset of the table due to the vertical
+       /// alignment with respect to the baseline.
+       int offsetVAlignment() const;
        ///
        Length const getPWidth(idx_type cell) const;
        ///
@@ -612,13 +612,13 @@ public:
        /// returns the VISIBLE cell at r,c, which may be the same as the
        /// cell at the previous row or column, if we're dealing with some
        /// multirow or multicell.
-       shared_ptr<InsetTableCell> cellInset(idx_type cell) const;
-       shared_ptr<InsetTableCell> cellInset(row_type row,
-                                                 col_type column) const;
+       std::shared_ptr<InsetTableCell> cellInset(idx_type cell);
+       std::shared_ptr<InsetTableCell> cellInset(row_type row, col_type column);
+       InsetTableCell const * cellInset(idx_type cell) const;
        //@}
        ///
        void setCellInset(row_type row, col_type column,
-                         shared_ptr<InsetTableCell>) const;
+                         std::shared_ptr<InsetTableCell>);
        /// Search for \param inset in the tabular, with the
        ///
        void validate(LaTeXFeatures &) const;
@@ -675,9 +675,12 @@ public:
                ///
                Length p_width; // this is only set for multicolumn!!!
                ///
-               shared_ptr<InsetTableCell> inset;
+               std::shared_ptr<InsetTableCell> inset;
        };
-       CellData & cellInfo(idx_type cell) const;
+       ///
+       CellData const & cellInfo(idx_type cell) const;
+       ///
+       CellData & cellInfo(idx_type cell);
        ///
        typedef std::vector<CellData> cell_vector;
        ///
@@ -753,7 +756,7 @@ public:
        ///
        column_vector column_info;
        ///
-       mutable cell_vvector cell_info;
+       cell_vvector cell_info;
        ///
        Length tabular_width;
        ///
@@ -832,7 +835,9 @@ public:
        /// change associated Buffer
        void setBuffer(Buffer & buffer);
        /// retrieve associated Buffer
-       Buffer & buffer() const { return *buffer_; }
+       Buffer const & buffer() const { return *buffer_; }
+       /// retrieve associated Buffer
+       Buffer & buffer() { return *buffer_; }
 
 private:
        Buffer * buffer_;
@@ -917,9 +922,9 @@ public:
        /// number of cells
        size_t nargs() const { return tabular.numberofcells; }
        ///
-       shared_ptr<InsetTableCell const> cell(idx_type) const;
+       std::shared_ptr<InsetTableCell const> cell(idx_type) const;
        ///
-       shared_ptr<InsetTableCell> cell(idx_type);
+       std::shared_ptr<InsetTableCell> cell(idx_type);
        ///
        Text * getText(int) const;
 
@@ -976,6 +981,9 @@ public:
        void completionPosAndDim(Cursor const &, int & x, int & y, Dimension & dim) const;
        ///
        virtual bool usePlainLayout() const { return true; }
+       ///
+       docstring layoutName() const { return from_ascii("Tabular"); }
+
 
        ///
        InsetTabular * asInsetTabular() { return this; }
@@ -1049,15 +1057,11 @@ private:
        /// return the cell nearest to x, y
        idx_type getNearestCell(BufferView &, int x, int y) const;
 
-       /// test the rotation state of the give cell range.
+       /// test the rotation state of the given cell range.
        bool oneCellHasRotationState(bool rotated,
                                row_type row_start, row_type row_end,
                                col_type col_start, col_type col_end) const;
-       ///
-       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_;
+
        /// true when selecting rows with the mouse
        bool rowselect_;
        /// true when selecting columns with the mouse