]> git.lyx.org Git - lyx.git/blobdiff - src/Bidi.h
Try to fix compilation on cygwin
[lyx.git] / src / Bidi.h
index a2b49b1fc11e0b1b8922222170e7d026651db748..c406a7a2b52ed995ab5e5f8f0f8a1be2c5f8524f 100644 (file)
 #define BIDI_H
 
 #include "support/types.h"
+
 #include <vector>
 
 
 namespace lyx {
 
 class Buffer;
+class Cursor;
 class Paragraph;
 class Row;
 class Font;
@@ -33,19 +35,27 @@ public:
        ///
        bool isBoundary(Buffer const &, Paragraph const & par,
                                pos_type pos, Font const & font) const;
-       ///
+       /** Maps positions in the visual string to positions
+        *  in logical string.
+        */
        pos_type log2vis(pos_type pos) const;
        /** Maps positions in the logical string to positions
         *  in visual string.
         */
        pos_type vis2log(pos_type pos) const;
-       ///
+       /* 
+        * The text direction at logical position \param pos.
+        * Possible values are
+        *  0: left-to-right text
+        *  1: right-to-left text
+        *  2: left-to-right text in right-to-left language (aka numbers)
+        */
        pos_type level(pos_type pos) const;
-       ///
+       /// Is logical position covered by this row?
        bool inRange(pos_type pos) const;
-       /// same_direction?
+       /// Is the whole row in the same direction as the paragraph?
        bool same_direction() const;
-       ///
+       /// Compute the data for visual positions. 
        void computeTables(Paragraph const & par,
                           Buffer const &, Row const & row);
 private:
@@ -65,6 +75,11 @@ private:
        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