Replace uint32_t with FWL_KeyFlagMask.
Provides more meaning than uint32_t dwFlags = 0;
-- use uint8 to pack a little tighter while at it.
Bug: pdfium:1085
Change-Id: Ibbcf10b307c14f2ffafc00d875cb846a4850c7a9
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/80715
Auto-Submit: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp
index b7b5fcd..0fcf7b7 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.cpp
@@ -649,8 +649,8 @@
return pDocView->GetWidgetHandler();
}
-uint32_t CPDFXFA_WidgetHandler::GetFWLFlags(uint32_t dwFlag) {
- uint32_t dwFWLFlag = 0;
+FWL_KeyFlagMask CPDFXFA_WidgetHandler::GetFWLFlags(uint32_t dwFlag) {
+ FWL_KeyFlagMask dwFWLFlag = 0;
if (dwFlag & FWL_EVENTFLAG_ControlKey)
dwFWLFlag |= FWL_KEYFLAG_Ctrl;
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.h b/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.h
index abad547..cbe449d 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_widgethandler.h
@@ -12,6 +12,7 @@
#include "core/fxcrt/fx_coordinates.h"
#include "core/fxcrt/unowned_ptr.h"
#include "fpdfsdk/ipdfsdk_annothandler.h"
+#include "xfa/fwl/cfwl_messagemouse.h"
class CFX_Matrix;
class CFX_RenderDevice;
@@ -109,7 +110,7 @@
private:
CXFA_FFWidgetHandler* GetXFAFFWidgetHandler(CPDFSDK_Annot* pAnnot);
- uint32_t GetFWLFlags(uint32_t dwFlag);
+ FWL_KeyFlagMask GetFWLFlags(uint32_t dwFlag);
UnownedPtr<CPDFSDK_FormFillEnvironment> m_pFormFillEnv;
};
diff --git a/xfa/fwl/cfwl_app.h b/xfa/fwl/cfwl_app.h
index 3a9a474..937f820 100644
--- a/xfa/fwl/cfwl_app.h
+++ b/xfa/fwl/cfwl_app.h
@@ -17,16 +17,6 @@
class CFWL_NoteDriver;
class IFWL_ThemeProvider;
-enum FWL_KeyFlag {
- FWL_KEYFLAG_Ctrl = 1 << 0,
- FWL_KEYFLAG_Alt = 1 << 1,
- FWL_KEYFLAG_Shift = 1 << 2,
- FWL_KEYFLAG_Command = 1 << 3,
- FWL_KEYFLAG_LButton = 1 << 4,
- FWL_KEYFLAG_RButton = 1 << 5,
- FWL_KEYFLAG_MButton = 1 << 6
-};
-
class CFWL_App final : public cppgc::GarbageCollected<CFWL_App> {
public:
class AdapterIface : public cppgc::GarbageCollectedMixin {
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index 1150ee2..8884694 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -39,9 +39,9 @@
constexpr int kEditMargin = 3;
#if defined(OS_APPLE)
-constexpr int kEditingModifier = FWL_KEYFLAG_Command;
+constexpr FWL_KeyFlagMask kEditingModifier = FWL_KEYFLAG_Command;
#else
-constexpr int kEditingModifier = FWL_KEYFLAG_Ctrl;
+constexpr FWL_KeyFlagMask kEditingModifier = FWL_KEYFLAG_Ctrl;
#endif
} // namespace
diff --git a/xfa/fwl/cfwl_messagemouse.cpp b/xfa/fwl/cfwl_messagemouse.cpp
index 9f28903..93aa07b 100644
--- a/xfa/fwl/cfwl_messagemouse.cpp
+++ b/xfa/fwl/cfwl_messagemouse.cpp
@@ -13,7 +13,7 @@
CFWL_MessageMouse::CFWL_MessageMouse(CFWL_Widget* pDstTarget,
FWL_MouseCommand cmd,
- uint32_t flags,
+ FWL_KeyFlagMask flags,
CFX_PointF pos)
: CFWL_Message(CFWL_Message::Type::kMouse, nullptr, pDstTarget),
m_dwCmd(cmd),
diff --git a/xfa/fwl/cfwl_messagemouse.h b/xfa/fwl/cfwl_messagemouse.h
index 83fce67..d7758cc 100644
--- a/xfa/fwl/cfwl_messagemouse.h
+++ b/xfa/fwl/cfwl_messagemouse.h
@@ -7,10 +7,12 @@
#ifndef XFA_FWL_CFWL_MESSAGEMOUSE_H_
#define XFA_FWL_CFWL_MESSAGEMOUSE_H_
+#include <type_traits>
+
#include "core/fxcrt/fx_coordinates.h"
#include "xfa/fwl/cfwl_message.h"
-enum class FWL_MouseCommand {
+enum class FWL_MouseCommand : uint8_t {
LeftButtonDown,
LeftButtonUp,
LeftButtonDblClk,
@@ -23,17 +25,28 @@
Hover
};
+enum FWL_KeyFlag : uint8_t {
+ FWL_KEYFLAG_Ctrl = 1 << 0,
+ FWL_KEYFLAG_Alt = 1 << 1,
+ FWL_KEYFLAG_Shift = 1 << 2,
+ FWL_KEYFLAG_Command = 1 << 3,
+ FWL_KEYFLAG_LButton = 1 << 4,
+ FWL_KEYFLAG_RButton = 1 << 5,
+ FWL_KEYFLAG_MButton = 1 << 6
+};
+using FWL_KeyFlagMask = std::underlying_type<FWL_KeyFlag>::type;
+
class CFWL_MessageMouse final : public CFWL_Message {
public:
CFWL_MessageMouse(CFWL_Widget* pDstTarget, FWL_MouseCommand cmd);
CFWL_MessageMouse(CFWL_Widget* pDstTarget,
FWL_MouseCommand cmd,
- uint32_t flags,
+ FWL_KeyFlagMask flags,
CFX_PointF pos);
~CFWL_MessageMouse() override;
const FWL_MouseCommand m_dwCmd;
- uint32_t m_dwFlags = 0;
+ FWL_KeyFlagMask m_dwFlags = 0;
CFX_PointF m_pos;
};