4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
9 * Full author contact details are available in file CREDITS.
15 #include "support/types.h"
33 bool isBoundary(Buffer const &, Paragraph const & par,
36 bool isBoundary(Buffer const &, Paragraph const & par,
37 pos_type pos, Font const & font) const;
38 /** Maps positions in the visual string to positions
41 pos_type log2vis(pos_type pos) const;
42 /** Maps positions in the logical string to positions
45 pos_type vis2log(pos_type pos) const;
47 * The text direction at logical position \param pos.
49 * 0: left-to-right text
50 * 1: right-to-left text
51 * 2: left-to-right text in right-to-left language (aka numbers)
53 pos_type level(pos_type pos) const;
54 /// Is logical position covered by this row?
55 bool inRange(pos_type pos) const;
56 /// Is the whole row in the same direction as the paragraph?
57 bool same_direction() const;
58 /// Compute the data for visual positions.
59 void computeTables(Paragraph const & par,
60 Buffer const &, Row const & row);
65 std::vector<pos_type> log2vis_list_;
66 /** Maps positions in the visual string to positions
69 std::vector<pos_type> vis2log_list_;
71 std::vector<pos_type> levels_;
78 /// Should interpretation of the arrow keys be reversed?
79 bool reverseDirectionNeeded(Cursor const & cur);
81 /// Is current paragraph in RTL mode?
82 bool isWithinRtlParagraph(Cursor const & cur);