X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fparagraph.h;h=1d63feeb038137c533f4a76343c0d9508d05c339;hb=2b378ca3fdbd701b0d5e350e1c6b22155c07a2dc;hp=5f302f4d869e8c8b0a78575468cca3298da3e87c;hpb=30f8a6327f0b8fcfa8cff36faa123c9a3b4c7669;p=lyx.git diff --git a/src/paragraph.h b/src/paragraph.h index 5f302f4d86..1d63feeb03 100644 --- a/src/paragraph.h +++ b/src/paragraph.h @@ -30,7 +30,6 @@ namespace lyx { class Buffer; class BufferParams; -class BufferView; class Counters; class InsetBase; class InsetBibitem; @@ -58,56 +57,11 @@ public: pos_type first, last; }; -/// Helper class for Paragraph Metrics. -/// \todo FIXME: this class deserves its own .[Ch] files. -/// Then, the storage of such object should be done in \c BufferView -/// (most probably in the \c CoordCache class along \c Point objects). -class ParagraphMetrics { -public: - ParagraphMetrics(); - ParagraphMetrics(ParagraphMetrics const & pm); - ParagraphMetrics & operator=(ParagraphMetrics const & pm); - /// - Row & getRow(pos_type pos, bool boundary); - /// - Row const & getRow(pos_type pos, bool boundary) const; - /// - size_t pos2row(pos_type pos) const; - - /// LyXText::redoParagraph updates this - Dimension & dim() { return dim_; } - /// total height of paragraph - unsigned int height() const { return dim_.height(); } - /// total width of paragraph, may differ from workwidth - unsigned int width() const { return dim_.width(); } - /// ascend of paragraph above baseline - unsigned int ascent() const { return dim_.ascent(); } - /// descend of paragraph below baseline - unsigned int descent() const { return dim_.descent(); } - /// LyXText updates the rows using this access point - RowList & rows() { return rows_; } - /// The painter and others use this - RowList const & rows() const { return rows_; } - /// - RowSignature & rowSignature() const { return rowSignature_; } - - /// dump some information to lyxerr - void dump() const; - -private: - /// - mutable RowList rows_; - /// - mutable RowSignature rowSignature_; - /// cached dimensions of paragraph - Dimension dim_; -}; - /// A Paragraph holds all text, attributes and insets in a text paragraph /// \todo FIXME: any reference to ParagraphMetrics (including inheritance) /// should go in order to complete the Model/View separation of this class. -class Paragraph: public ParagraphMetrics { +class Paragraph { public: /// enum { @@ -189,7 +143,7 @@ public: std::string getID(Buffer const & buf, OutputParams const & runparams) const; - // Get the first word of a paragraph, return the position where it left + /// Get the first word of a paragraph, return the position where it left pos_type getFirstWord(Buffer const & buf, odocstream & os, OutputParams const & runparams) const; @@ -328,8 +282,7 @@ public: * The font returned by the above functions is the same in a * span of characters. This method will return the first and * the last positions in the paragraph for which that font is - * the same. This can be used to avoid unnecessary calls to - * getFont. + * the same. This can be used to avoid unnecessary calls to getFont. */ FontSpan fontSpan(pos_type pos) const; /// @@ -385,8 +338,8 @@ public: bool isSeparator(pos_type pos) const { return getChar(pos) == ' '; } /// bool isLineSeparator(pos_type pos) const; - /// True if the character/inset at this point can be part of a word - // Note that digits in particular are considered as letters + /// True if the character/inset at this point can be part of a word. + /// Note that digits in particular are considered as letters bool isLetter(pos_type pos) const; /// returns -1 if inset not found @@ -409,6 +362,10 @@ public: /// 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); + public: /// InsetList insetlist;