/// set layout over selection
void setLayout(Buffer const & buffer, pit_type start, pit_type end,
- std::string const & layout);
+ docstring const & layout);
/// Set given layout to current cursor position.
/// FIXME: replace Cursor with DocIterator.
- void setLayout(Cursor & cur, std::string const & layout);
+ void setLayout(Cursor & cur, docstring const & layout);
/// what type of depth change to make
enum DEPTH_CHANGE {
/// FIXME: replace Cursor with DocIterator.
void setFont(Cursor & cur, Font const &, bool toggleall = false);
/// Set font from \p begin to \p end and rebreak.
- void setFont(Buffer const & buffer, DocIterator const & begin,
- DocIterator const & end, Font const &,
+ void setFont(Buffer const & buffer, CursorSlice const & begin,
+ CursorSlice const & end, Font const &,
bool toggleall = false);
///
docstring getPossibleLabel(Cursor & cur) const;
/// is this paragraph right-to-left?
bool isRTL(Buffer const &, Paragraph const & par) const;
+ /// is this position in the paragraph right-to-left?
+ bool isRTL(Buffer const & buffer, CursorSlice const & sl, bool boundary) const;
+ /// is between pos-1 and pos an RTL<->LTR boundary?
+ bool isRTLBoundary(Buffer const & buffer, Paragraph const & par,
+ pos_type pos) const;
+ /// would be a RTL<->LTR boundary between pos and the given font?
+ bool isRTLBoundary(Buffer const & buffer, Paragraph const & par,
+ pos_type pos, Font const & font) const;
+
///
bool checkAndActivateInset(Cursor & cur, bool front);
///
int background_color_;
- ///
- mutable Bidi bidi;
///
ParagraphList pars_;
void charInserted();
/// set 'number' font property
void number(Cursor & cur);
+ /// draw selection for a single row
+ void drawRowSelection(PainterInfo & pi, int x, Row const & row,
+ DocIterator const & beg, DocIterator const & end,
+ bool drawOnBegMargin, bool drawOnEndMargin) const;
/// paste plain text at current cursor.
/// \param str string to paste