X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FRow.h;h=156fd9f671eefb166af633ebb99f1d6609b6aa85;hb=2abde5d16254e8aac29e344442b09e6272000f13;hp=aba7913fdb8a9be8833bbb7359aab42f46573c86;hpb=61d062633cf573ddc1bc3067ff5baf6d62ee9a6c;p=lyx.git diff --git a/src/Row.h b/src/Row.h index aba7913fdb..156fd9f671 100644 --- a/src/Row.h +++ b/src/Row.h @@ -50,7 +50,10 @@ public: // An inset INSET, // Some spacing described by its width, not a string - SPACE + SPACE, + // Spacing until the left margin, with a minimal value given + // by the initial width + MARGINSPACE }; /** @@ -63,9 +66,6 @@ public: : type(t), pos(p), endpos(p + 1), font(f), change(ch) {} - // Return the number of separator in the element (only STRING type) - int countSeparators() const; - // Return total width of element, including separator overhead // FIXME: Cache this value or the number of expanders? double full_width() const { return dim.wid + extra * countExpanders(); } @@ -89,14 +89,16 @@ public: */ pos_type x2pos(int &x) const; /** Break the element in two if possible, so that its width is less - * than \param w. - * \return a vector of elements containing the remainder of - * the text (empty if nothing happened). - * \param width maximum width of the row. - * \param next_width available width on next row. + * than the required values. + * \return true if something has been done ; false if this is + * not needed or not possible. + * \param width: maximum width of the row. + * \param next_width: available width on next rows. * \param force: if true, cut string at any place, even for * languages that wrap at word delimiters; if false, do not * break at all if first element would larger than \c width. + * \param tail: a vector of elements where the remainder of + * the text will be appended (empty if nothing happened). */ // FIXME: ideally last parameter should be Elements&, but it is not possible. bool splitAt(int width, int next_width, bool force, std::vector & tail); @@ -139,7 +141,7 @@ public: Change change; // is it possible to add contents to this element? bool final = false; - // properties with respect to row breaking (made of RowFlag enums) + // properties with respect to row breaking (made of RowFlag enumerators) int row_flags = Inline; friend std::ostream & operator<<(std::ostream & os, Element const & row); @@ -204,9 +206,9 @@ public: /// pos_type endpos() const { return end_; } /// - void right_boundary(bool b) { right_boundary_ = b; } + void end_boundary(bool b) { end_boundary_ = b; } /// - bool right_boundary() const { return right_boundary_; } + bool end_boundary() const { return end_boundary_; } /// void flushed(bool b) { flushed_ = b; } /// @@ -235,8 +237,6 @@ public: /// The offset of the right-most cursor position on the row int right_x() const; - // Return the number of separators in the row - int countSeparators() const; // Set the extra spacing for every expanding character in STRING-type // elements. \param w is the total amount of extra width for the row to be // distributed among expanders. \return false if the justification fails. @@ -247,12 +247,14 @@ public: Font const & f, Change const & ch); /// void add(pos_type pos, char_type const c, - Font const & f, Change const & ch, bool can_break); + Font const & f, Change const & ch); /// void addVirtual(pos_type pos, docstring const & s, Font const & f, Change const & ch); /// void addSpace(pos_type pos, int width, Font const & f, Change const & ch); + /// + void addMarginSpace(pos_type pos, int width, Font const & f, Change const & ch); /// typedef std::vector Elements; @@ -366,7 +368,7 @@ private: /// one behind last pos covered by this row pos_type end_ = 0; // Is there a boundary at the end of the row (display inset...) - bool right_boundary_ = false; + bool end_boundary_ = false; // Shall the row be flushed when it is supposed to be justified? bool flushed_ = false; /// Row dimension.