1 | #pragma once |
---|---|
2 | |
3 | #include <set> |
4 | #include <string> |
5 | #include <vector> |
6 | #include <memory> |
7 | |
8 | #include <mbgl/util/noncopyable.hpp> |
9 | |
10 | namespace mbgl { |
11 | |
12 | class BiDi; |
13 | class BiDiImpl; |
14 | |
15 | std::u16string applyArabicShaping(const std::u16string&); |
16 | |
17 | class BiDi : private util::noncopyable { |
18 | public: |
19 | BiDi(); |
20 | ~BiDi(); |
21 | |
22 | std::vector<std::u16string> processText(const std::u16string&, std::set<std::size_t>); |
23 | |
24 | private: |
25 | void mergeParagraphLineBreaks(std::set<std::size_t>&); |
26 | std::vector<std::u16string> applyLineBreaking(std::set<std::size_t>); |
27 | std::u16string getLine(std::size_t start, std::size_t end); |
28 | |
29 | std::unique_ptr<BiDiImpl> impl; |
30 | }; |
31 | |
32 | } // end namespace mbgl |
33 |