]> git.lyx.org Git - features.git/blobdiff - src/Row.cpp
DocBook: remove unused variable.
[features.git] / src / Row.cpp
index 423768f9bd48813b4eace31c3fdf26b5888162aa..f2d4aafe85be45993ff7322888a994354a5b068f 100644 (file)
@@ -114,6 +114,7 @@ pos_type Row::Element::x2pos(int &x) const
                break;
        case INSET:
        case SPACE:
+       case MARGINSPACE:
                // those elements contain only one position. Round to
                // the closest side.
                if (x > (full_width() + 1) / 2) {
@@ -313,6 +314,9 @@ ostream & operator<<(ostream & os, Row::Element const & e)
                break;
        case Row::SPACE:
                os << "SPACE: ";
+               break;
+       case Row::MARGINSPACE:
+               os << "MARGINSPACE: ";
        }
        os << "width=" << e.full_width() << ", row_flags=" << e.row_flags;
        return os;
@@ -456,12 +460,12 @@ void Row::add(pos_type const pos, Inset const * ins, Dimension const & dim,
 
 
 void Row::add(pos_type const pos, char_type const c,
-              Font const & f, Change const & ch, bool can_break)
+              Font const & f, Change const & ch)
 {
        if (!sameString(f, ch)) {
                finalizeLast();
                Element e(STRING, pos, f, ch);
-               e.row_flags = can_break ? CanBreakInside : Inline;
+               e.row_flags = CanBreakInside;
                elements_.push_back(e);
        }
        back().str += c;
@@ -498,6 +502,18 @@ void Row::addSpace(pos_type const pos, int const width,
 }
 
 
+void Row::addMarginSpace(pos_type const pos, int const width,
+                  Font const & f, Change const & ch)
+{
+       finalizeLast();
+       Element e(MARGINSPACE, pos, f, ch);
+       e.dim.wid = width;
+       e.row_flags = NoBreakBefore;
+       elements_.push_back(e);
+       dim_.wid += e.dim.wid;
+}
+
+
 void Row::push_back(Row::Element const & e)
 {
        dim_.wid += e.dim.wid;
@@ -521,7 +537,7 @@ void moveElements(Row::Elements & from, Row::Elements::iterator const & it,
        to.insert(to.end(), it, from.end());
        from.erase(it, from.end());
        if (!from.empty())
-               from.back().row_flags = (from.back().row_flags & ~AfterFlags) | BreakAfter;
+               from.back().row_flags = (from.back().row_flags & ~AfterFlags) | AlwaysBreakAfter;
 }
 
 }
@@ -629,7 +645,9 @@ Row::Elements Row::shortenIfNeeded(int const w, int const next_width)
                return tail;
        }
 
-       return Elements();
+       // cit == beg; remove all elements after the first one.
+       moveElements(elements_, cit + 1, tail);
+       return tail;
 }