Renove duplicate FWL_VKEY_* definitions.

Add a "XFA_" prefix to the XFA copy in xfa/fwl/fwl_widgetdef.h. Switch
that copy from a set of #defines to an enum, to match the other copy in
public/fpdf_fwlevent.h. Then add assertions that the two copies match,
and update usage in various files. Do IWYU as well.

Change-Id: I4e3c875e4af3380400ba99c1fa9e114e81cd6334
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/55714
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
index 2fb13db..97b8080 100644
--- a/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
+++ b/fpdfsdk/cpdfsdk_xfawidgethandler.cpp
@@ -15,6 +15,7 @@
 #include "fpdfsdk/fpdfxfa/cpdfxfa_context.h"
 #include "public/fpdf_fwlevent.h"
 #include "xfa/fwl/cfwl_app.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/fwl_widgethit.h"
 #include "xfa/fxfa/cxfa_ffdocview.h"
 #include "xfa/fxfa/cxfa_ffpageview.h"
@@ -24,6 +25,182 @@
 #include "xfa/fxfa/parser/cxfa_node.h"
 #include "xfa/fxgraphics/cxfa_graphics.h"
 
+#define CHECK_FWL_VKEY_ENUM____(name)                                   \
+  static_assert(static_cast<int>(name) == static_cast<int>(XFA_##name), \
+                "FWL_VKEYCODE enum mismatch")
+
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Back);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Tab);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NewLine);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Clear);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Return);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Shift);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Control);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Menu);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Pause);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Capital);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Kana);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Hangul);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Junja);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Final);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Hanja);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Kanji);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Escape);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Convert);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NonConvert);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Accept);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_ModeChange);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Space);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Prior);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Next);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_End);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Home);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Left);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Up);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Right);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Down);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Select);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Print);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Execute);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Snapshot);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Insert);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Delete);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Help);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_0);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_1);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_2);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_3);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_4);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_5);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_6);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_7);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_8);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_9);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_A);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_B);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_C);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_D);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_E);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_G);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_H);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_I);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_J);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_K);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_L);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_M);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_N);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_O);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_P);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Q);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_R);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_S);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_T);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_U);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_V);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_W);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_X);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Y);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Z);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_LWin);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Command);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_RWin);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Apps);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Sleep);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad0);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad1);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad2);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad3);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad4);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad5);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad6);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad7);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad8);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NumPad9);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Multiply);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Add);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Separator);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Subtract);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Decimal);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Divide);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F1);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F2);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F3);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F4);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F5);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F6);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F7);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F8);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F9);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F10);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F11);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F12);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F13);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F14);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F15);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F16);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F17);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F18);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F19);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F20);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F21);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F22);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F23);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_F24);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NunLock);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Scroll);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_LShift);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_RShift);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_LControl);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_RControl);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_LMenu);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_RMenu);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Back);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Forward);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Refresh);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Stop);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Search);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Favorites);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_BROWSER_Home);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_VOLUME_Mute);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_VOLUME_Down);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_VOLUME_Up);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_NEXT_Track);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_PREV_Track);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_Stop);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_PLAY_Pause);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_LAUNCH_Mail);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_LAUNCH_APP1);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_MEDIA_LAUNCH_APP2);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_1);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_Plus);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_Comma);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_Minus);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_Period);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_2);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_3);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_4);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_5);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_6);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_7);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_8);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_102);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_ProcessKey);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Packet);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Attn);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Crsel);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Exsel);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Ereof);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Play);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Zoom);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_NoName);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_PA1);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_OEM_Clear);
+CHECK_FWL_VKEY_ENUM____(FWL_VKEY_Unknown);
+
+#undef CHECK_FWL_VKEY_ENUM____
+
 CPDFSDK_XFAWidgetHandler::CPDFSDK_XFAWidgetHandler(
     CPDFSDK_FormFillEnvironment* pFormFillEnv)
     : m_pFormFillEnv(pFormFillEnv) {}
diff --git a/xfa/fwl/cfwl_checkbox.cpp b/xfa/fwl/cfwl_checkbox.cpp
index d627043..06dd54e 100644
--- a/xfa/fwl/cfwl_checkbox.cpp
+++ b/xfa/fwl/cfwl_checkbox.cpp
@@ -21,6 +21,7 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_themetext.h"
 #include "xfa/fwl/cfwl_widgetmgr.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
 
 namespace {
@@ -326,10 +327,10 @@
 }
 
 void CFWL_CheckBox::OnKeyDown(CFWL_MessageKey* pMsg) {
-  if (pMsg->m_dwKeyCode == FWL_VKEY_Tab)
+  if (pMsg->m_dwKeyCode == XFA_FWL_VKEY_Tab)
     return;
-  if (pMsg->m_dwKeyCode == FWL_VKEY_Return ||
-      pMsg->m_dwKeyCode == FWL_VKEY_Space) {
+  if (pMsg->m_dwKeyCode == XFA_FWL_VKEY_Return ||
+      pMsg->m_dwKeyCode == XFA_FWL_VKEY_Space) {
     NextStates();
   }
 }
diff --git a/xfa/fwl/cfwl_combobox.cpp b/xfa/fwl/cfwl_combobox.cpp
index 4760ab2..9521e2d 100644
--- a/xfa/fwl/cfwl_combobox.cpp
+++ b/xfa/fwl/cfwl_combobox.cpp
@@ -26,6 +26,7 @@
 #include "xfa/fwl/cfwl_themepart.h"
 #include "xfa/fwl/cfwl_themetext.h"
 #include "xfa/fwl/cfwl_widgetmgr.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
 
 CFWL_ComboBox::CFWL_ComboBox(const CFWL_App* app)
@@ -463,10 +464,10 @@
       if (pKey->m_dwCmd == FWL_KeyCommand::KeyUp)
         break;
       if (IsDropListVisible() && pKey->m_dwCmd == FWL_KeyCommand::KeyDown) {
-        bool bListKey = pKey->m_dwKeyCode == FWL_VKEY_Up ||
-                        pKey->m_dwKeyCode == FWL_VKEY_Down ||
-                        pKey->m_dwKeyCode == FWL_VKEY_Return ||
-                        pKey->m_dwKeyCode == FWL_VKEY_Escape;
+        bool bListKey = pKey->m_dwKeyCode == XFA_FWL_VKEY_Up ||
+                        pKey->m_dwKeyCode == XFA_FWL_VKEY_Down ||
+                        pKey->m_dwKeyCode == XFA_FWL_VKEY_Return ||
+                        pKey->m_dwKeyCode == XFA_FWL_VKEY_Escape;
         if (bListKey) {
           m_pListBox->GetDelegate()->OnProcessMessage(pMessage);
           break;
@@ -542,8 +543,8 @@
 
 void CFWL_ComboBox::OnKey(CFWL_MessageKey* pMsg) {
   uint32_t dwKeyCode = pMsg->m_dwKeyCode;
-  const bool bUp = dwKeyCode == FWL_VKEY_Up;
-  const bool bDown = dwKeyCode == FWL_VKEY_Down;
+  const bool bUp = dwKeyCode == XFA_FWL_VKEY_Up;
+  const bool bDown = dwKeyCode == XFA_FWL_VKEY_Down;
   if (bUp || bDown) {
     CFWL_ComboList* pComboList = m_pListBox.get();
     int32_t iCount = pComboList->CountItems(nullptr);
diff --git a/xfa/fwl/cfwl_combolist.cpp b/xfa/fwl/cfwl_combolist.cpp
index 237cc20..65d400f 100644
--- a/xfa/fwl/cfwl_combolist.cpp
+++ b/xfa/fwl/cfwl_combolist.cpp
@@ -15,6 +15,7 @@
 #include "xfa/fwl/cfwl_messagekey.h"
 #include "xfa/fwl/cfwl_messagekillfocus.h"
 #include "xfa/fwl/cfwl_messagemouse.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 
 CFWL_ComboList::CFWL_ComboList(
     const CFWL_App* app,
@@ -187,13 +188,13 @@
   if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown) {
     uint32_t dwKeyCode = pKey->m_dwKeyCode;
     switch (dwKeyCode) {
-      case FWL_VKEY_Return:
-      case FWL_VKEY_Escape: {
+      case XFA_FWL_VKEY_Return:
+      case XFA_FWL_VKEY_Escape: {
         pOuter->ShowDropList(false);
         return true;
       }
-      case FWL_VKEY_Up:
-      case FWL_VKEY_Down: {
+      case XFA_FWL_VKEY_Up:
+      case XFA_FWL_VKEY_Down: {
         OnDropListKeyDown(pKey);
         pOuter->ProcessSelChanged(false);
         return true;
@@ -217,10 +218,10 @@
 void CFWL_ComboList::OnDropListKeyDown(CFWL_MessageKey* pKey) {
   uint32_t dwKeyCode = pKey->m_dwKeyCode;
   switch (dwKeyCode) {
-    case FWL_VKEY_Up:
-    case FWL_VKEY_Down:
-    case FWL_VKEY_Home:
-    case FWL_VKEY_End: {
+    case XFA_FWL_VKEY_Up:
+    case XFA_FWL_VKEY_Down:
+    case XFA_FWL_VKEY_Home:
+    case XFA_FWL_VKEY_End: {
       CFWL_ComboBox* pOuter = static_cast<CFWL_ComboBox*>(m_pOuter);
       CFWL_ListItem* hItem = GetItem(this, pOuter->GetCurrentSelection());
       hItem = GetListItem(hItem, dwKeyCode);
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index c6317d2..70428d7 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -27,6 +27,7 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_themepart.h"
 #include "xfa/fwl/cfwl_widgetmgr.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
 #include "xfa/fwl/theme/cfwl_utils.h"
 #include "xfa/fxgraphics/cxfa_gepath.h"
@@ -1175,28 +1176,28 @@
   }
 
   switch (pMsg->m_dwKeyCode) {
-    case FWL_VKEY_Left:
+    case XFA_FWL_VKEY_Left:
       SetCursorPosition(m_EdtEngine.GetIndexLeft(m_CursorPosition));
       break;
-    case FWL_VKEY_Right:
+    case XFA_FWL_VKEY_Right:
       SetCursorPosition(m_EdtEngine.GetIndexRight(m_CursorPosition));
       break;
-    case FWL_VKEY_Up:
+    case XFA_FWL_VKEY_Up:
       SetCursorPosition(m_EdtEngine.GetIndexUp(m_CursorPosition));
       break;
-    case FWL_VKEY_Down:
+    case XFA_FWL_VKEY_Down:
       SetCursorPosition(m_EdtEngine.GetIndexDown(m_CursorPosition));
       break;
-    case FWL_VKEY_Home:
+    case XFA_FWL_VKEY_Home:
       SetCursorPosition(
           bCtrl ? 0 : m_EdtEngine.GetIndexAtStartOfLine(m_CursorPosition));
       break;
-    case FWL_VKEY_End:
+    case XFA_FWL_VKEY_End:
       SetCursorPosition(
           bCtrl ? m_EdtEngine.GetLength()
                 : m_EdtEngine.GetIndexAtEndOfLine(m_CursorPosition));
       break;
-    case FWL_VKEY_Delete: {
+    case XFA_FWL_VKEY_Delete: {
       if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_ReadOnly) ||
           (m_pProperties->m_dwStates & FWL_WGTSTATE_Disabled)) {
         break;
@@ -1206,9 +1207,9 @@
       UpdateCaret();
       break;
     }
-    case FWL_VKEY_Insert:
-    case FWL_VKEY_F2:
-    case FWL_VKEY_Tab:
+    case XFA_FWL_VKEY_Insert:
+    case XFA_FWL_VKEY_F2:
+    case XFA_FWL_VKEY_Tab:
     default:
       break;
   }
diff --git a/xfa/fwl/cfwl_listbox.cpp b/xfa/fwl/cfwl_listbox.cpp
index 9d84649..8f51f5b 100644
--- a/xfa/fwl/cfwl_listbox.cpp
+++ b/xfa/fwl/cfwl_listbox.cpp
@@ -20,6 +20,7 @@
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_themepart.h"
 #include "xfa/fwl/cfwl_themetext.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
 
 namespace {
@@ -169,17 +170,17 @@
                                          uint32_t dwKeyCode) {
   CFWL_ListItem* hRet = nullptr;
   switch (dwKeyCode) {
-    case FWL_VKEY_Up:
-    case FWL_VKEY_Down:
-    case FWL_VKEY_Home:
-    case FWL_VKEY_End: {
-      const bool bUp = dwKeyCode == FWL_VKEY_Up;
-      const bool bDown = dwKeyCode == FWL_VKEY_Down;
-      const bool bHome = dwKeyCode == FWL_VKEY_Home;
+    case XFA_FWL_VKEY_Up:
+    case XFA_FWL_VKEY_Down:
+    case XFA_FWL_VKEY_Home:
+    case XFA_FWL_VKEY_End: {
+      const bool bUp = dwKeyCode == XFA_FWL_VKEY_Up;
+      const bool bDown = dwKeyCode == XFA_FWL_VKEY_Down;
+      const bool bHome = dwKeyCode == XFA_FWL_VKEY_Home;
       int32_t iDstItem = -1;
       if (bUp || bDown) {
         int32_t index = GetItemIndex(this, pItem);
-        iDstItem = dwKeyCode == FWL_VKEY_Up ? index - 1 : index + 1;
+        iDstItem = dwKeyCode == XFA_FWL_VKEY_Up ? index - 1 : index + 1;
       } else if (bHome) {
         iDstItem = 0;
       } else {
@@ -779,11 +780,11 @@
 void CFWL_ListBox::OnKeyDown(CFWL_MessageKey* pMsg) {
   uint32_t dwKeyCode = pMsg->m_dwKeyCode;
   switch (dwKeyCode) {
-    case FWL_VKEY_Tab:
-    case FWL_VKEY_Up:
-    case FWL_VKEY_Down:
-    case FWL_VKEY_Home:
-    case FWL_VKEY_End: {
+    case XFA_FWL_VKEY_Tab:
+    case XFA_FWL_VKEY_Up:
+    case XFA_FWL_VKEY_Down:
+    case XFA_FWL_VKEY_Home:
+    case XFA_FWL_VKEY_End: {
       CFWL_ListItem* pItem = GetFocusedItem();
       pItem = GetListItem(pItem, dwKeyCode);
       bool bShift = !!(pMsg->m_dwFlags & FWL_KEYFLAG_Shift);
diff --git a/xfa/fwl/cfwl_notedriver.cpp b/xfa/fwl/cfwl_notedriver.cpp
index b074fc9..4943957 100644
--- a/xfa/fwl/cfwl_notedriver.cpp
+++ b/xfa/fwl/cfwl_notedriver.cpp
@@ -22,6 +22,7 @@
 #include "xfa/fwl/cfwl_messagesetfocus.h"
 #include "xfa/fwl/cfwl_noteloop.h"
 #include "xfa/fwl/cfwl_widgetmgr.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 
 CFWL_NoteDriver::CFWL_NoteDriver()
     : m_pNoteLoop(pdfium::MakeUnique<CFWL_NoteLoop>()) {
@@ -196,7 +197,7 @@
   CFWL_MessageKey* pMsg = static_cast<CFWL_MessageKey*>(pMessage);
 #if !defined(OS_MACOSX)
   if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown &&
-      pMsg->m_dwKeyCode == FWL_VKEY_Tab) {
+      pMsg->m_dwKeyCode == XFA_FWL_VKEY_Tab) {
     CFWL_WidgetMgr* pWidgetMgr = pMessageForm->GetOwnerApp()->GetWidgetMgr();
     CFWL_Widget* pForm = GetMessageForm(pMsg->GetDstTarget());
     CFWL_Widget* pFocus = m_pFocus.Get();
@@ -219,7 +220,7 @@
 
   if (!m_pFocus) {
     if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown &&
-        pMsg->m_dwKeyCode == FWL_VKEY_Return) {
+        pMsg->m_dwKeyCode == XFA_FWL_VKEY_Return) {
       CFWL_WidgetMgr* pWidgetMgr = pMessageForm->GetOwnerApp()->GetWidgetMgr();
       CFWL_Widget* defButton = pWidgetMgr->GetDefaultButton(pMessageForm);
       if (defButton) {
diff --git a/xfa/fwl/cfwl_pushbutton.cpp b/xfa/fwl/cfwl_pushbutton.cpp
index 4737f9e..947b24d 100644
--- a/xfa/fwl/cfwl_pushbutton.cpp
+++ b/xfa/fwl/cfwl_pushbutton.cpp
@@ -18,6 +18,7 @@
 #include "xfa/fwl/cfwl_notedriver.h"
 #include "xfa/fwl/cfwl_themebackground.h"
 #include "xfa/fwl/cfwl_themetext.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/ifwl_themeprovider.h"
 
 CFWL_PushButton::CFWL_PushButton(const CFWL_App* app)
@@ -215,7 +216,7 @@
 }
 
 void CFWL_PushButton::OnKeyDown(CFWL_MessageKey* pMsg) {
-  if (pMsg->m_dwKeyCode != FWL_VKEY_Return)
+  if (pMsg->m_dwKeyCode != XFA_FWL_VKEY_Return)
     return;
 
   CFWL_EventMouse wmMouse(this);
diff --git a/xfa/fwl/fwl_widgetdef.h b/xfa/fwl/fwl_widgetdef.h
index e8e8b92..19eb508 100644
--- a/xfa/fwl/fwl_widgetdef.h
+++ b/xfa/fwl/fwl_widgetdef.h
@@ -21,174 +21,178 @@
 #define FWL_WGTSTATE_Invisible (1L << 5)
 #define FWL_WGTSTATE_MAX (6)
 
-#define FWL_VKEY_Back 0x08
-#define FWL_VKEY_Tab 0x09
-#define FWL_VKEY_NewLine 0x0A
-#define FWL_VKEY_Clear 0x0C
-#define FWL_VKEY_Return 0x0D
-#define FWL_VKEY_Shift 0x10
-#define FWL_VKEY_Control 0x11
-#define FWL_VKEY_Menu 0x12
-#define FWL_VKEY_Pause 0x13
-#define FWL_VKEY_Capital 0x14
-#define FWL_VKEY_Kana 0x15
-#define FWL_VKEY_Hangul 0x15
-#define FWL_VKEY_Junja 0x17
-#define FWL_VKEY_Final 0x18
-#define FWL_VKEY_Hanja 0x19
-#define FWL_VKEY_Kanji 0x19
-#define FWL_VKEY_Escape 0x1B
-#define FWL_VKEY_Convert 0x1C
-#define FWL_VKEY_NonConvert 0x1D
-#define FWL_VKEY_Accept 0x1E
-#define FWL_VKEY_ModeChange 0x1F
-#define FWL_VKEY_Space 0x20
-#define FWL_VKEY_Prior 0x21
-#define FWL_VKEY_Next 0x22
-#define FWL_VKEY_End 0x23
-#define FWL_VKEY_Home 0x24
-#define FWL_VKEY_Left 0x25
-#define FWL_VKEY_Up 0x26
-#define FWL_VKEY_Right 0x27
-#define FWL_VKEY_Down 0x28
-#define FWL_VKEY_Select 0x29
-#define FWL_VKEY_Print 0x2A
-#define FWL_VKEY_Execute 0x2B
-#define FWL_VKEY_Snapshot 0x2C
-#define FWL_VKEY_Insert 0x2D
-#define FWL_VKEY_Delete 0x2E
-#define FWL_VKEY_Help 0x2F
-#define FWL_VKEY_0 0x30
-#define FWL_VKEY_1 0x31
-#define FWL_VKEY_2 0x32
-#define FWL_VKEY_3 0x33
-#define FWL_VKEY_4 0x34
-#define FWL_VKEY_5 0x35
-#define FWL_VKEY_6 0x36
-#define FWL_VKEY_7 0x37
-#define FWL_VKEY_8 0x38
-#define FWL_VKEY_9 0x39
-#define FWL_VKEY_A 0x41
-#define FWL_VKEY_B 0x42
-#define FWL_VKEY_C 0x43
-#define FWL_VKEY_D 0x44
-#define FWL_VKEY_E 0x45
-#define FWL_VKEY_F 0x46
-#define FWL_VKEY_G 0x47
-#define FWL_VKEY_H 0x48
-#define FWL_VKEY_I 0x49
-#define FWL_VKEY_J 0x4A
-#define FWL_VKEY_K 0x4B
-#define FWL_VKEY_L 0x4C
-#define FWL_VKEY_M 0x4D
-#define FWL_VKEY_N 0x4E
-#define FWL_VKEY_O 0x4F
-#define FWL_VKEY_P 0x50
-#define FWL_VKEY_Q 0x51
-#define FWL_VKEY_R 0x52
-#define FWL_VKEY_S 0x53
-#define FWL_VKEY_T 0x54
-#define FWL_VKEY_U 0x55
-#define FWL_VKEY_V 0x56
-#define FWL_VKEY_W 0x57
-#define FWL_VKEY_X 0x58
-#define FWL_VKEY_Y 0x59
-#define FWL_VKEY_Z 0x5A
-#define FWL_VKEY_LWin 0x5B
-#define FWL_VKEY_Command 0x5B
-#define FWL_VKEY_RWin 0x5C
-#define FWL_VKEY_Apps 0x5D
-#define FWL_VKEY_Sleep 0x5F
-#define FWL_VKEY_NumPad0 0x60
-#define FWL_VKEY_NumPad1 0x61
-#define FWL_VKEY_NumPad2 0x62
-#define FWL_VKEY_NumPad3 0x63
-#define FWL_VKEY_NumPad4 0x64
-#define FWL_VKEY_NumPad5 0x65
-#define FWL_VKEY_NumPad6 0x66
-#define FWL_VKEY_NumPad7 0x67
-#define FWL_VKEY_NumPad8 0x68
-#define FWL_VKEY_NumPad9 0x69
-#define FWL_VKEY_Multiply 0x6A
-#define FWL_VKEY_Add 0x6B
-#define FWL_VKEY_Separator 0x6C
-#define FWL_VKEY_Subtract 0x6D
-#define FWL_VKEY_Decimal 0x6E
-#define FWL_VKEY_Divide 0x6F
-#define FWL_VKEY_F1 0x70
-#define FWL_VKEY_F2 0x71
-#define FWL_VKEY_F3 0x72
-#define FWL_VKEY_F4 0x73
-#define FWL_VKEY_F5 0x74
-#define FWL_VKEY_F6 0x75
-#define FWL_VKEY_F7 0x76
-#define FWL_VKEY_F8 0x77
-#define FWL_VKEY_F9 0x78
-#define FWL_VKEY_F10 0x79
-#define FWL_VKEY_F11 0x7A
-#define FWL_VKEY_F12 0x7B
-#define FWL_VKEY_F13 0x7C
-#define FWL_VKEY_F14 0x7D
-#define FWL_VKEY_F15 0x7E
-#define FWL_VKEY_F16 0x7F
-#define FWL_VKEY_F17 0x80
-#define FWL_VKEY_F18 0x81
-#define FWL_VKEY_F19 0x82
-#define FWL_VKEY_F20 0x83
-#define FWL_VKEY_F21 0x84
-#define FWL_VKEY_F22 0x85
-#define FWL_VKEY_F23 0x86
-#define FWL_VKEY_F24 0x87
-#define FWL_VKEY_NunLock 0x90
-#define FWL_VKEY_Scroll 0x91
-#define FWL_VKEY_LShift 0xA0
-#define FWL_VKEY_RShift 0xA1
-#define FWL_VKEY_LControl 0xA2
-#define FWL_VKEY_RControl 0xA3
-#define FWL_VKEY_LMenu 0xA4
-#define FWL_VKEY_RMenu 0xA5
-#define FWL_VKEY_BROWSER_Back 0xA6
-#define FWL_VKEY_BROWSER_Forward 0xA7
-#define FWL_VKEY_BROWSER_Refresh 0xA8
-#define FWL_VKEY_BROWSER_Stop 0xA9
-#define FWL_VKEY_BROWSER_Search 0xAA
-#define FWL_VKEY_BROWSER_Favorites 0xAB
-#define FWL_VKEY_BROWSER_Home 0xAC
-#define FWL_VKEY_VOLUME_Mute 0xAD
-#define FWL_VKEY_VOLUME_Down 0xAE
-#define FWL_VKEY_VOLUME_Up 0xAF
-#define FWL_VKEY_MEDIA_NEXT_Track 0xB0
-#define FWL_VKEY_MEDIA_PREV_Track 0xB1
-#define FWL_VKEY_MEDIA_Stop 0xB2
-#define FWL_VKEY_MEDIA_PLAY_Pause 0xB3
-#define FWL_VKEY_MEDIA_LAUNCH_Mail 0xB4
-#define FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select 0xB5
-#define FWL_VKEY_MEDIA_LAUNCH_APP1 0xB6
-#define FWL_VKEY_MEDIA_LAUNCH_APP2 0xB7
-#define FWL_VKEY_OEM_1 0xBA
-#define FWL_VKEY_OEM_Plus 0xBB
-#define FWL_VKEY_OEM_Comma 0xBC
-#define FWL_VKEY_OEM_Minus 0xBD
-#define FWL_VKEY_OEM_Period 0xBE
-#define FWL_VKEY_OEM_2 0xBF
-#define FWL_VKEY_OEM_3 0xC0
-#define FWL_VKEY_OEM_4 0xDB
-#define FWL_VKEY_OEM_5 0xDC
-#define FWL_VKEY_OEM_6 0xDD
-#define FWL_VKEY_OEM_7 0xDE
-#define FWL_VKEY_OEM_8 0xDF
-#define FWL_VKEY_OEM_102 0xE2
-#define FWL_VKEY_ProcessKey 0xE5
-#define FWL_VKEY_Packet 0xE7
-#define FWL_VKEY_Attn 0xF6
-#define FWL_VKEY_Crsel 0xF7
-#define FWL_VKEY_Exsel 0xF8
-#define FWL_VKEY_Ereof 0xF9
-#define FWL_VKEY_Play 0xFA
-#define FWL_VKEY_Zoom 0xFB
-#define FWL_VKEY_NoName 0xFC
-#define FWL_VKEY_PA1 0xFD
-#define FWL_VKEY_OEM_Clear 0xFE
-#define FWL_VKEY_Unknown 0
+// Same as enum FWL_VKEYCODE in public/fpdf_fwlevent.h, but duplicated to keep
+// xfa/fwl standalone.
+enum XFA_FWL_VKEYCODE {
+  XFA_FWL_VKEY_Back = 0x08,
+  XFA_FWL_VKEY_Tab = 0x09,
+  XFA_FWL_VKEY_NewLine = 0x0A,
+  XFA_FWL_VKEY_Clear = 0x0C,
+  XFA_FWL_VKEY_Return = 0x0D,
+  XFA_FWL_VKEY_Shift = 0x10,
+  XFA_FWL_VKEY_Control = 0x11,
+  XFA_FWL_VKEY_Menu = 0x12,
+  XFA_FWL_VKEY_Pause = 0x13,
+  XFA_FWL_VKEY_Capital = 0x14,
+  XFA_FWL_VKEY_Kana = 0x15,
+  XFA_FWL_VKEY_Hangul = 0x15,
+  XFA_FWL_VKEY_Junja = 0x17,
+  XFA_FWL_VKEY_Final = 0x18,
+  XFA_FWL_VKEY_Hanja = 0x19,
+  XFA_FWL_VKEY_Kanji = 0x19,
+  XFA_FWL_VKEY_Escape = 0x1B,
+  XFA_FWL_VKEY_Convert = 0x1C,
+  XFA_FWL_VKEY_NonConvert = 0x1D,
+  XFA_FWL_VKEY_Accept = 0x1E,
+  XFA_FWL_VKEY_ModeChange = 0x1F,
+  XFA_FWL_VKEY_Space = 0x20,
+  XFA_FWL_VKEY_Prior = 0x21,
+  XFA_FWL_VKEY_Next = 0x22,
+  XFA_FWL_VKEY_End = 0x23,
+  XFA_FWL_VKEY_Home = 0x24,
+  XFA_FWL_VKEY_Left = 0x25,
+  XFA_FWL_VKEY_Up = 0x26,
+  XFA_FWL_VKEY_Right = 0x27,
+  XFA_FWL_VKEY_Down = 0x28,
+  XFA_FWL_VKEY_Select = 0x29,
+  XFA_FWL_VKEY_Print = 0x2A,
+  XFA_FWL_VKEY_Execute = 0x2B,
+  XFA_FWL_VKEY_Snapshot = 0x2C,
+  XFA_FWL_VKEY_Insert = 0x2D,
+  XFA_FWL_VKEY_Delete = 0x2E,
+  XFA_FWL_VKEY_Help = 0x2F,
+  XFA_FWL_VKEY_0 = 0x30,
+  XFA_FWL_VKEY_1 = 0x31,
+  XFA_FWL_VKEY_2 = 0x32,
+  XFA_FWL_VKEY_3 = 0x33,
+  XFA_FWL_VKEY_4 = 0x34,
+  XFA_FWL_VKEY_5 = 0x35,
+  XFA_FWL_VKEY_6 = 0x36,
+  XFA_FWL_VKEY_7 = 0x37,
+  XFA_FWL_VKEY_8 = 0x38,
+  XFA_FWL_VKEY_9 = 0x39,
+  XFA_FWL_VKEY_A = 0x41,
+  XFA_FWL_VKEY_B = 0x42,
+  XFA_FWL_VKEY_C = 0x43,
+  XFA_FWL_VKEY_D = 0x44,
+  XFA_FWL_VKEY_E = 0x45,
+  XFA_FWL_VKEY_F = 0x46,
+  XFA_FWL_VKEY_G = 0x47,
+  XFA_FWL_VKEY_H = 0x48,
+  XFA_FWL_VKEY_I = 0x49,
+  XFA_FWL_VKEY_J = 0x4A,
+  XFA_FWL_VKEY_K = 0x4B,
+  XFA_FWL_VKEY_L = 0x4C,
+  XFA_FWL_VKEY_M = 0x4D,
+  XFA_FWL_VKEY_N = 0x4E,
+  XFA_FWL_VKEY_O = 0x4F,
+  XFA_FWL_VKEY_P = 0x50,
+  XFA_FWL_VKEY_Q = 0x51,
+  XFA_FWL_VKEY_R = 0x52,
+  XFA_FWL_VKEY_S = 0x53,
+  XFA_FWL_VKEY_T = 0x54,
+  XFA_FWL_VKEY_U = 0x55,
+  XFA_FWL_VKEY_V = 0x56,
+  XFA_FWL_VKEY_W = 0x57,
+  XFA_FWL_VKEY_X = 0x58,
+  XFA_FWL_VKEY_Y = 0x59,
+  XFA_FWL_VKEY_Z = 0x5A,
+  XFA_FWL_VKEY_LWin = 0x5B,
+  XFA_FWL_VKEY_Command = 0x5B,
+  XFA_FWL_VKEY_RWin = 0x5C,
+  XFA_FWL_VKEY_Apps = 0x5D,
+  XFA_FWL_VKEY_Sleep = 0x5F,
+  XFA_FWL_VKEY_NumPad0 = 0x60,
+  XFA_FWL_VKEY_NumPad1 = 0x61,
+  XFA_FWL_VKEY_NumPad2 = 0x62,
+  XFA_FWL_VKEY_NumPad3 = 0x63,
+  XFA_FWL_VKEY_NumPad4 = 0x64,
+  XFA_FWL_VKEY_NumPad5 = 0x65,
+  XFA_FWL_VKEY_NumPad6 = 0x66,
+  XFA_FWL_VKEY_NumPad7 = 0x67,
+  XFA_FWL_VKEY_NumPad8 = 0x68,
+  XFA_FWL_VKEY_NumPad9 = 0x69,
+  XFA_FWL_VKEY_Multiply = 0x6A,
+  XFA_FWL_VKEY_Add = 0x6B,
+  XFA_FWL_VKEY_Separator = 0x6C,
+  XFA_FWL_VKEY_Subtract = 0x6D,
+  XFA_FWL_VKEY_Decimal = 0x6E,
+  XFA_FWL_VKEY_Divide = 0x6F,
+  XFA_FWL_VKEY_F1 = 0x70,
+  XFA_FWL_VKEY_F2 = 0x71,
+  XFA_FWL_VKEY_F3 = 0x72,
+  XFA_FWL_VKEY_F4 = 0x73,
+  XFA_FWL_VKEY_F5 = 0x74,
+  XFA_FWL_VKEY_F6 = 0x75,
+  XFA_FWL_VKEY_F7 = 0x76,
+  XFA_FWL_VKEY_F8 = 0x77,
+  XFA_FWL_VKEY_F9 = 0x78,
+  XFA_FWL_VKEY_F10 = 0x79,
+  XFA_FWL_VKEY_F11 = 0x7A,
+  XFA_FWL_VKEY_F12 = 0x7B,
+  XFA_FWL_VKEY_F13 = 0x7C,
+  XFA_FWL_VKEY_F14 = 0x7D,
+  XFA_FWL_VKEY_F15 = 0x7E,
+  XFA_FWL_VKEY_F16 = 0x7F,
+  XFA_FWL_VKEY_F17 = 0x80,
+  XFA_FWL_VKEY_F18 = 0x81,
+  XFA_FWL_VKEY_F19 = 0x82,
+  XFA_FWL_VKEY_F20 = 0x83,
+  XFA_FWL_VKEY_F21 = 0x84,
+  XFA_FWL_VKEY_F22 = 0x85,
+  XFA_FWL_VKEY_F23 = 0x86,
+  XFA_FWL_VKEY_F24 = 0x87,
+  XFA_FWL_VKEY_NunLock = 0x90,
+  XFA_FWL_VKEY_Scroll = 0x91,
+  XFA_FWL_VKEY_LShift = 0xA0,
+  XFA_FWL_VKEY_RShift = 0xA1,
+  XFA_FWL_VKEY_LControl = 0xA2,
+  XFA_FWL_VKEY_RControl = 0xA3,
+  XFA_FWL_VKEY_LMenu = 0xA4,
+  XFA_FWL_VKEY_RMenu = 0xA5,
+  XFA_FWL_VKEY_BROWSER_Back = 0xA6,
+  XFA_FWL_VKEY_BROWSER_Forward = 0xA7,
+  XFA_FWL_VKEY_BROWSER_Refresh = 0xA8,
+  XFA_FWL_VKEY_BROWSER_Stop = 0xA9,
+  XFA_FWL_VKEY_BROWSER_Search = 0xAA,
+  XFA_FWL_VKEY_BROWSER_Favorites = 0xAB,
+  XFA_FWL_VKEY_BROWSER_Home = 0xAC,
+  XFA_FWL_VKEY_VOLUME_Mute = 0xAD,
+  XFA_FWL_VKEY_VOLUME_Down = 0xAE,
+  XFA_FWL_VKEY_VOLUME_Up = 0xAF,
+  XFA_FWL_VKEY_MEDIA_NEXT_Track = 0xB0,
+  XFA_FWL_VKEY_MEDIA_PREV_Track = 0xB1,
+  XFA_FWL_VKEY_MEDIA_Stop = 0xB2,
+  XFA_FWL_VKEY_MEDIA_PLAY_Pause = 0xB3,
+  XFA_FWL_VKEY_MEDIA_LAUNCH_Mail = 0xB4,
+  XFA_FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select = 0xB5,
+  XFA_FWL_VKEY_MEDIA_LAUNCH_APP1 = 0xB6,
+  XFA_FWL_VKEY_MEDIA_LAUNCH_APP2 = 0xB7,
+  XFA_FWL_VKEY_OEM_1 = 0xBA,
+  XFA_FWL_VKEY_OEM_Plus = 0xBB,
+  XFA_FWL_VKEY_OEM_Comma = 0xBC,
+  XFA_FWL_VKEY_OEM_Minus = 0xBD,
+  XFA_FWL_VKEY_OEM_Period = 0xBE,
+  XFA_FWL_VKEY_OEM_2 = 0xBF,
+  XFA_FWL_VKEY_OEM_3 = 0xC0,
+  XFA_FWL_VKEY_OEM_4 = 0xDB,
+  XFA_FWL_VKEY_OEM_5 = 0xDC,
+  XFA_FWL_VKEY_OEM_6 = 0xDD,
+  XFA_FWL_VKEY_OEM_7 = 0xDE,
+  XFA_FWL_VKEY_OEM_8 = 0xDF,
+  XFA_FWL_VKEY_OEM_102 = 0xE2,
+  XFA_FWL_VKEY_ProcessKey = 0xE5,
+  XFA_FWL_VKEY_Packet = 0xE7,
+  XFA_FWL_VKEY_Attn = 0xF6,
+  XFA_FWL_VKEY_Crsel = 0xF7,
+  XFA_FWL_VKEY_Exsel = 0xF8,
+  XFA_FWL_VKEY_Ereof = 0xF9,
+  XFA_FWL_VKEY_Play = 0xFA,
+  XFA_FWL_VKEY_Zoom = 0xFB,
+  XFA_FWL_VKEY_NoName = 0xFC,
+  XFA_FWL_VKEY_PA1 = 0xFD,
+  XFA_FWL_VKEY_OEM_Clear = 0xFE,
+  XFA_FWL_VKEY_Unknown = 0,
+};
 
 #endif  // XFA_FWL_FWL_WIDGETDEF_H_
diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index 820e64b..2a6bad0 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -17,6 +17,7 @@
 #include "xfa/fwl/cfwl_messagesetfocus.h"
 #include "xfa/fwl/cfwl_picturebox.h"
 #include "xfa/fwl/cfwl_widgetmgr.h"
+#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fxfa/cxfa_ffapp.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"
 #include "xfa/fxfa/cxfa_ffdocview.h"
@@ -547,7 +548,7 @@
 bool CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) {
   if (!GetDoc()->GetXFADoc()->IsInteractive())
     return false;
-  if (dwChar == FWL_VKEY_Tab)
+  if (dwChar == XFA_FWL_VKEY_Tab)
     return true;
   if (!m_pNormalWidget)
     return false;
diff --git a/xfa/fxfa/cxfa_fftext.cpp b/xfa/fxfa/cxfa_fftext.cpp
index 7cf30ea..75f0ece 100644
--- a/xfa/fxfa/cxfa_fftext.cpp
+++ b/xfa/fxfa/cxfa_fftext.cpp
@@ -7,7 +7,6 @@
 #include "xfa/fxfa/cxfa_fftext.h"
 
 #include "xfa/fgas/layout/cfx_linkuserdata.h"
-#include "xfa/fwl/fwl_widgetdef.h"
 #include "xfa/fwl/fwl_widgethit.h"
 #include "xfa/fxfa/cxfa_ffapp.h"
 #include "xfa/fxfa/cxfa_ffdoc.h"