X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftabular.h;h=2486a71e2ddeb2b10f5f11534860d952f6858ac2;hb=eead5ba43d0ddf06544ad1b40063981d3788c635;hp=2b34120c857007d93c114b2f5d60df25e2fc8873;hpb=a981100a91cfd2ba76019a4b7ba23cd6cbdde7ad;p=lyx.git diff --git a/src/tabular.h b/src/tabular.h index 2b34120c85..2486a71e2d 100644 --- a/src/tabular.h +++ b/src/tabular.h @@ -12,24 +12,14 @@ #ifndef TABULAR_H #define TABULAR_H -#ifdef __GNUG__ -#pragma interface -#endif - -#include "layout.h" -#include "LString.h" #include "lyxlength.h" - #include "insets/insettext.h" #include #include class InsetTabular; -class BufferParams; -class LaTeXFeatures; -class Buffer; -class LyXLex; +class LatexRunParams; /* The features the text class offers for tables */ @@ -162,10 +152,10 @@ public: BOX_MINIPAGE = 2 }; - struct lttype { + struct ltType { // constructor - lttype(); - // we have this header type (is set in the GetLT... functions) + ltType(); + // we have this header type (is set in the getLT... functions) bool set; // double borders on top bool topDL; @@ -176,142 +166,135 @@ public: // ignored in the output and it is set to be empty! bool empty; }; - /// - typedef struct lttype ltType; - /* konstruktor */ - /// + /// constructor LyXTabular(BufferParams const &, InsetTabular *, int columns_arg, int rows_arg); - /// + /// sort of copy constructor LyXTabular(BufferParams const &, - InsetTabular *, LyXTabular const &, bool same_id = false); + InsetTabular *, LyXTabular const &); /// explicit LyXTabular(Buffer const *, InsetTabular *, LyXLex & lex); - /// - LyXTabular & operator=(LyXTabular const &); - /// - LyXTabular * clone(BufferParams const &, - InsetTabular *, bool same_id = false); /// Returns true if there is a topline, returns false if not - bool TopLine(int cell, bool onlycolumn = false) const; + bool topLine(int cell, bool onlycolumn = false) const; /// Returns true if there is a topline, returns false if not - bool BottomLine(int cell, bool onlycolumn = false) const; + bool bottomLine(int cell, bool onlycolumn = false) const; /// Returns true if there is a topline, returns false if not - bool LeftLine(int cell, bool onlycolumn = false) const; + bool leftLine(int cell, bool onlycolumn = false) const; /// Returns true if there is a topline, returns false if not - bool RightLine(int cell, bool onlycolumn = false) const; + bool rightLine(int cell, bool onlycolumn = false) const; /// - bool TopAlreadyDrawed(int cell) const; + bool topAlreadyDrawn(int cell) const; /// - bool LeftAlreadyDrawed(int cell) const; + bool leftAlreadyDrawn(int cell) const; /// - bool IsLastRow(int cell) const; + bool isLastRow(int cell) const; /// - int GetAdditionalHeight(int row) const; + int getAdditionalHeight(int row) const; /// - int GetAdditionalWidth(int cell) const; + int getAdditionalWidth(int cell) const; /* returns the maximum over all rows */ /// - int GetWidthOfColumn(int cell) const; + int getWidthOfColumn(int cell) const; /// - int GetWidthOfTabular() const; + int getWidthOfTabular() const; /// - int GetAscentOfRow(int row) const; + int getAscentOfRow(int row) const; /// - int GetDescentOfRow(int row) const; + int getDescentOfRow(int row) const; /// - int GetHeightOfTabular() const; + int getHeightOfTabular() const; /// Returns true if a complete update is necessary, otherwise false - bool SetAscentOfRow(int row, int height); + bool setAscentOfRow(int row, int height); /// Returns true if a complete update is necessary, otherwise false - bool SetDescentOfRow(int row, int height); + bool setDescentOfRow(int row, int height); /// Returns true if a complete update is necessary, otherwise false - bool SetWidthOfCell(int cell, int new_width); - /// Returns true if a complete update is necessary, otherwise false - bool SetAllLines(int cell, bool line); - /// Returns true if a complete update is necessary, otherwise false - bool SetTopLine(int cell, bool line, bool onlycolumn = false); - /// Returns true if a complete update is necessary, otherwise false - bool SetBottomLine(int cell, bool line, bool onlycolumn = false); - /// Returns true if a complete update is necessary, otherwise false - bool SetLeftLine(int cell, bool line, bool onlycolumn = false); - /// Returns true if a complete update is necessary, otherwise false - bool SetRightLine(int cell, bool line, bool onlycolumn = false); - /// Returns true if a complete update is necessary, otherwise false - bool SetAlignment(int cell, LyXAlignment align, + bool setWidthOfCell(int cell, int new_width); + /// + void setAllLines(int cell, bool line); + /// + void setTopLine(int cell, bool line, bool onlycolumn = false); + /// + void setBottomLine(int cell, bool line, bool onlycolumn = false); + /// + void setLeftLine(int cell, bool line, bool onlycolumn = false); + /// + void setRightLine(int cell, bool line, bool onlycolumn = false); + /// + void setAlignment(int cell, LyXAlignment align, bool onlycolumn = false); - /// Returns true if a complete update is necessary, otherwise false - bool SetVAlignment(int cell, VAlignment align, - bool onlycolumn = false); /// - bool SetColumnPWidth(int cell, LyXLength const & width); + void setVAlignment(int cell, VAlignment align, + bool onlycolumn = false); /// - bool SetMColumnPWidth(int cell, LyXLength const & width); + void setColumnPWidth(int cell, LyXLength const & width); /// - bool SetAlignSpecial(int cell, string const & special, Feature what); + bool setMColumnPWidth(int cell, LyXLength const & width); /// - LyXAlignment GetAlignment(int cell, bool onlycolumn = false) const; + void setAlignSpecial(int cell, string const & special, Feature what); /// - VAlignment GetVAlignment(int cell, bool onlycolumn = false) const; + LyXAlignment getAlignment(int cell, bool onlycolumn = false) const; /// - LyXLength const GetPWidth(int cell) const; + VAlignment getVAlignment(int cell, bool onlycolumn = false) const; /// - LyXLength const GetColumnPWidth(int cell) const; + LyXLength const getPWidth(int cell) const; /// - LyXLength const GetMColumnPWidth(int cell) const; + LyXLength const getColumnPWidth(int cell) const; /// - string const GetAlignSpecial(int cell, int what) const; + LyXLength const getMColumnPWidth(int cell) const; /// - int GetWidthOfCell(int cell) const; + string const getAlignSpecial(int cell, int what) const; /// - int GetBeginningOfTextInCell(int cell) const; + int getWidthOfCell(int cell) const; /// - void AppendRow(BufferParams const &, int cell); + int getBeginningOfTextInCell(int cell) const; /// - void DeleteRow(int row); + void appendRow(BufferParams const &, int cell); /// - void AppendColumn(BufferParams const &, int cell); + void deleteRow(int row); /// - void DeleteColumn(int column); + void appendColumn(BufferParams const &, int cell); /// - bool IsFirstCellInRow(int cell) const; + void deleteColumn(int column); /// - int GetFirstCellInRow(int row) const; + bool isFirstCellInRow(int cell) const; /// - bool IsLastCellInRow(int cell) const; + int getFirstCellInRow(int row) const; /// - int GetLastCellInRow(int row) const; + bool isLastCellInRow(int cell) const; /// - int GetNumberOfCells() const; + int getLastCellInRow(int row) const; /// - int NumberOfCellsInRow(int cell) const; + int getNumberOfCells() const; /// - void Write(Buffer const *, std::ostream &) const; + int numberOfCellsInRow(int cell) const; /// - void Read(Buffer const *, LyXLex &); + void write(Buffer const *, std::ostream &) const; /// - void OldFormatRead(BufferParams const &, LyXLex &, string const &); + void read(Buffer const *, LyXLex &); /// - int latex(Buffer const *, std::ostream &, bool, bool) const; + int latex(Buffer const *, std::ostream &, + LatexRunParams const &) const; + // + int linuxdoc(Buffer const * buf, std::ostream & os) const; /// int docbook(Buffer const * buf, std::ostream & os, bool mixcont) const; /// int ascii(Buffer const *, std::ostream &, int const depth, bool onlydata, unsigned char delim) const; /// - bool IsMultiColumn(int cell, bool real = false) const; + bool isMultiColumn(int cell, bool real = false) const; /// - void SetMultiColumn(Buffer const *, int cell, int number); + void setMultiColumn(Buffer *, int cell, int number); /// - int UnsetMultiColumn(int cell); // returns number of new cells + int unsetMultiColumn(int cell); // returns number of new cells /// - bool IsPartOfMultiColumn(int row, int column) const; + bool isPartOfMultiColumn(int row, int column) const; /// int row_of_cell(int cell) const; /// @@ -319,55 +302,55 @@ public: /// int right_column_of_cell(int cell) const; /// - void SetLongTabular(bool); + void setLongTabular(bool); /// - bool IsLongTabular() const; + bool isLongTabular() const; /// - void SetRotateTabular(bool); + void setRotateTabular(bool); /// - bool GetRotateTabular() const; + bool getRotateTabular() const; /// - void SetRotateCell(int cell, bool); + void setRotateCell(int cell, bool); /// - bool GetRotateCell(int cell) const; + bool getRotateCell(int cell) const; /// - bool NeedRotating() const; + bool needRotating() const; /// - bool IsLastCell(int cell) const; + bool isLastCell(int cell) const; /// - int GetCellAbove(int cell) const; + int getCellAbove(int cell) const; /// - int GetCellBelow(int cell) const; + int getCellBelow(int cell) const; /// - int GetLastCellAbove(int cell) const; + int getLastCellAbove(int cell) const; /// - int GetLastCellBelow(int cell) const; + int getLastCellBelow(int cell) const; /// - int GetCellNumber(int row, int column) const; + int getCellNumber(int row, int column) const; /// - void SetUsebox(int cell, BoxType); + void setUsebox(int cell, BoxType); /// - BoxType GetUsebox(int cell) const; + BoxType getUsebox(int cell) const; // // Long Tabular Options support functions /// bool checkLTType(int row, ltType const &) const; /// - void SetLTHead(int row, bool flag, ltType const &, bool first); + void setLTHead(int row, bool flag, ltType const &, bool first); /// - bool GetRowOfLTHead(int row, ltType &) const; + bool getRowOfLTHead(int row, ltType &) const; /// - bool GetRowOfLTFirstHead(int row, ltType &) const; + bool getRowOfLTFirstHead(int row, ltType &) const; /// - void SetLTFoot(int row, bool flag, ltType const &, bool last); + void setLTFoot(int row, bool flag, ltType const &, bool last); /// - bool GetRowOfLTFoot(int row, ltType &) const; + bool getRowOfLTFoot(int row, ltType &) const; /// - bool GetRowOfLTLastFoot(int row, ltType &) const; + bool getRowOfLTLastFoot(int row, ltType &) const; /// - void SetLTNewPage(int row, bool what); + void setLTNewPage(int row, bool what); /// - bool GetLTNewPage(int row) const; + bool getLTNewPage(int row) const; /// bool haveLTHead() const; /// @@ -379,28 +362,27 @@ public: /// // end longtable support /// - InsetText * GetCellInset(int cell) const; + InsetText & getCellInset(int cell) const; /// - InsetText * GetCellInset(int row, int column) const; + InsetText & getCellInset(int row, int column) const; /// Search for \param inset in the tabular, with the /// additional hint that it could be at \param maybe_cell - int GetCellFromInset(Inset const * inset, int maybe_cell = -1) const; + int getCellFromInset(InsetOld const * inset, int maybe_cell = -1) const; /// int rows() const { return rows_; } /// int columns() const { return columns_;} /// - InsetTabular * owner() const { return owner_; } + void validate(LaTeXFeatures &) const; /// - void Validate(LaTeXFeatures &) const; - /// - std::vector const getLabelList() const; + void getLabelList(std::vector &) const; /// /// recalculate the widths/heights only! void reinit(); /// +//private: + /// mutable int cur_cell; -private: /// struct cellstruct { /// @@ -434,6 +416,7 @@ private: /// InsetText inset; }; + cellstruct & cellinfo_of_cell(int cell) const; /// typedef std::vector cell_vector; /// @@ -488,12 +471,6 @@ private: /// typedef std::vector column_vector; - /// - void ReadNew(Buffer const * buf, std::istream & is, - LyXLex & lex, string const & l, int const version); - /// - void ReadOld(Buffer const * buf, std::istream & is, - LyXLex & lex, string const & l); /// int rows_; /// @@ -531,30 +508,28 @@ private: InsetTabular * owner_; /// - void Init(BufferParams const &, + void init(BufferParams const &, int columns_arg, int rows_arg, LyXTabular const * lt = 0); /// void Reinit(bool reset_widths = true); /// void set_row_column_number_info(bool oldformat = false); /// Returns true if a complete update is necessary, otherwise false - bool SetWidthOfMulticolCell(int cell, int new_width); + bool setWidthOfMulticolCell(int cell, int new_width); /// void recalculateMulticolumnsOfColumn(int column); /// Returns true if change - bool calculate_width_of_column(int column); + void calculate_width_of_column(int column); /// bool calculate_width_of_column_NMC(int column); // no multi cells /// void calculate_width_of_tabular(); /// - cellstruct * cellinfo_of_cell(int cell) const; - /// void delete_column(int column); /// int cells_in_multicolumn(int cell) const; /// - BoxType UseParbox(int cell) const; + BoxType useParbox(int cell) const; /// void setHeaderFooterRows(int header, int fheader, int footer, int lfooter); /// @@ -569,12 +544,12 @@ private: int TeXCellPostamble(std::ostream &, int cell) const; /// int TeXLongtableHeaderFooter(std::ostream &, Buffer const * buf, - bool fragile, bool fp) const; + LatexRunParams const &) const; /// bool isValidRow(int const row) const; /// int TeXRow(std::ostream &, int const row, Buffer const * buf, - bool fragile, bool fp) const; + LatexRunParams const &) const; /// // helper function for ASCII returns number of newlines ///