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;
 };