X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ftabular.h;h=d48e8eaa8446ce91876a9b2018aa99774e9021fc;hb=c130d5dbfd3f4d4a2721c9be786b7fa45b806aca;hp=4910024086439589465bd14485e5d2cdd5c27adb;hpb=a464b9b97d0675417c8e344fb7e3d46056128192;p=features.git diff --git a/src/tabular.h b/src/tabular.h index 4910024086..d48e8eaa84 100644 --- a/src/tabular.h +++ b/src/tabular.h @@ -4,7 +4,7 @@ * * LyX, The Document Processor * - * Copyright 2000 The LyX Team. + * Copyright 2000-2001 The LyX Team. * * @author: Jürgen Vigna * @@ -20,6 +20,7 @@ #include #include "lyxlex.h" +#include "layout.h" #include "LString.h" #include "insets/insettext.h" @@ -108,12 +109,16 @@ public: SET_USEBOX, /// SET_LTHEAD, + UNSET_LTHEAD, /// SET_LTFIRSTHEAD, + UNSET_LTFIRSTHEAD, /// SET_LTFOOT, + UNSET_LTFOOT, /// SET_LTLASTFOOT, + UNSET_LTLASTFOOT, /// SET_LTNEWPAGE, /// @@ -152,18 +157,31 @@ public: BOX_MINIPAGE = 2 }; + struct lttype { + // constructor + lttype(); + // row of the header/footer type end definition + int row; + // double borders on top + bool topDL; + // double borders on bottom + bool bottomDL; + }; + /// + typedef struct lttype ltType; + /* konstruktor */ /// LyXTabular(InsetTabular *, int columns_arg, int rows_arg); /// - LyXTabular(InsetTabular *, LyXTabular const &); + LyXTabular(InsetTabular *, LyXTabular const &, bool same_id = false); /// explicit LyXTabular(Buffer const *, InsetTabular *, LyXLex & lex); /// LyXTabular & operator=(LyXTabular const &); /// - LyXTabular * Clone(InsetTabular *); + LyXTabular * clone(InsetTabular *, bool same_id = false); /// Returns true if there is a topline, returns false if not bool TopLine(int cell, bool onlycolumn = false) const; @@ -182,8 +200,7 @@ public: bool IsLastRow(int cell) const; /// - int GetAdditionalHeight(int cell) const; - + int GetAdditionalHeight(int row) const; /// int GetAdditionalWidth(int cell) const; @@ -280,6 +297,8 @@ public: int TeXCellPostamble(std::ostream &, int cell) const; /// int Latex(Buffer const *, std::ostream &, bool, bool) const; + /// auxiliary function for docbook rows + int docbookRow(Buffer const * buf, std::ostream & os, int row) const; /// int DocBook(Buffer const * buf, std::ostream & os) const; /// @@ -343,17 +362,19 @@ public: // // Long Tabular Options /// - void SetLTHead(int cell, bool first); + bool checkLTType(int row, ltType const &) const; + /// + void SetLTHead(ltType const &, bool first); /// - bool GetRowOfLTHead(int cell, int & row) const; + bool GetRowOfLTHead(int row, ltType &) const; /// - bool GetRowOfLTFirstHead(int cell, int & row) const; + bool GetRowOfLTFirstHead(int row, ltType &) const; /// - void SetLTFoot(int cell, bool last); + void SetLTFoot(ltType const &, bool last); /// - bool GetRowOfLTFoot(int cell, int & row) const; + bool GetRowOfLTFoot(int row, ltType &) const; /// - bool GetRowOfLTLastFoot(int cell, int & row) const; + bool GetRowOfLTLastFoot(int row, ltType &) const; /// void SetLTNewPage(int cell, bool what); /// @@ -372,6 +393,8 @@ public: void Validate(LaTeXFeatures &) const; /// std::vector const getLabelList() const; + /// + mutable int cur_cell; private: /// struct cellstruct { @@ -482,18 +505,18 @@ private: /// bool is_long_tabular; /// row of endhead - int endhead; + ltType endhead; /// row of endfirsthead - int endfirsthead; + ltType endfirsthead; /// row of endfoot - int endfoot; + ltType endfoot; /// row of endlastfoot - int endlastfoot; + ltType endlastfoot; /// InsetTabular * owner_; /// - void Init(int columns_arg, int rows_arg); + void Init(int columns_arg, int rows_arg, LyXTabular const * lt = 0); /// void Reinit(); ///