Use modern enum style for CFX_BidiChar::Direction.

Use kFoo style for this enum's values. Also change it to an enum class.

Bug: pdfium:547
Change-Id: Iee4f29b2347eeec0eb6e3d28c84012af6c334cd0
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/96090
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 073f7f3..e758ede 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -148,7 +148,8 @@
     if (wChar)
       str += wChar;
   }
-  return CFX_BidiString(str).OverallDirection() == CFX_BidiChar::RIGHT;
+  return CFX_BidiString(str).OverallDirection() ==
+         CFX_BidiChar::Direction::kRight;
 }
 
 int GetCharWidth(uint32_t charCode, CPDF_Font* pFont) {
@@ -734,14 +735,14 @@
     bidi.SetOverallDirectionRight();
   CFX_BidiChar::Direction eCurrentDirection = bidi.OverallDirection();
   for (const auto& segment : bidi) {
-    if (segment.direction == CFX_BidiChar::RIGHT ||
-        (segment.direction == CFX_BidiChar::NEUTRAL &&
-         eCurrentDirection == CFX_BidiChar::RIGHT)) {
-      eCurrentDirection = CFX_BidiChar::RIGHT;
+    if (segment.direction == CFX_BidiChar::Direction::kRight ||
+        (segment.direction == CFX_BidiChar::Direction::kNeutral &&
+         eCurrentDirection == CFX_BidiChar::Direction::kRight)) {
+      eCurrentDirection = CFX_BidiChar::Direction::kRight;
       for (int m = segment.start + segment.count; m > segment.start; --m)
         AddCharInfoByRLDirection(str[m - 1], m_TempCharList[m - 1]);
     } else {
-      eCurrentDirection = CFX_BidiChar::LEFT;
+      eCurrentDirection = CFX_BidiChar::Direction::kLeft;
       for (int m = segment.start; m < segment.start + segment.count; ++m)
         AddCharInfoByLRDirection(str[m], m_TempCharList[m]);
     }
diff --git a/core/fxcrt/fx_bidi.cpp b/core/fxcrt/fx_bidi.cpp
index 48b6afa..491403b 100644
--- a/core/fxcrt/fx_bidi.cpp
+++ b/core/fxcrt/fx_bidi.cpp
@@ -12,7 +12,8 @@
 #include "third_party/base/check.h"
 
 CFX_BidiChar::CFX_BidiChar()
-    : m_CurrentSegment({0, 0, NEUTRAL}), m_LastSegment({0, 0, NEUTRAL}) {}
+    : m_CurrentSegment({0, 0, Direction::kNeutral}),
+      m_LastSegment({0, 0, Direction::kNeutral}) {}
 
 bool CFX_BidiChar::AppendChar(wchar_t wch) {
   Direction direction;
@@ -20,14 +21,14 @@
     case FX_BIDICLASS::kL:
     case FX_BIDICLASS::kAN:
     case FX_BIDICLASS::kEN:
-      direction = LEFT;
+      direction = Direction::kLeft;
       break;
     case FX_BIDICLASS::kR:
     case FX_BIDICLASS::kAL:
-      direction = RIGHT;
+      direction = Direction::kRight;
       break;
     default:
-      direction = NEUTRAL;
+      direction = Direction::kNeutral;
       break;
   }
 
@@ -40,7 +41,7 @@
 }
 
 bool CFX_BidiChar::EndChar() {
-  StartNewSegment(NEUTRAL);
+  StartNewSegment(Direction::kNeutral);
   return m_LastSegment.count > 0;
 }
 
@@ -60,15 +61,15 @@
   if (bidi.EndChar())
     m_Order.push_back(bidi.GetSegmentInfo());
 
-  size_t nR2L = std::count_if(m_Order.begin(), m_Order.end(),
-                              [](const CFX_BidiChar::Segment& seg) {
-                                return seg.direction == CFX_BidiChar::RIGHT;
-                              });
+  size_t nR2L = std::count_if(
+      m_Order.begin(), m_Order.end(), [](const CFX_BidiChar::Segment& seg) {
+        return seg.direction == CFX_BidiChar::Direction::kRight;
+      });
 
-  size_t nL2R = std::count_if(m_Order.begin(), m_Order.end(),
-                              [](const CFX_BidiChar::Segment& seg) {
-                                return seg.direction == CFX_BidiChar::LEFT;
-                              });
+  size_t nL2R = std::count_if(
+      m_Order.begin(), m_Order.end(), [](const CFX_BidiChar::Segment& seg) {
+        return seg.direction == CFX_BidiChar::Direction::kLeft;
+      });
 
   if (nR2L > 0 && nR2L >= nL2R)
     SetOverallDirectionRight();
@@ -77,13 +78,13 @@
 CFX_BidiString::~CFX_BidiString() = default;
 
 CFX_BidiChar::Direction CFX_BidiString::OverallDirection() const {
-  DCHECK(m_eOverallDirection != CFX_BidiChar::NEUTRAL);
+  DCHECK(m_eOverallDirection != CFX_BidiChar::Direction::kNeutral);
   return m_eOverallDirection;
 }
 
 void CFX_BidiString::SetOverallDirectionRight() {
-  if (m_eOverallDirection != CFX_BidiChar::RIGHT) {
+  if (m_eOverallDirection != CFX_BidiChar::Direction::kRight) {
     std::reverse(m_Order.begin(), m_Order.end());
-    m_eOverallDirection = CFX_BidiChar::RIGHT;
+    m_eOverallDirection = CFX_BidiChar::Direction::kRight;
   }
 }
diff --git a/core/fxcrt/fx_bidi.h b/core/fxcrt/fx_bidi.h
index 9bc0b17..7d7bca3 100644
--- a/core/fxcrt/fx_bidi.h
+++ b/core/fxcrt/fx_bidi.h
@@ -16,7 +16,7 @@
 // Processes characters and group them into segments based on text direction.
 class CFX_BidiChar {
  public:
-  enum Direction { NEUTRAL, LEFT, RIGHT };
+  enum class Direction { kNeutral, kLeft, kRight };
   struct Segment {
     int32_t start;        // Start position.
     int32_t count;        // Character count.
@@ -65,7 +65,7 @@
  private:
   const WideString& m_Str;
   std::vector<CFX_BidiChar::Segment> m_Order;
-  CFX_BidiChar::Direction m_eOverallDirection = CFX_BidiChar::LEFT;
+  CFX_BidiChar::Direction m_eOverallDirection = CFX_BidiChar::Direction::kLeft;
 };
 
 #endif  // CORE_FXCRT_FX_BIDI_H_
diff --git a/core/fxcrt/fx_bidi_unittest.cpp b/core/fxcrt/fx_bidi_unittest.cpp
index ad598a6..56d4554 100644
--- a/core/fxcrt/fx_bidi_unittest.cpp
+++ b/core/fxcrt/fx_bidi_unittest.cpp
@@ -18,7 +18,7 @@
   CFX_BidiChar::Segment info;
 
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, info.direction);
   EXPECT_EQ(0, info.start);
   EXPECT_EQ(0, info.count);
   EXPECT_FALSE(bidi.EndChar());
@@ -37,13 +37,13 @@
   EXPECT_FALSE(bidi.AppendChar(kLeftChar));
 
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, info.direction);
   EXPECT_EQ(0, info.start);
   EXPECT_EQ(0, info.count);
 
   EXPECT_TRUE(bidi.EndChar());
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::LEFT, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, info.direction);
   EXPECT_EQ(0, info.start);
   EXPECT_EQ(3, info.count);
 
@@ -71,13 +71,13 @@
   EXPECT_FALSE(bidi.AppendChar(kNeutralChar));
   EXPECT_TRUE(bidi.AppendChar(kRightChar));
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, info.direction);
   EXPECT_EQ(3, info.start);
   EXPECT_EQ(4, info.count);
 
   EXPECT_TRUE(bidi.EndChar());
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::RIGHT, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, info.direction);
   EXPECT_EQ(7, info.start);
   EXPECT_EQ(1, info.count);
 
@@ -105,13 +105,13 @@
   EXPECT_FALSE(bidi.AppendChar(kRightChar));
   EXPECT_TRUE(bidi.AppendChar(kLeftChar));
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::RIGHT, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, info.direction);
   EXPECT_EQ(3, info.start);
   EXPECT_EQ(4, info.count);
 
   EXPECT_TRUE(bidi.EndChar());
   info = bidi.GetSegmentInfo();
-  EXPECT_EQ(CFX_BidiChar::LEFT, info.direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, info.direction);
   EXPECT_EQ(7, info.start);
   EXPECT_EQ(1, info.count);
 
@@ -120,7 +120,7 @@
 
 TEST(fxcrt, BidiStringEmpty) {
   CFX_BidiString bidi(L"");
-  EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
   EXPECT_TRUE(bidi.begin() == bidi.end());
 }
 
@@ -128,26 +128,26 @@
   {
     const wchar_t str[] = {kNeutralChar, 0};
     CFX_BidiString bidi(str);
-    EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+    EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
 
     auto it = bidi.begin();
     ASSERT_FALSE(it == bidi.end());
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(1, it->count);
-    EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
     ++it;
     EXPECT_TRUE(it == bidi.end());
   }
   {
     const wchar_t str[] = {kNeutralChar, kNeutralChar, kNeutralChar, 0};
     CFX_BidiString bidi(str);
-    EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+    EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
 
     auto it = bidi.begin();
     ASSERT_FALSE(it == bidi.end());
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(3, it->count);
-    EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
     ++it;
     EXPECT_TRUE(it == bidi.end());
   }
@@ -157,19 +157,19 @@
   {
     const wchar_t str[] = {kLeftChar, 0};
     CFX_BidiString bidi(str);
-    EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+    EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
 
     auto it = bidi.begin();
     ASSERT_FALSE(it == bidi.end());
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(0, it->count);
-    EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(1, it->count);
-    EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
@@ -178,19 +178,19 @@
   {
     const wchar_t str[] = {kLeftChar, kLeftChar, kLeftChar, 0};
     CFX_BidiString bidi(str);
-    EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+    EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
 
     auto it = bidi.begin();
     ASSERT_FALSE(it == bidi.end());
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(0, it->count);
-    EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(3, it->count);
-    EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
@@ -202,19 +202,19 @@
   {
     const wchar_t str[] = {kRightChar, 0};
     CFX_BidiString bidi(str);
-    EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
+    EXPECT_EQ(CFX_BidiChar::Direction::kRight, bidi.OverallDirection());
 
     auto it = bidi.begin();
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(1, it->count);
-    EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
     ASSERT_FALSE(it == bidi.end());
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(0, it->count);
-    EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
@@ -223,19 +223,19 @@
   {
     const wchar_t str[] = {kRightChar, kRightChar, kRightChar, 0};
     CFX_BidiString bidi(str);
-    EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
+    EXPECT_EQ(CFX_BidiChar::Direction::kRight, bidi.OverallDirection());
 
     auto it = bidi.begin();
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(3, it->count);
-    EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
     ASSERT_FALSE(it == bidi.end());
     EXPECT_EQ(0, it->start);
     EXPECT_EQ(0, it->count);
-    EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+    EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
     ASSERT_FALSE(it == bidi.end());
 
     ++it;
@@ -246,37 +246,37 @@
 TEST(fxcrt, BidiStringLeftNeutralLeftRight) {
   const wchar_t str[] = {kLeftChar, kNeutralChar, kLeftChar, kRightChar, 0};
   CFX_BidiString bidi(str);
-  EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
 
   auto it = bidi.begin();
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(0, it->start);
   EXPECT_EQ(0, it->count);
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(0, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(1, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(2, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(3, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
@@ -286,37 +286,37 @@
 TEST(fxcrt, BidiStringRightNeutralLeftRight) {
   const wchar_t str[] = {kRightChar, kNeutralChar, kLeftChar, kRightChar, 0};
   CFX_BidiString bidi(str);
-  EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, bidi.OverallDirection());
 
   auto it = bidi.begin();
   EXPECT_EQ(3, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(2, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(1, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   EXPECT_EQ(0, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(0, it->start);
   EXPECT_EQ(0, it->count);
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
@@ -326,39 +326,39 @@
 TEST(fxcrt, BidiStringReverse) {
   const wchar_t str[] = {kLeftChar, kNeutralChar, kRightChar, kLeftChar, 0};
   CFX_BidiString bidi(str);
-  EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, bidi.OverallDirection());
   bidi.SetOverallDirectionRight();
 
   auto it = bidi.begin();
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(3, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
 
   ++it;
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(2, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::RIGHT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kRight, it->direction);
   ASSERT_FALSE(it == bidi.end());
 
   ++it;
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(1, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
 
   ++it;
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(0, it->start);
   EXPECT_EQ(1, it->count);
-  EXPECT_EQ(CFX_BidiChar::LEFT, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kLeft, it->direction);
 
   ++it;
   ASSERT_FALSE(it == bidi.end());
   EXPECT_EQ(0, it->start);
   EXPECT_EQ(0, it->count);
-  EXPECT_EQ(CFX_BidiChar::NEUTRAL, it->direction);
+  EXPECT_EQ(CFX_BidiChar::Direction::kNeutral, it->direction);
 
   ++it;
   EXPECT_TRUE(it == bidi.end());