X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FParagraph.h;h=ee61d83bcbbedc97c496b442eae0764c21af0822;hb=2417d9d911dbca181c48f45d1aad26d31c9aa815;hp=c345a5bb6f2459a51846c704b290bac51807693f;hpb=32871c1284f15265f652ff01c438e539a7c8181f;p=lyx.git diff --git a/src/Paragraph.h b/src/Paragraph.h index c345a5bb6f..ee61d83bcb 100644 --- a/src/Paragraph.h +++ b/src/Paragraph.h @@ -17,10 +17,8 @@ #define PARAGRAPH_H #include "Changes.h" -#include "Dimension.h" #include "InsetList.h" #include "lyxlayout_ptr_fwd.h" -#include "RowList_fwd.h" #include "insets/Inset.h" // only for Inset::Code @@ -36,8 +34,8 @@ class InsetBibitem; class LaTeXFeatures; class Inset_code; class Language; -class LyXFont; -class LyXFont_size; +class Font; +class Font_size; class MetricsInfo; class OutputParams; class PainterInfo; @@ -93,7 +91,7 @@ public: /// Language const * getParLanguage(BufferParams const &) const; /// - bool isRightToLeftPar(BufferParams const &) const; + bool isRTL(BufferParams const &) const; /// void changeLanguage(BufferParams const & bparams, Language const * from, Language const * to); @@ -115,17 +113,17 @@ public: void validate(LaTeXFeatures &) const; /// - int startTeXParParams(BufferParams const &, odocstream &, TexRow &, + int startTeXParParams(BufferParams const &, odocstream &, TexRow &, bool) const; /// - int endTeXParParams(BufferParams const &, odocstream &, TexRow &, + int endTeXParParams(BufferParams const &, odocstream &, TexRow &, bool) const; /// bool simpleTeXOnePar(Buffer const &, BufferParams const &, - LyXFont const & outerfont, odocstream &, + Font const & outerfont, odocstream &, TexRow & texrow, OutputParams const &) const; /// Can we drop the standard paragraph wrapper? @@ -141,14 +139,14 @@ public: OutputParams const & runparams) const; /// Checks if the paragraph contains only text and no inset or font change. - bool onlyText(Buffer const & buf, LyXFont const & outerfont, + bool onlyText(Buffer const & buf, Font const & outerfont, pos_type initial) const; /// Writes to stream the docbook representation void simpleDocBookOnePar(Buffer const & buf, odocstream &, OutputParams const & runparams, - LyXFont const & outerfont, + Font const & outerfont, pos_type initial = 0) const; /// @@ -172,9 +170,9 @@ public: bool empty() const { return text_.empty(); } /// - LyXLayout_ptr const & layout() const; + LayoutPtr const & layout() const; /// - void layout(LyXLayout_ptr const & new_layout); + void layout(LayoutPtr const & new_layout); /// This is the item depth, only used by enumerate and itemize signed char itemdepth; @@ -236,7 +234,7 @@ public: docstring const translateIfPossible(docstring const & label, BufferParams const & bparams) const; /// Expand the counters for the labelstring of \c layout - docstring expandLabel(LyXLayout_ptr const &, BufferParams const &, + docstring expandLabel(LayoutPtr const &, BufferParams const &, bool process_appendix = true) const; /// Actual paragraph alignment used char getAlign() const; @@ -245,7 +243,7 @@ public: /// The maximal possible depth of a paragraph after this one depth_type getMaxDepthAfter() const; /// - void applyLayout(LyXLayout_ptr const & new_layout); + void applyLayout(LayoutPtr const & new_layout); /// (logically) erase the char at pos; return true if it was actually erased bool eraseChar(pos_type pos, bool trackChanges); @@ -256,24 +254,24 @@ public: between the characters font and the layoutfont. This is what is stored in the fonttable */ - LyXFont const + Font const getFontSettings(BufferParams const &, pos_type pos) const; /// - LyXFont const getFirstFontSettings(BufferParams const &) const; + Font const getFirstFontSettings(BufferParams const &) const; /** Get fully instantiated font. If pos == -1, use the layout font attached to this paragraph. If pos == -2, use the label font of the layout attached here. In all cases, the font is instantiated, i.e. does not have any - attributes with values LyXFont::INHERIT, LyXFont::IGNORE or - LyXFont::TOGGLE. + attributes with values Font::INHERIT, Font::IGNORE or + Font::TOGGLE. */ - LyXFont const getFont(BufferParams const &, pos_type pos, - LyXFont const & outerfont) const; - LyXFont const getLayoutFont(BufferParams const &, - LyXFont const & outerfont) const; - LyXFont const getLabelFont(BufferParams const &, - LyXFont const & outerfont) const; + Font const getFont(BufferParams const &, pos_type pos, + Font const & outerfont) const; + Font const getLayoutFont(BufferParams const &, + Font const & outerfont) const; + Font const getLabelFont(BufferParams const &, + Font const & outerfont) const; /** * The font returned by the above functions is the same in a * span of characters. This method will return the first and @@ -287,27 +285,27 @@ public: /// Get the char, but mirror all bracket characters if it is right-to-left value_type getUChar(BufferParams const &, pos_type pos) const; /// pos <= size() (there is a dummy font change at the end of each par) - void setFont(pos_type pos, LyXFont const & font); + void setFont(pos_type pos, Font const & font); /// Returns the height of the highest font in range - LyXFont_size highestFontInRange(pos_type startpos, - pos_type endpos, LyXFont_size def_size) const; + Font_size highestFontInRange(pos_type startpos, + pos_type endpos, Font_size def_size) const; /// void insert(pos_type pos, docstring const & str, - LyXFont const & font, Change const & change); + Font const & font, Change const & change); /// void insertChar(pos_type pos, value_type c, bool trackChanges); /// void insertChar(pos_type pos, value_type c, - LyXFont const &, bool trackChanges); + Font const &, bool trackChanges); /// void insertChar(pos_type pos, value_type c, - LyXFont const &, Change const & change); + Font const &, Change const & change); /// void insertInset(pos_type pos, Inset * inset, - Change const & change); + Change const & change); /// void insertInset(pos_type pos, Inset * inset, - LyXFont const &, Change const & change); + Font const &, Change const & change); /// bool insetAllowed(Inset_code code); /// @@ -341,7 +339,7 @@ public: /// returns -1 if inset not found int getPositionOfInset(Inset const * inset) const; - /// returns true if at least one line break or line separator has been deleted + /// returns true if at least one line break or line separator has been deleted /// at the beginning of the paragraph (either physically or logically) bool stripLeadingSpaces(bool trackChanges); @@ -356,12 +354,19 @@ public: ParagraphParameters & params(); /// ParagraphParameters const & params() const; - /// - bool hfillExpansion(Row const & row, pos_type pos) const; - /// Check if we are in a Biblio environment. - /// \retval true if the cursor needs to be moved right. - bool checkBiblio(bool track_changes); + /// Check if we are in a Biblio environment and insert or + /// delete InsetBibitems as necessary. + /// \retval int 1, if we had to add an inset, in which case + /// the cursor will need to move cursor forward; -pos, if we deleted + /// an inset, in which case pos is the position from which the inset + /// was deleted, and the cursor will need to be moved back one if it + /// was previously past that position. Return 0 otherwise. + int checkBiblio(bool track_changes); + + /// For each author, set 'used' to true if there is a change + /// by this author in the paragraph. + void checkAuthors(AuthorList const & authorList); public: /// @@ -370,7 +375,7 @@ public: private: /// - LyXLayout_ptr layout_; + LayoutPtr layout_; /** * Keeping this here instead of in the pimpl makes LyX >10% faster * for average tasks as buffer loading/switching etc.