X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FBidi.h;h=dfa779ae4947d13a4d4f24c6de9a1c0f99e15b05;hb=1a48d5a96712c72879487542e3f1a7e61ce3f78c;hp=cad9891de452792b8a84dd1621a6d6dd623a97a7;hpb=68b7ef25fb7d2da230d3eb11d6737701abfc2e64;p=lyx.git diff --git a/src/Bidi.h b/src/Bidi.h index cad9891de4..dfa779ae49 100644 --- a/src/Bidi.h +++ b/src/Bidi.h @@ -12,35 +12,39 @@ #ifndef BIDI_H #define BIDI_H -#include - #include "support/types.h" + #include + +namespace lyx { + class Buffer; +class Cursor; class Paragraph; class Row; -class LyXFont; +class Font; /// bidi stuff -struct Bidi { +class Bidi { +public: /// bool isBoundary(Buffer const &, Paragraph const & par, - lyx::pos_type pos) const; + pos_type pos) const; /// bool isBoundary(Buffer const &, Paragraph const & par, - lyx::pos_type pos, LyXFont const & font) const; + pos_type pos, Font const & font) const; /// - lyx::pos_type log2vis(lyx::pos_type pos) const; + pos_type log2vis(pos_type pos) const; /** Maps positions in the logical string to positions * in visual string. */ - lyx::pos_type vis2log(lyx::pos_type pos) const; + pos_type vis2log(pos_type pos) const; /// - lyx::pos_type level(lyx::pos_type pos) const; + pos_type level(pos_type pos) const; /// - bool inRange(lyx::pos_type pos) const; + bool inRange(pos_type pos) const; /// same_direction? bool same_direction() const; /// @@ -50,17 +54,25 @@ private: /// bool same_direction_; /// - std::vector log2vis_list_; + std::vector log2vis_list_; /** Maps positions in the visual string to positions * in logical string. */ - std::vector vis2log_list_; + std::vector vis2log_list_; /// - std::vector levels_; + std::vector levels_; /// - lyx::pos_type start_; + pos_type start_; /// - lyx::pos_type end_; + pos_type end_; }; +/// Should interpretation of the arrow keys be reversed? +bool reverseDirectionNeeded(Cursor const & cur); + +/// Is current paragraph in RTL mode? +bool isWithinRtlParagraph(Cursor const & cur); + +} // namespace lyx + #endif // BIDI_H