]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.h
fix http://bugzilla.lyx.org/show_bug.cgi?id=4998
[lyx.git] / src / insets / InsetTabular.h
index d05c20065a8e42eed821505be4cd2c8cf72f5a14..27b059dd0ecad5a816f07a876a3420b877b0c994 100644 (file)
@@ -160,6 +160,8 @@ public:
                ///
                SET_LTNEWPAGE,
                ///
+               TOGGLE_LTCAPTION,
+               ///
                SET_SPECIAL_COLUMN,
                ///
                SET_SPECIAL_MULTI,
@@ -232,8 +234,6 @@ public:
        /// index indicating an invalid position
        static const idx_type npos = static_cast<idx_type>(-1);
 
-       /// constructor
-       Tabular();
        /// constructor
        Tabular(Buffer const &, col_type columns_arg, row_type rows_arg);
 
@@ -316,12 +316,6 @@ public:
        ///
        Length const getPWidth(idx_type cell) const;
        ///
-       Length const getColumnPWidth(idx_type cell) const;
-       ///
-       Length const getMColumnPWidth(idx_type cell) const;
-       ///
-       docstring const getAlignSpecial(idx_type cell, int what) const;
-       ///
        int cellWidth(idx_type cell) const;
        ///
        int getBeginningOfTextInCell(idx_type cell) const;
@@ -346,8 +340,6 @@ public:
        ///
        idx_type getLastCellInRow(row_type row) const;
        ///
-       idx_type cellCount() const;
-       ///
        idx_type numberOfCellsInRow(idx_type cell) const;
        ///
        void write(std::ostream &) const;
@@ -378,18 +370,6 @@ public:
        ///
        col_type cellRightColumn(idx_type cell) const;
        ///
-       void setBookTabs(bool);
-       ///
-       bool useBookTabs() const;
-       ///
-       void setLongTabular(bool);
-       ///
-       bool isLongTabular() const;
-       ///
-       void setRotateTabular(bool);
-       ///
-       bool getRotateTabular() const;
-       ///
        void setRotateCell(idx_type cell, bool);
        ///
        bool getRotateCell(idx_type cell) const;
@@ -428,6 +408,10 @@ public:
        ///
        bool getLTNewPage(row_type row) const;
        ///
+       idx_type setLTCaption(row_type row, bool what);
+       ///
+       bool ltCaption(row_type row) const;
+       ///
        bool haveLTHead() const;
        ///
        bool haveLTFirstHead() const;
@@ -449,10 +433,6 @@ public:
        ///
        idx_type cellFromInset(Inset const * inset) const;
        ///
-       row_type rowCount() const { return row_info.size(); }
-       ///
-       col_type columnCount() const { return column_info.size();}
-       ///
        void validate(LaTeXFeatures &) const;
        ///
 //private:
@@ -511,10 +491,6 @@ public:
                int ascent;
                ///
                int descent;
-               ///
-               bool top_line;
-               ///
-               bool bottom_line;
                /// Extra space between the top line and this row
                Length top_space;
                /// Ignore top_space if true and use the default top space
@@ -538,6 +514,8 @@ public:
                bool endlastfoot;
                /// row for a newpage
                bool newpage;
+               /// caption
+               bool caption;
        };
        ///
        typedef std::vector<RowData> row_vector;
@@ -552,10 +530,6 @@ public:
                ///
                VAlignment valignment;
                ///
-               bool left_line;
-               ///
-               bool right_line;
-               ///
                int width;
                ///
                Length p_width;
@@ -726,7 +700,7 @@ public:
            insets that may contain several paragraphs */
        bool noFontChange() const { return true; }
        ///
-       DisplayType display() const { return tabular.isLongTabular() ? AlignCenter : Inline; }
+       DisplayType display() const { return tabular.is_long_tabular ? AlignCenter : Inline; }
        ///
        int latex(odocstream &, OutputParams const &) const;
        ///
@@ -752,7 +726,7 @@ public:
        ///
        bool showInsetDialog(BufferView *) const;
        /// number of cells
-       size_t nargs() const { return tabular.cellCount(); }
+       size_t nargs() const { return tabular.numberofcells; }
        ///
        boost::shared_ptr<InsetTableCell const> cell(idx_type) const;
        ///
@@ -810,6 +784,13 @@ public:
        ///
        void completionPosAndDim(Cursor const &, int & x, int & y, Dimension & dim) const;
 
+       ///
+       virtual InsetTabular * asInsetTabular() { return this; }
+       ///
+       virtual InsetTabular const * asInsetTabular() const { return this; }
+       ///
+       bool isRightToLeft(Cursor & cur) const;
+
        //
        // Public structures and variables
        ///
@@ -834,9 +815,11 @@ private:
        void setCursorFromCoordinates(Cursor & cur, int x, int y) const;
 
        ///
-       void moveNextCell(Cursor & cur);
+       void moveNextCell(Cursor & cur, 
+                               EntryDirection entry_from = ENTRY_DIRECTION_IGNORE);
        ///
-       void movePrevCell(Cursor & cur);
+       void movePrevCell(Cursor & cur,
+                               EntryDirection entry_from = ENTRY_DIRECTION_IGNORE);
        ///
        int cellXPos(idx_type cell) const;
        ///
@@ -850,8 +833,6 @@ private:
        ///
        void cutSelection(Cursor & cur);
        ///
-       bool isRightToLeft(Cursor & cur) const;
-       ///
        void getSelection(Cursor & cur, row_type & rs, row_type & re,
                          col_type & cs, col_type & ce) const;
        ///