Index: core/include/fxcrt/fx_bidi.h |
diff --git a/core/include/fxcrt/fx_bidi.h b/core/include/fxcrt/fx_bidi.h |
deleted file mode 100644 |
index 4ea17dae861badc6922ad8b5f7a7b97adba14326..0000000000000000000000000000000000000000 |
--- a/core/include/fxcrt/fx_bidi.h |
+++ /dev/null |
@@ -1,73 +0,0 @@ |
-// Copyright 2014 PDFium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
- |
-#ifndef CORE_INCLUDE_FXCRT_FX_BIDI_H_ |
-#define CORE_INCLUDE_FXCRT_FX_BIDI_H_ |
- |
-#include <memory> |
-#include <vector> |
- |
-#include "core/include/fxcrt/fx_string.h" |
-#include "core/include/fxcrt/fx_system.h" |
- |
-// Processes characters and group them into segments based on text direction. |
-class CFX_BidiChar { |
- public: |
- enum Direction { NEUTRAL, LEFT, RIGHT }; |
- struct Segment { |
- int32_t start; // Start position. |
- int32_t count; // Character count. |
- Direction direction; // Segment direction. |
- }; |
- |
- CFX_BidiChar(); |
- |
- // Append a character and classify it as left, right, or neutral. |
- // Returns true if the character has a different direction than the |
- // existing direction to indicate there is a segment to process. |
- bool AppendChar(FX_WCHAR wch); |
- |
- // Call this after the last character has been appended. AppendChar() |
- // must not be called after this. |
- // Returns true if there is still a segment to process. |
- bool EndChar(); |
- |
- // Call after a change in direction is indicated by the above to get |
- // information about the segment to process. |
- Segment GetSegmentInfo() const { return m_LastSegment; } |
- |
- private: |
- void StartNewSegment(CFX_BidiChar::Direction direction); |
- |
- Segment m_CurrentSegment; |
- Segment m_LastSegment; |
-}; |
- |
-class CFX_BidiString { |
- public: |
- using const_iterator = std::vector<CFX_BidiChar::Segment>::const_iterator; |
- explicit CFX_BidiString(const CFX_WideString& str); |
- |
- // Overall direction is always LEFT or RIGHT, never NEUTRAL. |
- CFX_BidiChar::Direction OverallDirection() const { |
- return m_eOverallDirection; |
- } |
- |
- // Force the overall direction to be R2L regardless of what was detected. |
- void SetOverallDirectionRight(); |
- |
- FX_WCHAR CharAt(size_t x) const { return m_Str[x]; } |
- const_iterator begin() const { return m_Order.begin(); } |
- const_iterator end() const { return m_Order.end(); } |
- |
- private: |
- const CFX_WideString m_Str; |
- std::unique_ptr<CFX_BidiChar> m_pBidiChar; |
- std::vector<CFX_BidiChar::Segment> m_Order; |
- CFX_BidiChar::Direction m_eOverallDirection; |
-}; |
- |
-#endif // CORE_INCLUDE_FXCRT_FX_BIDI_H_ |