]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetTabular.h
Added inset-select-all to emacs bindings
[lyx.git] / src / insets / InsetTabular.h
index be1a67f51fcfcad99ac95f7cfc8ff6b6589c1aa9..7be8bb639ab55ec28981307d7609ae7a21c71134 100644 (file)
@@ -81,8 +81,8 @@ private:
        // This boolean is supposed to track whether the cell has had its
        // width explicitly set. We need to know this to determine whether
        // layout changes and paragraph customization are allowed---that is,
-       // we need it in forcePlainLayout() and allowParagraphCustomization(). 
-       // Unfortunately, that information is not readily available in 
+       // we need it in forcePlainLayout() and allowParagraphCustomization().
+       // Unfortunately, that information is not readily available in
        // InsetTableCell. In the case of multicolumn cells, it is present
        // in CellData, and so would be available here if CellData were to
        // become a member of InsetTableCell. But in the other case, it isn't
@@ -92,10 +92,10 @@ private:
        // but the other solutions are no better. These are:
        // (i)  Keep a pointer in InsetTableCell to the table;
        // (ii) Find the table by iterating over the Buffer's insets.
-       // Solution (i) raises the problem of updating the pointer when an 
+       // Solution (i) raises the problem of updating the pointer when an
        // InsetTableCell is copied, and we'd therefore need a copy constructor
-       // in InsetTabular and then in Tabular, which seems messy, given how 
-       // complicated those classes are. Solution (ii) involves a lot of 
+       // in InsetTabular and then in Tabular, which seems messy, given how
+       // complicated those classes are. Solution (ii) involves a lot of
        // iterating, since this information is needed quite often, and so may
        // be quite slow.
        // So, well, if someone can do better, please do!
@@ -111,9 +111,9 @@ private:
        LyXAlignment contentAlignment() const { return contentAlign; }
        ///
        virtual bool usePlainLayout() const { return true; }
-       /// 
+       ///
        virtual bool forcePlainLayout(idx_type = 0) const;
-       /// 
+       ///
        virtual bool allowParagraphCustomization(idx_type = 0) const;
        /// Is the width forced to some value?
        bool hasFixedWidth() const { return isFixedWidth; }
@@ -309,7 +309,7 @@ public:
                LYX_VALIGN_MIDDLE = 1,
                ///
                LYX_VALIGN_BOTTOM = 2
-               
+
        };
        ///
        enum HAlignment {
@@ -472,7 +472,7 @@ public:
        void deleteRow(row_type row);
        ///
        void copyRow(row_type row);
-       ///  
+       ///
        void insertRow(row_type row, bool copy);
        ///
        void moveColumn(col_type col, ColDirection direction);
@@ -545,7 +545,9 @@ public:
        idx_type cellAbove(idx_type cell) const;
        ///
        idx_type cellBelow(idx_type cell) const;
-       ///
+       /// \return the index of the VISIBLE cell at row, column
+       /// this will be the same as the cell in the previous row,
+       /// e.g., if the cell is part of a multirow
        idx_type cellIndex(row_type row, col_type column) const;
        ///
        void setUsebox(idx_type cell, BoxType);
@@ -585,23 +587,33 @@ public:
        bool haveLTCaption(CaptionType captiontype = CAPTION_ANY) const;
        ///
        // end longtable support
-       ///
+
+       //@{
+       /// there is a subtle difference between these two methods.
+       ///   cellInset(r,c);
+       /// and
+       ///   cellInset(cellIndex(r,c));
+       /// can return different things. this is because cellIndex(r,c)
+       /// 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;
+       //@}
        ///
        void setCellInset(row_type row, col_type column,
                          shared_ptr<InsetTableCell>) const;
        /// Search for \param inset in the tabular, with the
        ///
        void validate(LaTeXFeatures &) const;
-//private:
-  // FIXME Now that cells have an InsetTableCell as their insets, rather
-  // than an InsetText, it'd be possible to reverse the relationship here,
-  // so that cell_vector was a vector<InsetTableCell> rather than a 
-  // vector<CellData>, and an InsetTableCell had a CellData as a member,
-  // or perhaps just had its members as members.
+
+       //private:
+       // FIXME Now that cells have an InsetTableCell as their insets, rather
+       // than an InsetText, it'd be possible to reverse the relationship here,
+       // so that cell_vector was a vector<InsetTableCell> rather than a
+       // vector<CellData>, and an InsetTableCell had a CellData as a member,
+       // or perhaps just had its members as members.
        ///
        class CellData {
        public:
@@ -610,9 +622,7 @@ public:
                ///
                CellData(CellData const &);
                ///
-               CellData & operator=(CellData);
-               ///
-               void swap(CellData & rhs);
+               CellData & operator=(CellData const &);
                ///
                idx_type cellno;
                ///
@@ -770,9 +780,9 @@ public:
        ///
        // helper function for Latex
        ///
-       void TeXTopHLine(otexstream &, row_type row, std::string const lang) const;
+       void TeXTopHLine(otexstream &, row_type row, std::string const lang) const;
        ///
-       void TeXBottomHLine(otexstream &, row_type row, std::string const lang) const;
+       void TeXBottomHLine(otexstream &, row_type row, std::string const lang) const;
        ///
        void TeXCellPreamble(otexstream &, idx_type cell, bool & ismulticol, bool & ismultirow) const;
        ///
@@ -959,6 +969,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
        ///
@@ -981,7 +993,7 @@ 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,
@@ -991,8 +1003,6 @@ private:
        ///
        int cellYPos(idx_type cell) const;
        ///
-       void resetPos(Cursor & cur) const;
-       ///
        bool copySelection(Cursor & cur);
        ///
        bool pasteClipboard(Cursor & cur);
@@ -1015,8 +1025,6 @@ private:
                                col_type col_start, col_type col_end) const;
        ///
        mutable idx_type first_visible_cell;
-       ///
-       mutable int scx_;
        /// The vertical offset of the table due to the vertical
        /// alignment with respect to the baseline.
        mutable int offset_valign_;
@@ -1029,7 +1037,7 @@ private:
 std::string const featureAsString(Tabular::Feature feature);
 
 /// Split cell on decimal symbol
-InsetTableCell splitCell(InsetTableCell & head, docstring const decimal_sym, bool & hassep);
+InsetTableCell splitCell(InsetTableCell & head, docstring const decimal_sym, bool & hassep);
 
 } // namespace lyx