Turn caret movement into an enum class
This CL changes caret movement into an enum class and removes the
MoveNone flag.
Change-Id: I8a01b057942d45ceae9a6c3b95cfe3b8dc9ce9a5
Reviewed-on: https://pdfium-review.googlesource.com/11274
Reviewed-by: Henrique Nakashima <hnakashima@chromium.org>
Commit-Queue: dsinclair <dsinclair@chromium.org>
diff --git a/xfa/fde/cfde_txtedtengine.cpp b/xfa/fde/cfde_txtedtengine.cpp
index e69f299..31cbfc0 100644
--- a/xfa/fde/cfde_txtedtengine.cpp
+++ b/xfa/fde/cfde_txtedtengine.cpp
@@ -265,9 +265,7 @@
return m_nCaret;
}
-int32_t CFDE_TxtEdtEngine::MoveCaretPos(FDE_TXTEDTMOVECARET eMoveCaret,
- bool bShift,
- bool bCtrl) {
+int32_t CFDE_TxtEdtEngine::MoveCaretPos(FDE_CaretMove eMoveCaret, bool bShift) {
if (IsLocked() || !pdfium::IndexInBounds(m_PagePtrArray, m_nCaretPage))
return 0;
@@ -284,46 +282,44 @@
}
switch (eMoveCaret) {
- case MC_Left: {
+ case FDE_CaretMove::Left: {
bool bBefore = true;
int32_t nIndex = MoveBackward(bBefore);
if (nIndex >= 0)
UpdateCaretRect(nIndex, bBefore);
break;
}
- case MC_Right: {
+ case FDE_CaretMove::Right: {
bool bBefore = true;
int32_t nIndex = MoveForward(bBefore);
if (nIndex >= 0)
UpdateCaretRect(nIndex, bBefore);
break;
}
- case MC_Up: {
+ case FDE_CaretMove::Up: {
CFX_PointF ptCaret;
if (MoveUp(ptCaret))
UpdateCaretIndex(ptCaret);
break;
}
- case MC_Down: {
+ case FDE_CaretMove::Down: {
CFX_PointF ptCaret;
if (MoveDown(ptCaret))
UpdateCaretIndex(ptCaret);
break;
}
- case MC_LineStart:
+ case FDE_CaretMove::LineStart:
MoveLineStart();
break;
- case MC_LineEnd:
+ case FDE_CaretMove::LineEnd:
MoveLineEnd();
break;
- case MC_Home:
+ case FDE_CaretMove::Home:
MoveHome();
break;
- case MC_End:
+ case FDE_CaretMove::End:
MoveEnd();
break;
- default:
- break;
}
if (bShift && m_nAnchorPos != -1 && (m_nAnchorPos != m_nCaret)) {
AddSelRange(std::min(m_nAnchorPos, m_nCaret), abs(m_nAnchorPos - m_nCaret));
diff --git a/xfa/fde/cfde_txtedtengine.h b/xfa/fde/cfde_txtedtengine.h
index 31de49b..9d472ce 100644
--- a/xfa/fde/cfde_txtedtengine.h
+++ b/xfa/fde/cfde_txtedtengine.h
@@ -38,16 +38,15 @@
#define FDE_TEXTEDITLAYOUT_CombText (1L << 4)
#define FDE_TEXTEDITLAYOUT_LastLineHeight (1L << 8)
-enum FDE_TXTEDTMOVECARET {
- MC_MoveNone = 0,
- MC_Left,
- MC_Right,
- MC_Up,
- MC_Down,
- MC_LineStart,
- MC_LineEnd,
- MC_Home,
- MC_End,
+enum class FDE_CaretMove {
+ Left,
+ Right,
+ Up,
+ Down,
+ LineStart,
+ LineEnd,
+ Home,
+ End,
};
struct FDE_TXTEDTPARAMS {
@@ -109,7 +108,7 @@
return IsLocked() ? 0 : m_nCaret + (m_bBefore ? 0 : 1);
}
int32_t SetCaretPos(int32_t nIndex, bool bBefore);
- int32_t MoveCaretPos(FDE_TXTEDTMOVECARET eMoveCaret, bool bShift, bool bCtrl);
+ int32_t MoveCaretPos(FDE_CaretMove eMoveCaret, bool bShift);
int32_t Insert(const CFX_WideString& str);
void Delete(bool bBackspace);
diff --git a/xfa/fwl/cfwl_comboedit.cpp b/xfa/fwl/cfwl_comboedit.cpp
index e7a2c6e..68cde76 100644
--- a/xfa/fwl/cfwl_comboedit.cpp
+++ b/xfa/fwl/cfwl_comboedit.cpp
@@ -28,7 +28,7 @@
void CFWL_ComboEdit::SetSelected() {
FlagFocus(true);
- GetTxtEdtEngine()->MoveCaretPos(MC_End, false, false);
+ GetTxtEdtEngine()->MoveCaretPos(FDE_CaretMove::End, false);
AddSelRange(0);
}
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index 38f8f70..0045c36 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -1387,43 +1387,34 @@
}
void CFWL_Edit::OnKeyDown(CFWL_MessageKey* pMsg) {
- FDE_TXTEDTMOVECARET MoveCaret = MC_MoveNone;
bool bShift = !!(pMsg->m_dwFlags & FWL_KEYFLAG_Shift);
bool bCtrl = !!(pMsg->m_dwFlags & FWL_KEYFLAG_Ctrl);
- uint32_t dwKeyCode = pMsg->m_dwKeyCode;
- switch (dwKeyCode) {
- case FWL_VKEY_Left: {
- MoveCaret = MC_Left;
+ switch (pMsg->m_dwKeyCode) {
+ case FWL_VKEY_Left:
+ m_EdtEngine.MoveCaretPos(FDE_CaretMove::Left, bShift);
break;
- }
- case FWL_VKEY_Right: {
- MoveCaret = MC_Right;
+ case FWL_VKEY_Right:
+ m_EdtEngine.MoveCaretPos(FDE_CaretMove::Right, bShift);
break;
- }
- case FWL_VKEY_Up: {
- MoveCaret = MC_Up;
+ case FWL_VKEY_Up:
+ m_EdtEngine.MoveCaretPos(FDE_CaretMove::Up, bShift);
break;
- }
- case FWL_VKEY_Down: {
- MoveCaret = MC_Down;
+ case FWL_VKEY_Down:
+ m_EdtEngine.MoveCaretPos(FDE_CaretMove::Down, bShift);
break;
- }
- case FWL_VKEY_Home: {
- MoveCaret = bCtrl ? MC_Home : MC_LineStart;
+ case FWL_VKEY_Home:
+ m_EdtEngine.MoveCaretPos(
+ bCtrl ? FDE_CaretMove::Home : FDE_CaretMove::LineStart, bShift);
break;
- }
- case FWL_VKEY_End: {
- MoveCaret = bCtrl ? MC_End : MC_LineEnd;
- break;
- }
- case FWL_VKEY_Insert:
+ case FWL_VKEY_End:
+ m_EdtEngine.MoveCaretPos(
+ bCtrl ? FDE_CaretMove::End : FDE_CaretMove::LineEnd, bShift);
break;
case FWL_VKEY_Delete: {
if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_ReadOnly) ||
(m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled)) {
break;
}
-
#if (_FX_OS_ == _FX_MACOSX_)
m_EdtEngine.Delete(true);
#else
@@ -1431,13 +1422,12 @@
#endif
break;
}
+ case FWL_VKEY_Insert:
case FWL_VKEY_F2:
case FWL_VKEY_Tab:
default:
break;
}
- if (MoveCaret != MC_MoveNone)
- m_EdtEngine.MoveCaretPos(MoveCaret, bShift, bCtrl);
}
void CFWL_Edit::OnChar(CFWL_MessageKey* pMsg) {