summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--BUILD.gn24
-rw-r--r--xfa/fwl/core/cfwl_barcode.cpp2
-rw-r--r--xfa/fwl/core/cfwl_checkbox.cpp19
-rw-r--r--xfa/fwl/core/cfwl_combobox.cpp60
-rw-r--r--xfa/fwl/core/cfwl_comboboxproxy.cpp8
-rw-r--r--xfa/fwl/core/cfwl_comboedit.cpp8
-rw-r--r--xfa/fwl/core/cfwl_combolist.cpp12
-rw-r--r--xfa/fwl/core/cfwl_datetimeedit.cpp9
-rw-r--r--xfa/fwl/core/cfwl_datetimepicker.cpp21
-rw-r--r--xfa/fwl/core/cfwl_edit.cpp63
-rw-r--r--xfa/fwl/core/cfwl_edit.h4
-rw-r--r--xfa/fwl/core/cfwl_event.cpp15
-rw-r--r--xfa/fwl/core/cfwl_event.h48
-rw-r--r--xfa/fwl/core/cfwl_evtcheckstatechanged.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtcheckstatechanged.h20
-rw-r--r--xfa/fwl/core/cfwl_evtcheckword.cpp6
-rw-r--r--xfa/fwl/core/cfwl_evtcheckword.h4
-rw-r--r--xfa/fwl/core/cfwl_evtclick.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtclick.h20
-rw-r--r--xfa/fwl/core/cfwl_evtclose.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtclose.h20
-rw-r--r--xfa/fwl/core/cfwl_evteditchanged.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evteditchanged.h20
-rw-r--r--xfa/fwl/core/cfwl_evtkey.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtkey.h24
-rw-r--r--xfa/fwl/core/cfwl_evtkillfocus.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtkillfocus.h22
-rw-r--r--xfa/fwl/core/cfwl_evtmouse.cpp10
-rw-r--r--xfa/fwl/core/cfwl_evtmouse.h8
-rw-r--r--xfa/fwl/core/cfwl_evtmousewheel.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtmousewheel.h26
-rw-r--r--xfa/fwl/core/cfwl_evtpostdropdown.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtpostdropdown.h20
-rw-r--r--xfa/fwl/core/cfwl_evtpredropdown.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtpredropdown.h20
-rw-r--r--xfa/fwl/core/cfwl_evtscroll.cpp7
-rw-r--r--xfa/fwl/core/cfwl_evtscroll.h33
-rw-r--r--xfa/fwl/core/cfwl_evtselectchanged.cpp7
-rw-r--r--xfa/fwl/core/cfwl_evtselectchanged.h4
-rw-r--r--xfa/fwl/core/cfwl_evtsetfocus.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtsetfocus.h22
-rw-r--r--xfa/fwl/core/cfwl_evtsizechanged.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evtsizechanged.h24
-rw-r--r--xfa/fwl/core/cfwl_evttextchanged.cpp7
-rw-r--r--xfa/fwl/core/cfwl_evttextchanged.h7
-rw-r--r--xfa/fwl/core/cfwl_evttextfull.cpp15
-rw-r--r--xfa/fwl/core/cfwl_evttextfull.h20
-rw-r--r--xfa/fwl/core/cfwl_evtvalidate.cpp7
-rw-r--r--xfa/fwl/core/cfwl_evtvalidate.h5
-rw-r--r--xfa/fwl/core/cfwl_form.cpp9
-rw-r--r--xfa/fwl/core/cfwl_listbox.cpp37
-rw-r--r--xfa/fwl/core/cfwl_listbox.h4
-rw-r--r--xfa/fwl/core/cfwl_message.cpp19
-rw-r--r--xfa/fwl/core/cfwl_message.h20
-rw-r--r--xfa/fwl/core/cfwl_monthcalendar.cpp11
-rw-r--r--xfa/fwl/core/cfwl_msgkey.cpp7
-rw-r--r--xfa/fwl/core/cfwl_msgkey.h3
-rw-r--r--xfa/fwl/core/cfwl_msgkillfocus.cpp11
-rw-r--r--xfa/fwl/core/cfwl_msgkillfocus.h4
-rw-r--r--xfa/fwl/core/cfwl_msgmouse.cpp7
-rw-r--r--xfa/fwl/core/cfwl_msgmouse.h3
-rw-r--r--xfa/fwl/core/cfwl_msgmousewheel.cpp8
-rw-r--r--xfa/fwl/core/cfwl_msgmousewheel.h3
-rw-r--r--xfa/fwl/core/cfwl_msgsetfocus.cpp8
-rw-r--r--xfa/fwl/core/cfwl_msgsetfocus.h5
-rw-r--r--xfa/fwl/core/cfwl_notedriver.cpp27
-rw-r--r--xfa/fwl/core/cfwl_pushbutton.cpp35
-rw-r--r--xfa/fwl/core/cfwl_scrollbar.cpp36
-rw-r--r--xfa/fwl/core/cfwl_scrollbar.h4
-rw-r--r--xfa/fwl/core/cfwl_spinbutton.cpp22
-rw-r--r--xfa/fwl/core/cfwl_spinbutton.h2
-rw-r--r--xfa/fwl/core/cfwl_widget.cpp90
-rw-r--r--xfa/fwl/core/cfwl_widget.h1
-rw-r--r--xfa/fxfa/app/xfa_ffcheckbutton.cpp7
-rw-r--r--xfa/fxfa/app/xfa_ffchoicelist.cpp14
-rw-r--r--xfa/fxfa/app/xfa_fffield.cpp58
-rw-r--r--xfa/fxfa/app/xfa_ffimageedit.cpp4
-rw-r--r--xfa/fxfa/app/xfa_fftextedit.cpp25
78 files changed, 332 insertions, 988 deletions
diff --git a/BUILD.gn b/BUILD.gn
index a91feeb5a9..c6d90365b5 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1223,40 +1223,16 @@ if (pdf_enable_xfa) {
"xfa/fwl/core/cfwl_event.h",
"xfa/fwl/core/cfwl_eventtarget.cpp",
"xfa/fwl/core/cfwl_eventtarget.h",
- "xfa/fwl/core/cfwl_evtcheckstatechanged.cpp",
- "xfa/fwl/core/cfwl_evtcheckstatechanged.h",
"xfa/fwl/core/cfwl_evtcheckword.cpp",
"xfa/fwl/core/cfwl_evtcheckword.h",
- "xfa/fwl/core/cfwl_evtclick.cpp",
- "xfa/fwl/core/cfwl_evtclick.h",
- "xfa/fwl/core/cfwl_evtclose.cpp",
- "xfa/fwl/core/cfwl_evtclose.h",
- "xfa/fwl/core/cfwl_evteditchanged.cpp",
- "xfa/fwl/core/cfwl_evteditchanged.h",
- "xfa/fwl/core/cfwl_evtkey.cpp",
- "xfa/fwl/core/cfwl_evtkey.h",
- "xfa/fwl/core/cfwl_evtkillfocus.cpp",
- "xfa/fwl/core/cfwl_evtkillfocus.h",
"xfa/fwl/core/cfwl_evtmouse.cpp",
"xfa/fwl/core/cfwl_evtmouse.h",
- "xfa/fwl/core/cfwl_evtmousewheel.cpp",
- "xfa/fwl/core/cfwl_evtmousewheel.h",
- "xfa/fwl/core/cfwl_evtpostdropdown.cpp",
- "xfa/fwl/core/cfwl_evtpostdropdown.h",
- "xfa/fwl/core/cfwl_evtpredropdown.cpp",
- "xfa/fwl/core/cfwl_evtpredropdown.h",
"xfa/fwl/core/cfwl_evtscroll.cpp",
"xfa/fwl/core/cfwl_evtscroll.h",
"xfa/fwl/core/cfwl_evtselectchanged.cpp",
"xfa/fwl/core/cfwl_evtselectchanged.h",
- "xfa/fwl/core/cfwl_evtsetfocus.cpp",
- "xfa/fwl/core/cfwl_evtsetfocus.h",
- "xfa/fwl/core/cfwl_evtsizechanged.cpp",
- "xfa/fwl/core/cfwl_evtsizechanged.h",
"xfa/fwl/core/cfwl_evttextchanged.cpp",
"xfa/fwl/core/cfwl_evttextchanged.h",
- "xfa/fwl/core/cfwl_evttextfull.cpp",
- "xfa/fwl/core/cfwl_evttextfull.h",
"xfa/fwl/core/cfwl_evtvalidate.cpp",
"xfa/fwl/core/cfwl_evtvalidate.h",
"xfa/fwl/core/cfwl_form.cpp",
diff --git a/xfa/fwl/core/cfwl_barcode.cpp b/xfa/fwl/core/cfwl_barcode.cpp
index 6ddcdf3920..8f5b08113c 100644
--- a/xfa/fwl/core/cfwl_barcode.cpp
+++ b/xfa/fwl/core/cfwl_barcode.cpp
@@ -88,7 +88,7 @@ bool CFWL_Barcode::IsProtectedType() const {
}
void CFWL_Barcode::OnProcessEvent(CFWL_Event* pEvent) {
- if (pEvent->GetClassID() == CFWL_EventType::TextChanged) {
+ if (pEvent->GetType() == CFWL_Event::Type::TextChanged) {
m_pBarcodeEngine.reset();
m_dwStatus = XFA_BCS_NeedUpdate;
}
diff --git a/xfa/fwl/core/cfwl_checkbox.cpp b/xfa/fwl/core/cfwl_checkbox.cpp
index cdd8211b60..dc042d5c39 100644
--- a/xfa/fwl/core/cfwl_checkbox.cpp
+++ b/xfa/fwl/core/cfwl_checkbox.cpp
@@ -13,7 +13,7 @@
#include "third_party/base/ptr_util.h"
#include "xfa/fde/tto/fde_textout.h"
#include "xfa/fwl/core/cfwl_app.h"
-#include "xfa/fwl/core/cfwl_evtcheckstatechanged.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_msgkey.h"
#include "xfa/fwl/core/cfwl_msgmouse.h"
#include "xfa/fwl/core/cfwl_notedriver.h"
@@ -339,8 +339,7 @@ void CFWL_CheckBox::NextStates() {
if (dwFirststate == m_pProperties->m_dwStates)
return;
- CFWL_EvtCheckStateChanged wmCheckBoxState;
- wmCheckBoxState.m_pSrcTarget = this;
+ CFWL_Event wmCheckBoxState(CFWL_Event::Type::CheckStateChanged, this);
DispatchEvent(&wmCheckBoxState);
}
@@ -348,14 +347,14 @@ void CFWL_CheckBox::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::SetFocus:
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
OnFocusChanged(true);
break;
- case CFWL_MessageType::KillFocus:
+ case CFWL_Message::Type::KillFocus:
OnFocusChanged(false);
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -375,7 +374,7 @@ void CFWL_CheckBox::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage);
if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown)
OnKeyDown(pKey);
@@ -474,10 +473,8 @@ void CFWL_CheckBox::OnMouseLeave() {
}
void CFWL_CheckBox::OnKeyDown(CFWL_MsgKey* pMsg) {
- if (pMsg->m_dwKeyCode == FWL_VKEY_Tab) {
- DispatchKeyEvent(pMsg);
+ if (pMsg->m_dwKeyCode == FWL_VKEY_Tab)
return;
- }
if (pMsg->m_dwKeyCode == FWL_VKEY_Return ||
pMsg->m_dwKeyCode == FWL_VKEY_Space) {
NextStates();
diff --git a/xfa/fwl/core/cfwl_combobox.cpp b/xfa/fwl/core/cfwl_combobox.cpp
index 5996af9c41..c8486c39c4 100644
--- a/xfa/fwl/core/cfwl_combobox.cpp
+++ b/xfa/fwl/core/cfwl_combobox.cpp
@@ -14,9 +14,7 @@
#include "xfa/fde/cfde_txtedtengine.h"
#include "xfa/fde/tto/fde_textout.h"
#include "xfa/fwl/core/cfwl_app.h"
-#include "xfa/fwl/core/cfwl_evteditchanged.h"
-#include "xfa/fwl/core/cfwl_evtpostdropdown.h"
-#include "xfa/fwl/core/cfwl_evtpredropdown.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_evtselectchanged.h"
#include "xfa/fwl/core/cfwl_evttextchanged.h"
#include "xfa/fwl/core/cfwl_formproxy.h"
@@ -399,8 +397,7 @@ void CFWL_ComboBox::ShowDropList(bool bActivate) {
m_pListBox->SetWidgetRect(m_rtList);
m_pListBox->Update();
- CFWL_EvtPreDropDown ev;
- ev.m_pSrcTarget = this;
+ CFWL_Event ev(CFWL_Event::Type::PreDropDown, this);
DispatchEvent(&ev);
m_fItemHeight = m_pListBox->GetItemHeight();
@@ -553,9 +550,8 @@ void CFWL_ComboBox::ProcessSelChanged(bool bLButtonUp) {
m_pEdit->SetSelected();
}
- CFWL_EvtSelectChanged ev;
+ CFWL_EvtSelectChanged ev(this);
ev.bLButtonUp = bLButtonUp;
- ev.m_pSrcTarget = this;
DispatchEvent(&ev);
}
@@ -608,8 +604,7 @@ void CFWL_ComboBox::DisForm_ShowDropList(bool bActivate) {
return;
if (bActivate) {
- CFWL_EvtPreDropDown preEvent;
- preEvent.m_pSrcTarget = this;
+ CFWL_Event preEvent(CFWL_Event::Type::PreDropDown, this);
DispatchEvent(&preEvent);
CFWL_ComboList* pComboList = m_pListBox.get();
@@ -642,8 +637,7 @@ void CFWL_ComboBox::DisForm_ShowDropList(bool bActivate) {
m_pListBox->SetStates(FWL_WGTSTATE_Invisible, !bActivate);
if (bActivate) {
- CFWL_EvtPostDropDown postEvent;
- postEvent.m_pSrcTarget = this;
+ CFWL_Event postEvent(CFWL_Event::Type::PostDropDown, this);
DispatchEvent(&postEvent);
}
@@ -794,14 +788,14 @@ void CFWL_ComboBox::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::SetFocus:
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
OnFocusChanged(pMessage, true);
break;
- case CFWL_MessageType::KillFocus:
+ case CFWL_Message::Type::KillFocus:
OnFocusChanged(pMessage, false);
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -821,7 +815,7 @@ void CFWL_ComboBox::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key:
+ case CFWL_Message::Type::Key:
OnKey(static_cast<CFWL_MsgKey*>(pMessage));
break;
default:
@@ -832,17 +826,15 @@ void CFWL_ComboBox::OnProcessMessage(CFWL_Message* pMessage) {
}
void CFWL_ComboBox::OnProcessEvent(CFWL_Event* pEvent) {
- CFWL_EventType dwFlag = pEvent->GetClassID();
- if (dwFlag == CFWL_EventType::Scroll) {
+ CFWL_Event::Type type = pEvent->GetType();
+ if (type == CFWL_Event::Type::Scroll) {
CFWL_EvtScroll* pScrollEvent = static_cast<CFWL_EvtScroll*>(pEvent);
- CFWL_EvtScroll pScrollEv;
- pScrollEv.m_pSrcTarget = this;
+ CFWL_EvtScroll pScrollEv(this);
pScrollEv.m_iScrollCode = pScrollEvent->m_iScrollCode;
pScrollEv.m_fPos = pScrollEvent->m_fPos;
DispatchEvent(&pScrollEv);
- } else if (dwFlag == CFWL_EventType::TextChanged) {
- CFWL_EvtEditChanged pTemp;
- pTemp.m_pSrcTarget = this;
+ } else if (type == CFWL_Event::Type::TextChanged) {
+ CFWL_Event pTemp(CFWL_Event::Type::EditChanged, this);
DispatchEvent(&pTemp);
}
}
@@ -934,10 +926,8 @@ void CFWL_ComboBox::OnMouseLeave(CFWL_MsgMouse* pMsg) {
void CFWL_ComboBox::OnKey(CFWL_MsgKey* pMsg) {
uint32_t dwKeyCode = pMsg->m_dwKeyCode;
- if (dwKeyCode == FWL_VKEY_Tab) {
- DispatchKeyEvent(pMsg);
+ if (dwKeyCode == FWL_VKEY_Tab)
return;
- }
if (pMsg->m_pDstTarget == this)
DoSubCtrlKey(pMsg);
}
@@ -990,18 +980,18 @@ void CFWL_ComboBox::DisForm_OnProcessMessage(CFWL_Message* pMessage) {
return;
bool backDefault = true;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::SetFocus: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus: {
backDefault = false;
DisForm_OnFocusChanged(pMessage, true);
break;
}
- case CFWL_MessageType::KillFocus: {
+ case CFWL_Message::Type::KillFocus: {
backDefault = false;
DisForm_OnFocusChanged(pMessage, false);
break;
}
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
backDefault = false;
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
@@ -1016,7 +1006,7 @@ void CFWL_ComboBox::DisForm_OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
backDefault = false;
CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage);
if (pKey->m_dwCmd == FWL_KeyCommand::KeyUp)
@@ -1061,17 +1051,13 @@ void CFWL_ComboBox::DisForm_OnFocusChanged(CFWL_Message* pMsg, bool bSet) {
if (bSet) {
m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
if ((m_pEdit->GetStates() & FWL_WGTSTATE_Focused) == 0) {
- CFWL_MsgSetFocus msg;
- msg.m_pDstTarget = m_pEdit.get();
- msg.m_pSrcTarget = nullptr;
+ CFWL_MsgSetFocus msg(nullptr, m_pEdit.get());
m_pEdit->GetDelegate()->OnProcessMessage(&msg);
}
} else {
m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused;
DisForm_ShowDropList(false);
- CFWL_MsgKillFocus msg;
- msg.m_pDstTarget = nullptr;
- msg.m_pSrcTarget = m_pEdit.get();
+ CFWL_MsgKillFocus msg(m_pEdit.get());
m_pEdit->GetDelegate()->OnProcessMessage(&msg);
}
}
diff --git a/xfa/fwl/core/cfwl_comboboxproxy.cpp b/xfa/fwl/core/cfwl_comboboxproxy.cpp
index 4ad358d723..4fb6bbb3ac 100644
--- a/xfa/fwl/core/cfwl_comboboxproxy.cpp
+++ b/xfa/fwl/core/cfwl_comboboxproxy.cpp
@@ -31,8 +31,8 @@ void CFWL_ComboBoxProxy::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::Mouse: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -46,10 +46,10 @@ void CFWL_ComboBoxProxy::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::KillFocus:
+ case CFWL_Message::Type::KillFocus:
OnFocusChanged(pMessage, false);
break;
- case CFWL_MessageType::SetFocus:
+ case CFWL_Message::Type::SetFocus:
OnFocusChanged(pMessage, true);
break;
default:
diff --git a/xfa/fwl/core/cfwl_comboedit.cpp b/xfa/fwl/core/cfwl_comboedit.cpp
index af5c2a74b6..32e4cbb2dc 100644
--- a/xfa/fwl/core/cfwl_comboedit.cpp
+++ b/xfa/fwl/core/cfwl_comboedit.cpp
@@ -47,18 +47,18 @@ void CFWL_ComboEdit::OnProcessMessage(CFWL_Message* pMessage) {
return;
bool backDefault = true;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::SetFocus: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus: {
m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
backDefault = false;
break;
}
- case CFWL_MessageType::KillFocus: {
+ case CFWL_Message::Type::KillFocus: {
m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused;
backDefault = false;
break;
}
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
if ((pMsg->m_dwCmd == FWL_MouseCommand::LeftButtonDown) &&
((m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) == 0)) {
diff --git a/xfa/fwl/core/cfwl_combolist.cpp b/xfa/fwl/core/cfwl_combolist.cpp
index e333cda18a..ad80ac0475 100644
--- a/xfa/fwl/core/cfwl_combolist.cpp
+++ b/xfa/fwl/core/cfwl_combolist.cpp
@@ -77,12 +77,12 @@ void CFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- CFWL_MessageType dwHashCode = pMessage->GetClassID();
+ CFWL_Message::Type type = pMessage->GetType();
bool backDefault = true;
- if (dwHashCode == CFWL_MessageType::SetFocus ||
- dwHashCode == CFWL_MessageType::KillFocus) {
- OnDropListFocusChanged(pMessage, dwHashCode == CFWL_MessageType::SetFocus);
- } else if (dwHashCode == CFWL_MessageType::Mouse) {
+ if (type == CFWL_Message::Type::SetFocus ||
+ type == CFWL_Message::Type::KillFocus) {
+ OnDropListFocusChanged(pMessage, type == CFWL_Message::Type::SetFocus);
+ } else if (type == CFWL_Message::Type::Mouse) {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
CFWL_ScrollBar* vertSB = GetVertScrollBar();
if (IsShowScrollBar(true) && vertSB) {
@@ -114,7 +114,7 @@ void CFWL_ComboList::OnProcessMessage(CFWL_Message* pMessage) {
default:
break;
}
- } else if (dwHashCode == CFWL_MessageType::Key) {
+ } else if (type == CFWL_Message::Type::Key) {
backDefault = !OnDropListKey(static_cast<CFWL_MsgKey*>(pMessage));
}
if (backDefault)
diff --git a/xfa/fwl/core/cfwl_datetimeedit.cpp b/xfa/fwl/core/cfwl_datetimeedit.cpp
index b74efb1284..dc7aa1faef 100644
--- a/xfa/fwl/core/cfwl_datetimeedit.cpp
+++ b/xfa/fwl/core/cfwl_datetimeedit.cpp
@@ -26,18 +26,17 @@ void CFWL_DateTimeEdit::OnProcessMessage(CFWL_Message* pMessage) {
return;
}
- CFWL_MessageType dwHashCode = pMessage->GetClassID();
- if (dwHashCode == CFWL_MessageType::SetFocus ||
- dwHashCode == CFWL_MessageType::KillFocus) {
+ CFWL_Message::Type type = pMessage->GetType();
+ if (type == CFWL_Message::Type::SetFocus ||
+ type == CFWL_Message::Type::KillFocus) {
CFWL_Widget* pOuter = GetOuter();
pOuter->GetDelegate()->OnProcessMessage(pMessage);
}
}
void CFWL_DateTimeEdit::DisForm_OnProcessMessage(CFWL_Message* pMessage) {
- CFWL_MessageType dwHashCode = pMessage->GetClassID();
if (!m_pWidgetMgr->IsFormDisabled() ||
- dwHashCode != CFWL_MessageType::Mouse) {
+ pMessage->GetType() != CFWL_Message::Type::Mouse) {
CFWL_Edit::OnProcessMessage(pMessage);
return;
}
diff --git a/xfa/fwl/core/cfwl_datetimepicker.cpp b/xfa/fwl/core/cfwl_datetimepicker.cpp
index 35b038d6ce..28f174c374 100644
--- a/xfa/fwl/core/cfwl_datetimepicker.cpp
+++ b/xfa/fwl/core/cfwl_datetimepicker.cpp
@@ -10,7 +10,7 @@
#include <utility>
#include "third_party/base/ptr_util.h"
-#include "xfa/fwl/core/cfwl_evteditchanged.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_evtselectchanged.h"
#include "xfa/fwl/core/cfwl_formproxy.h"
#include "xfa/fwl/core/cfwl_msgmouse.h"
@@ -192,7 +192,7 @@ void CFWL_DateTimePicker::SetEditText(const CFX_WideString& wsText) {
m_pEdit->SetText(wsText);
Repaint(&m_rtClient);
- CFWL_EvtEditChanged ev;
+ CFWL_Event ev(CFWL_Event::Type::EditChanged);
DispatchEvent(&ev);
}
@@ -347,8 +347,7 @@ void CFWL_DateTimePicker::ProcessSelChanged(int32_t iYear,
m_pEdit->Update();
Repaint(&m_rtClient);
- CFWL_EvtSelectChanged ev;
- ev.m_pSrcTarget = this;
+ CFWL_EvtSelectChanged ev(this);
ev.iYear = m_iYear;
ev.iMonth = m_iMonth;
ev.iDay = m_iDay;
@@ -399,9 +398,7 @@ void CFWL_DateTimePicker::DisForm_ShowMonthCalendar(bool bActivate) {
m_pMonthCal->SetStates(FWL_WGTSTATE_Invisible, !bActivate);
if (bActivate) {
- CFWL_MsgSetFocus msg;
- msg.m_pDstTarget = m_pMonthCal.get();
- msg.m_pSrcTarget = m_pEdit.get();
+ CFWL_MsgSetFocus msg(m_pEdit.get(), m_pMonthCal.get());
m_pEdit->GetDelegate()->OnProcessMessage(&msg);
}
@@ -520,14 +517,14 @@ void CFWL_DateTimePicker::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::SetFocus:
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
OnFocusChanged(pMessage, true);
break;
- case CFWL_MessageType::KillFocus:
+ case CFWL_Message::Type::KillFocus:
OnFocusChanged(pMessage, false);
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMouse = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMouse->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -547,7 +544,7 @@ void CFWL_DateTimePicker::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
if (m_pEdit->GetStates() & FWL_WGTSTATE_Focused) {
m_pEdit->GetDelegate()->OnProcessMessage(pMessage);
return;
diff --git a/xfa/fwl/core/cfwl_edit.cpp b/xfa/fwl/core/cfwl_edit.cpp
index 4544ebcb82..751bf4336a 100644
--- a/xfa/fwl/core/cfwl_edit.cpp
+++ b/xfa/fwl/core/cfwl_edit.cpp
@@ -20,9 +20,9 @@
#include "xfa/fgas/font/cfgas_gefont.h"
#include "xfa/fwl/core/cfwl_app.h"
#include "xfa/fwl/core/cfwl_caret.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_evtcheckword.h"
#include "xfa/fwl/core/cfwl_evttextchanged.h"
-#include "xfa/fwl/core/cfwl_evttextfull.h"
#include "xfa/fwl/core/cfwl_evtvalidate.h"
#include "xfa/fwl/core/cfwl_msgkey.h"
#include "xfa/fwl/core/cfwl_msgmouse.h"
@@ -200,8 +200,7 @@ void CFWL_Edit::DrawSpellCheck(CFX_Graphics* pGraphics,
pGraphics->ConcatMatrix(const_cast<CFX_Matrix*>(pMatrix));
CFX_Color crLine(0xFFFF0000);
- CFWL_EvtCheckWord checkWordEvent;
- checkWordEvent.m_pSrcTarget = this;
+ CFWL_EvtCheckWord checkWordEvent(this);
CFX_ByteString sLatinWord;
CFX_Path pathSpell;
@@ -452,11 +451,7 @@ void CFWL_Edit::On_TextChanged(CFDE_TxtEdtEngine* pEdit,
CFX_RectF rtTemp;
GetClientRect(rtTemp);
- CFWL_EvtTextChanged event;
- event.m_pSrcTarget = this;
- event.nChangeType = ChangeInfo.nChangeType;
- event.wsInsert = ChangeInfo.wsInsert;
- event.wsDelete = ChangeInfo.wsDelete;
+ CFWL_EvtTextChanged event(this);
event.wsPrevText = ChangeInfo.wsPrevText;
DispatchEvent(&event);
@@ -502,9 +497,7 @@ bool CFWL_Edit::On_Validate(CFDE_TxtEdtEngine* pEdit, CFX_WideString& wsText) {
if (!pDst)
pDst = this;
- CFWL_EvtValidate event;
- event.pDstWidget = pDst;
- event.m_pSrcTarget = this;
+ CFWL_EvtValidate event(this);
event.wsInsert = wsText;
event.bValidate = true;
DispatchEvent(&event);
@@ -1277,8 +1270,7 @@ void CFWL_Edit::ProcessInsertError(int32_t iError) {
if (iError != -2)
return;
- CFWL_EvtTextFull textFullEvent;
- textFullEvent.m_pSrcTarget = this;
+ CFWL_Event textFullEvent(CFWL_Event::Type::TextFull, this);
DispatchEvent(&textFullEvent);
}
@@ -1286,13 +1278,14 @@ void CFWL_Edit::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- switch (dwMsgCode) {
- case CFWL_MessageType::SetFocus:
- case CFWL_MessageType::KillFocus:
- OnFocusChanged(pMessage, dwMsgCode == CFWL_MessageType::SetFocus);
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
+ OnFocusChanged(pMessage, true);
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::KillFocus:
+ OnFocusChanged(pMessage, false);
+ break;
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -1315,7 +1308,7 @@ void CFWL_Edit::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage);
if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown)
OnKeyDown(pKey);
@@ -1332,7 +1325,7 @@ void CFWL_Edit::OnProcessMessage(CFWL_Message* pMessage) {
void CFWL_Edit::OnProcessEvent(CFWL_Event* pEvent) {
if (!pEvent)
return;
- if (pEvent->GetClassID() != CFWL_EventType::Scroll)
+ if (pEvent->GetType() != CFWL_Event::Type::Scroll)
return;
CFWL_Widget* pSrcTarget = pEvent->m_pSrcTarget;
@@ -1522,11 +1515,7 @@ void CFWL_Edit::OnKeyDown(CFWL_MsgKey* pMsg) {
break;
}
case FWL_VKEY_F2:
- break;
- case FWL_VKEY_Tab: {
- DispatchKeyEvent(pMsg);
- break;
- }
+ case FWL_VKEY_Tab:
default:
break;
}
@@ -1589,54 +1578,54 @@ void CFWL_Edit::OnChar(CFWL_MsgKey* pMsg) {
}
bool CFWL_Edit::OnScroll(CFWL_ScrollBar* pScrollBar,
- FWL_SCBCODE dwCode,
+ CFWL_EvtScroll::Code dwCode,
FX_FLOAT fPos) {
CFX_SizeF fs;
pScrollBar->GetRange(&fs.x, &fs.y);
FX_FLOAT iCurPos = pScrollBar->GetPos();
FX_FLOAT fStep = pScrollBar->GetStepSize();
switch (dwCode) {
- case FWL_SCBCODE::Min: {
+ case CFWL_EvtScroll::Code::Min: {
fPos = fs.x;
break;
}
- case FWL_SCBCODE::Max: {
+ case CFWL_EvtScroll::Code::Max: {
fPos = fs.y;
break;
}
- case FWL_SCBCODE::StepBackward: {
+ case CFWL_EvtScroll::Code::StepBackward: {
fPos -= fStep;
if (fPos < fs.x + fStep / 2) {
fPos = fs.x;
}
break;
}
- case FWL_SCBCODE::StepForward: {
+ case CFWL_EvtScroll::Code::StepForward: {
fPos += fStep;
if (fPos > fs.y - fStep / 2) {
fPos = fs.y;
}
break;
}
- case FWL_SCBCODE::PageBackward: {
+ case CFWL_EvtScroll::Code::PageBackward: {
fPos -= pScrollBar->GetPageSize();
if (fPos < fs.x) {
fPos = fs.x;
}
break;
}
- case FWL_SCBCODE::PageForward: {
+ case CFWL_EvtScroll::Code::PageForward: {
fPos += pScrollBar->GetPageSize();
if (fPos > fs.y) {
fPos = fs.y;
}
break;
}
- case FWL_SCBCODE::Pos:
- case FWL_SCBCODE::TrackPos:
- case FWL_SCBCODE::None:
+ case CFWL_EvtScroll::Code::Pos:
+ case CFWL_EvtScroll::Code::TrackPos:
+ case CFWL_EvtScroll::Code::None:
break;
- case FWL_SCBCODE::EndScroll:
+ case CFWL_EvtScroll::Code::EndScroll:
return false;
}
if (iCurPos == fPos)
diff --git a/xfa/fwl/core/cfwl_edit.h b/xfa/fwl/core/cfwl_edit.h
index 342c6dd4d2..d560bc5d8d 100644
--- a/xfa/fwl/core/cfwl_edit.h
+++ b/xfa/fwl/core/cfwl_edit.h
@@ -166,7 +166,9 @@ class CFWL_Edit : public CFWL_Widget {
void OnMouseMove(CFWL_MsgMouse* pMsg);
void OnKeyDown(CFWL_MsgKey* pMsg);
void OnChar(CFWL_MsgKey* pMsg);
- bool OnScroll(CFWL_ScrollBar* pScrollBar, FWL_SCBCODE dwCode, FX_FLOAT fPos);
+ bool OnScroll(CFWL_ScrollBar* pScrollBar,
+ CFWL_EvtScroll::Code dwCode,
+ FX_FLOAT fPos);
CFX_RectF m_rtClient;
CFX_RectF m_rtEngine;
diff --git a/xfa/fwl/core/cfwl_event.cpp b/xfa/fwl/core/cfwl_event.cpp
index 06b734531f..d598f6974a 100644
--- a/xfa/fwl/core/cfwl_event.cpp
+++ b/xfa/fwl/core/cfwl_event.cpp
@@ -6,10 +6,15 @@
#include "xfa/fwl/core/cfwl_event.h"
-CFWL_Event::CFWL_Event() : m_pSrcTarget(nullptr), m_pDstTarget(nullptr) {}
+CFWL_Event::CFWL_Event(CFWL_Event::Type type)
+ : CFWL_Event(type, nullptr, nullptr) {}
-CFWL_Event::~CFWL_Event() {}
+CFWL_Event::CFWL_Event(Type type, CFWL_Widget* pSrcTarget)
+ : CFWL_Event(type, pSrcTarget, nullptr) {}
+
+CFWL_Event::CFWL_Event(Type type,
+ CFWL_Widget* pSrcTarget,
+ CFWL_Widget* pDstTarget)
+ : m_pSrcTarget(pSrcTarget), m_pDstTarget(pDstTarget), m_type(type) {}
-CFWL_EventType CFWL_Event::GetClassID() const {
- return CFWL_EventType::None;
-}
+CFWL_Event::~CFWL_Event() {}
diff --git a/xfa/fwl/core/cfwl_event.h b/xfa/fwl/core/cfwl_event.h
index fe8e1b37f0..aa435e54b2 100644
--- a/xfa/fwl/core/cfwl_event.h
+++ b/xfa/fwl/core/cfwl_event.h
@@ -14,41 +14,39 @@
#include "xfa/fwl/core/cfwl_msgmouse.h"
#include "xfa/fwl/core/fwl_error.h"
-enum class CFWL_EventType {
- None = 0,
-
- CheckStateChanged,
- CheckWord,
- Click,
- Close,
- EditChanged,
- Key,
- KillFocus,
- Mouse,
- MouseWheel,
- PostDropDown,
- PreDropDown,
- Scroll,
- SelectChanged,
- SetFocus,
- SizeChanged,
- TextChanged,
- TextFull,
- Validate
-};
-
class CFX_Graphics;
class CFWL_Widget;
class CFWL_Event {
public:
- CFWL_Event();
+ enum class Type {
+ CheckStateChanged,
+ CheckWord,
+ Click,
+ Close,
+ EditChanged,
+ Mouse,
+ PostDropDown,
+ PreDropDown,
+ Scroll,
+ SelectChanged,
+ TextChanged,
+ TextFull,
+ Validate
+ };
+
+ explicit CFWL_Event(Type type);
+ CFWL_Event(Type type, CFWL_Widget* pSrcTarget);
+ CFWL_Event(Type type, CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
virtual ~CFWL_Event();
- virtual CFWL_EventType GetClassID() const;
+ Type GetType() const { return m_type; }
CFWL_Widget* m_pSrcTarget;
CFWL_Widget* m_pDstTarget;
+
+ private:
+ Type m_type;
};
#endif // XFA_FWL_CORE_CFWL_EVENT_H_
diff --git a/xfa/fwl/core/cfwl_evtcheckstatechanged.cpp b/xfa/fwl/core/cfwl_evtcheckstatechanged.cpp
deleted file mode 100644
index 53f7848fae..0000000000
--- a/xfa/fwl/core/cfwl_evtcheckstatechanged.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtcheckstatechanged.h"
-
-CFWL_EvtCheckStateChanged::CFWL_EvtCheckStateChanged() {}
-
-CFWL_EvtCheckStateChanged::~CFWL_EvtCheckStateChanged() {}
-
-CFWL_EventType CFWL_EvtCheckStateChanged::GetClassID() const {
- return CFWL_EventType::CheckStateChanged;
-}
diff --git a/xfa/fwl/core/cfwl_evtcheckstatechanged.h b/xfa/fwl/core/cfwl_evtcheckstatechanged.h
deleted file mode 100644
index 544fbad896..0000000000
--- a/xfa/fwl/core/cfwl_evtcheckstatechanged.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTCHECKSTATECHANGED_H_
-#define XFA_FWL_CORE_CFWL_EVTCHECKSTATECHANGED_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtCheckStateChanged : public CFWL_Event {
- public:
- CFWL_EvtCheckStateChanged();
- ~CFWL_EvtCheckStateChanged() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTCHECKSTATECHANGED_H_
diff --git a/xfa/fwl/core/cfwl_evtcheckword.cpp b/xfa/fwl/core/cfwl_evtcheckword.cpp
index 99ecee96e0..88bdcf6760 100644
--- a/xfa/fwl/core/cfwl_evtcheckword.cpp
+++ b/xfa/fwl/core/cfwl_evtcheckword.cpp
@@ -6,10 +6,8 @@
#include "xfa/fwl/core/cfwl_evtcheckword.h"
-CFWL_EvtCheckWord::CFWL_EvtCheckWord() {}
+CFWL_EvtCheckWord::CFWL_EvtCheckWord(CFWL_Widget* pSrcTarget)
+ : CFWL_Event(CFWL_Event::Type::CheckWord, pSrcTarget) {}
CFWL_EvtCheckWord::~CFWL_EvtCheckWord() {}
-CFWL_EventType CFWL_EvtCheckWord::GetClassID() const {
- return CFWL_EventType::CheckWord;
-}
diff --git a/xfa/fwl/core/cfwl_evtcheckword.h b/xfa/fwl/core/cfwl_evtcheckword.h
index aceb865cf5..aa853c6a8f 100644
--- a/xfa/fwl/core/cfwl_evtcheckword.h
+++ b/xfa/fwl/core/cfwl_evtcheckword.h
@@ -11,11 +11,9 @@
class CFWL_EvtCheckWord : public CFWL_Event {
public:
- CFWL_EvtCheckWord();
+ explicit CFWL_EvtCheckWord(CFWL_Widget* pSrcTarget);
~CFWL_EvtCheckWord() override;
- CFWL_EventType GetClassID() const override;
-
CFX_ByteString bsWord;
bool bCheckWord;
};
diff --git a/xfa/fwl/core/cfwl_evtclick.cpp b/xfa/fwl/core/cfwl_evtclick.cpp
deleted file mode 100644
index 35ff6451f6..0000000000
--- a/xfa/fwl/core/cfwl_evtclick.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtclick.h"
-
-CFWL_EvtClick::CFWL_EvtClick() {}
-
-CFWL_EvtClick::~CFWL_EvtClick() {}
-
-CFWL_EventType CFWL_EvtClick::GetClassID() const {
- return CFWL_EventType::Click;
-}
diff --git a/xfa/fwl/core/cfwl_evtclick.h b/xfa/fwl/core/cfwl_evtclick.h
deleted file mode 100644
index 280004a6e9..0000000000
--- a/xfa/fwl/core/cfwl_evtclick.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTCLICK_H_
-#define XFA_FWL_CORE_CFWL_EVTCLICK_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtClick : public CFWL_Event {
- public:
- CFWL_EvtClick();
- ~CFWL_EvtClick() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTCLICK_H_
diff --git a/xfa/fwl/core/cfwl_evtclose.cpp b/xfa/fwl/core/cfwl_evtclose.cpp
deleted file mode 100644
index 72713a17d1..0000000000
--- a/xfa/fwl/core/cfwl_evtclose.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtclose.h"
-
-CFWL_EvtClose::CFWL_EvtClose() {}
-
-CFWL_EvtClose::~CFWL_EvtClose() {}
-
-CFWL_EventType CFWL_EvtClose::GetClassID() const {
- return CFWL_EventType::Close;
-}
diff --git a/xfa/fwl/core/cfwl_evtclose.h b/xfa/fwl/core/cfwl_evtclose.h
deleted file mode 100644
index 5847a39fdf..0000000000
--- a/xfa/fwl/core/cfwl_evtclose.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTCLOSE_H_
-#define XFA_FWL_CORE_CFWL_EVTCLOSE_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtClose : public CFWL_Event {
- public:
- CFWL_EvtClose();
- ~CFWL_EvtClose() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTCLOSE_H_
diff --git a/xfa/fwl/core/cfwl_evteditchanged.cpp b/xfa/fwl/core/cfwl_evteditchanged.cpp
deleted file mode 100644
index abffbe80e5..0000000000
--- a/xfa/fwl/core/cfwl_evteditchanged.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evteditchanged.h"
-
-CFWL_EvtEditChanged::CFWL_EvtEditChanged() {}
-
-CFWL_EvtEditChanged::~CFWL_EvtEditChanged() {}
-
-CFWL_EventType CFWL_EvtEditChanged::GetClassID() const {
- return CFWL_EventType::EditChanged;
-}
diff --git a/xfa/fwl/core/cfwl_evteditchanged.h b/xfa/fwl/core/cfwl_evteditchanged.h
deleted file mode 100644
index d910f7d6a6..0000000000
--- a/xfa/fwl/core/cfwl_evteditchanged.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTEDITCHANGED_H_
-#define XFA_FWL_CORE_CFWL_EVTEDITCHANGED_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtEditChanged : public CFWL_Event {
- public:
- CFWL_EvtEditChanged();
- ~CFWL_EvtEditChanged() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTEDITCHANGED_H_
diff --git a/xfa/fwl/core/cfwl_evtkey.cpp b/xfa/fwl/core/cfwl_evtkey.cpp
deleted file mode 100644
index 492c42fc98..0000000000
--- a/xfa/fwl/core/cfwl_evtkey.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtkey.h"
-
-CFWL_EvtKey::CFWL_EvtKey() {}
-
-CFWL_EvtKey::~CFWL_EvtKey() {}
-
-CFWL_EventType CFWL_EvtKey::GetClassID() const {
- return CFWL_EventType::Key;
-}
diff --git a/xfa/fwl/core/cfwl_evtkey.h b/xfa/fwl/core/cfwl_evtkey.h
deleted file mode 100644
index 634456260a..0000000000
--- a/xfa/fwl/core/cfwl_evtkey.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTKEY_H_
-#define XFA_FWL_CORE_CFWL_EVTKEY_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtKey : public CFWL_Event {
- public:
- CFWL_EvtKey();
- ~CFWL_EvtKey() override;
-
- CFWL_EventType GetClassID() const override;
-
- uint32_t m_dwKeyCode;
- uint32_t m_dwFlags;
- FWL_KeyCommand m_dwCmd;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTKEY_H_
diff --git a/xfa/fwl/core/cfwl_evtkillfocus.cpp b/xfa/fwl/core/cfwl_evtkillfocus.cpp
deleted file mode 100644
index ad6f40bcc3..0000000000
--- a/xfa/fwl/core/cfwl_evtkillfocus.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtkillfocus.h"
-
-CFWL_EvtKillFocus::CFWL_EvtKillFocus() {}
-
-CFWL_EvtKillFocus::~CFWL_EvtKillFocus() {}
-
-CFWL_EventType CFWL_EvtKillFocus::GetClassID() const {
- return CFWL_EventType::KillFocus;
-}
diff --git a/xfa/fwl/core/cfwl_evtkillfocus.h b/xfa/fwl/core/cfwl_evtkillfocus.h
deleted file mode 100644
index 737053bc3d..0000000000
--- a/xfa/fwl/core/cfwl_evtkillfocus.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTKILLFOCUS_H_
-#define XFA_FWL_CORE_CFWL_EVTKILLFOCUS_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtKillFocus : public CFWL_Event {
- public:
- CFWL_EvtKillFocus();
- ~CFWL_EvtKillFocus() override;
-
- CFWL_EventType GetClassID() const override;
-
- CFWL_Widget* m_pKillFocus;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTKILLFOCUS_H_
diff --git a/xfa/fwl/core/cfwl_evtmouse.cpp b/xfa/fwl/core/cfwl_evtmouse.cpp
index c85172b738..8bfce8a9c5 100644
--- a/xfa/fwl/core/cfwl_evtmouse.cpp
+++ b/xfa/fwl/core/cfwl_evtmouse.cpp
@@ -6,10 +6,10 @@
#include "xfa/fwl/core/cfwl_evtmouse.h"
-CFWL_EvtMouse::CFWL_EvtMouse() {}
+CFWL_EvtMouse::CFWL_EvtMouse(CFWL_Widget* pSrcTarget)
+ : CFWL_EvtMouse(pSrcTarget, nullptr) {}
-CFWL_EvtMouse::~CFWL_EvtMouse() {}
+CFWL_EvtMouse::CFWL_EvtMouse(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget)
+ : CFWL_Event(CFWL_Event::Type::Mouse, pSrcTarget, pDstTarget) {}
-CFWL_EventType CFWL_EvtMouse::GetClassID() const {
- return CFWL_EventType::Mouse;
-}
+CFWL_EvtMouse::~CFWL_EvtMouse() {}
diff --git a/xfa/fwl/core/cfwl_evtmouse.h b/xfa/fwl/core/cfwl_evtmouse.h
index 386301ea5e..e8b1fd541b 100644
--- a/xfa/fwl/core/cfwl_evtmouse.h
+++ b/xfa/fwl/core/cfwl_evtmouse.h
@@ -11,14 +11,10 @@
class CFWL_EvtMouse : public CFWL_Event {
public:
- CFWL_EvtMouse();
+ explicit CFWL_EvtMouse(CFWL_Widget* pSrcTarget);
+ CFWL_EvtMouse(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_EvtMouse() override;
- CFWL_EventType GetClassID() const override;
-
- FX_FLOAT m_fx;
- FX_FLOAT m_fy;
- uint32_t m_dwFlags;
FWL_MouseCommand m_dwCmd;
};
diff --git a/xfa/fwl/core/cfwl_evtmousewheel.cpp b/xfa/fwl/core/cfwl_evtmousewheel.cpp
deleted file mode 100644
index 215947c0ea..0000000000
--- a/xfa/fwl/core/cfwl_evtmousewheel.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtmousewheel.h"
-
-CFWL_EvtMouseWheel::CFWL_EvtMouseWheel() {}
-
-CFWL_EvtMouseWheel::~CFWL_EvtMouseWheel() {}
-
-CFWL_EventType CFWL_EvtMouseWheel::GetClassID() const {
- return CFWL_EventType::MouseWheel;
-}
diff --git a/xfa/fwl/core/cfwl_evtmousewheel.h b/xfa/fwl/core/cfwl_evtmousewheel.h
deleted file mode 100644
index 09e73ca42e..0000000000
--- a/xfa/fwl/core/cfwl_evtmousewheel.h
+++ /dev/null
@@ -1,26 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTMOUSEWHEEL_H_
-#define XFA_FWL_CORE_CFWL_EVTMOUSEWHEEL_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtMouseWheel : public CFWL_Event {
- public:
- CFWL_EvtMouseWheel();
- ~CFWL_EvtMouseWheel() override;
-
- CFWL_EventType GetClassID() const override;
-
- FX_FLOAT m_fx;
- FX_FLOAT m_fy;
- FX_FLOAT m_fDeltaX;
- FX_FLOAT m_fDeltaY;
- uint32_t m_dwFlags;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTMOUSEWHEEL_H_
diff --git a/xfa/fwl/core/cfwl_evtpostdropdown.cpp b/xfa/fwl/core/cfwl_evtpostdropdown.cpp
deleted file mode 100644
index 52ba803197..0000000000
--- a/xfa/fwl/core/cfwl_evtpostdropdown.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtpostdropdown.h"
-
-CFWL_EvtPostDropDown::CFWL_EvtPostDropDown() {}
-
-CFWL_EvtPostDropDown::~CFWL_EvtPostDropDown() {}
-
-CFWL_EventType CFWL_EvtPostDropDown::GetClassID() const {
- return CFWL_EventType::PostDropDown;
-}
diff --git a/xfa/fwl/core/cfwl_evtpostdropdown.h b/xfa/fwl/core/cfwl_evtpostdropdown.h
deleted file mode 100644
index b4d8516593..0000000000
--- a/xfa/fwl/core/cfwl_evtpostdropdown.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTPOSTDROPDOWN_H_
-#define XFA_FWL_CORE_CFWL_EVTPOSTDROPDOWN_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtPostDropDown : public CFWL_Event {
- public:
- CFWL_EvtPostDropDown();
- ~CFWL_EvtPostDropDown() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTPOSTDROPDOWN_H_
diff --git a/xfa/fwl/core/cfwl_evtpredropdown.cpp b/xfa/fwl/core/cfwl_evtpredropdown.cpp
deleted file mode 100644
index 12fe9fc727..0000000000
--- a/xfa/fwl/core/cfwl_evtpredropdown.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtpredropdown.h"
-
-CFWL_EvtPreDropDown::CFWL_EvtPreDropDown() {}
-
-CFWL_EvtPreDropDown::~CFWL_EvtPreDropDown() {}
-
-CFWL_EventType CFWL_EvtPreDropDown::GetClassID() const {
- return CFWL_EventType::PreDropDown;
-}
diff --git a/xfa/fwl/core/cfwl_evtpredropdown.h b/xfa/fwl/core/cfwl_evtpredropdown.h
deleted file mode 100644
index df4d29abe4..0000000000
--- a/xfa/fwl/core/cfwl_evtpredropdown.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTPREDROPDOWN_H_
-#define XFA_FWL_CORE_CFWL_EVTPREDROPDOWN_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtPreDropDown : public CFWL_Event {
- public:
- CFWL_EvtPreDropDown();
- ~CFWL_EvtPreDropDown() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTPREDROPDOWN_H_
diff --git a/xfa/fwl/core/cfwl_evtscroll.cpp b/xfa/fwl/core/cfwl_evtscroll.cpp
index 37e561017e..00ca57eb84 100644
--- a/xfa/fwl/core/cfwl_evtscroll.cpp
+++ b/xfa/fwl/core/cfwl_evtscroll.cpp
@@ -6,10 +6,7 @@
#include "xfa/fwl/core/cfwl_evtscroll.h"
-CFWL_EvtScroll::CFWL_EvtScroll() {}
+CFWL_EvtScroll::CFWL_EvtScroll(CFWL_Widget* pSrcTarget)
+ : CFWL_Event(CFWL_Event::Type::Scroll, pSrcTarget) {}
CFWL_EvtScroll::~CFWL_EvtScroll() {}
-
-CFWL_EventType CFWL_EvtScroll::GetClassID() const {
- return CFWL_EventType::Scroll;
-}
diff --git a/xfa/fwl/core/cfwl_evtscroll.h b/xfa/fwl/core/cfwl_evtscroll.h
index d8da34e86d..64ee7815f6 100644
--- a/xfa/fwl/core/cfwl_evtscroll.h
+++ b/xfa/fwl/core/cfwl_evtscroll.h
@@ -9,29 +9,26 @@
#include "xfa/fwl/core/cfwl_event.h"
-enum class FWL_SCBCODE {
- None = 1,
- Min,
- Max,
- PageBackward,
- PageForward,
- StepBackward,
- StepForward,
- Pos,
- TrackPos,
- EndScroll,
-};
-
class CFWL_EvtScroll : public CFWL_Event {
public:
- CFWL_EvtScroll();
+ enum class Code {
+ None = 1,
+ Min,
+ Max,
+ PageBackward,
+ PageForward,
+ StepBackward,
+ StepForward,
+ Pos,
+ TrackPos,
+ EndScroll,
+ };
+
+ explicit CFWL_EvtScroll(CFWL_Widget* pSrcTarget);
~CFWL_EvtScroll() override;
- CFWL_EventType GetClassID() const override;
-
- FWL_SCBCODE m_iScrollCode;
+ Code m_iScrollCode;
FX_FLOAT m_fPos;
- bool* m_pRet;
};
#endif // XFA_FWL_CORE_CFWL_EVTSCROLL_H_
diff --git a/xfa/fwl/core/cfwl_evtselectchanged.cpp b/xfa/fwl/core/cfwl_evtselectchanged.cpp
index 3eead94d6e..811fc9490f 100644
--- a/xfa/fwl/core/cfwl_evtselectchanged.cpp
+++ b/xfa/fwl/core/cfwl_evtselectchanged.cpp
@@ -6,10 +6,7 @@
#include "xfa/fwl/core/cfwl_evtselectchanged.h"
-CFWL_EvtSelectChanged::CFWL_EvtSelectChanged() {}
+CFWL_EvtSelectChanged::CFWL_EvtSelectChanged(CFWL_Widget* pSrcTarget)
+ : CFWL_Event(CFWL_Event::Type::SelectChanged, pSrcTarget) {}
CFWL_EvtSelectChanged::~CFWL_EvtSelectChanged() {}
-
-CFWL_EventType CFWL_EvtSelectChanged::GetClassID() const {
- return CFWL_EventType::SelectChanged;
-}
diff --git a/xfa/fwl/core/cfwl_evtselectchanged.h b/xfa/fwl/core/cfwl_evtselectchanged.h
index f01b2aac6a..94381c7063 100644
--- a/xfa/fwl/core/cfwl_evtselectchanged.h
+++ b/xfa/fwl/core/cfwl_evtselectchanged.h
@@ -11,11 +11,9 @@
class CFWL_EvtSelectChanged : public CFWL_Event {
public:
- CFWL_EvtSelectChanged();
+ explicit CFWL_EvtSelectChanged(CFWL_Widget* pSrcTarget);
~CFWL_EvtSelectChanged() override;
- CFWL_EventType GetClassID() const override;
-
// Used by ComboBox.
bool bLButtonUp;
diff --git a/xfa/fwl/core/cfwl_evtsetfocus.cpp b/xfa/fwl/core/cfwl_evtsetfocus.cpp
deleted file mode 100644
index def4c82726..0000000000
--- a/xfa/fwl/core/cfwl_evtsetfocus.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtsetfocus.h"
-
-CFWL_EvtSetFocus::CFWL_EvtSetFocus() {}
-
-CFWL_EvtSetFocus::~CFWL_EvtSetFocus() {}
-
-CFWL_EventType CFWL_EvtSetFocus::GetClassID() const {
- return CFWL_EventType::SetFocus;
-}
diff --git a/xfa/fwl/core/cfwl_evtsetfocus.h b/xfa/fwl/core/cfwl_evtsetfocus.h
deleted file mode 100644
index 0232b59576..0000000000
--- a/xfa/fwl/core/cfwl_evtsetfocus.h
+++ /dev/null
@@ -1,22 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTSETFOCUS_H_
-#define XFA_FWL_CORE_CFWL_EVTSETFOCUS_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtSetFocus : public CFWL_Event {
- public:
- CFWL_EvtSetFocus();
- ~CFWL_EvtSetFocus() override;
-
- CFWL_EventType GetClassID() const override;
-
- CFWL_Widget* m_pSetFocus;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTSETFOCUS_H_
diff --git a/xfa/fwl/core/cfwl_evtsizechanged.cpp b/xfa/fwl/core/cfwl_evtsizechanged.cpp
deleted file mode 100644
index efccde3f48..0000000000
--- a/xfa/fwl/core/cfwl_evtsizechanged.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evtsizechanged.h"
-
-CFWL_EvtSizeChanged::CFWL_EvtSizeChanged() {}
-
-CFWL_EvtSizeChanged::~CFWL_EvtSizeChanged() {}
-
-CFWL_EventType CFWL_EvtSizeChanged::GetClassID() const {
- return CFWL_EventType::SizeChanged;
-}
diff --git a/xfa/fwl/core/cfwl_evtsizechanged.h b/xfa/fwl/core/cfwl_evtsizechanged.h
deleted file mode 100644
index 33d526751f..0000000000
--- a/xfa/fwl/core/cfwl_evtsizechanged.h
+++ /dev/null
@@ -1,24 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTSIZECHANGED_H_
-#define XFA_FWL_CORE_CFWL_EVTSIZECHANGED_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtSizeChanged : public CFWL_Event {
- public:
- CFWL_EvtSizeChanged();
- ~CFWL_EvtSizeChanged() override;
-
- CFWL_EventType GetClassID() const override;
-
- CFWL_Widget* m_pWidget;
- CFX_RectF m_rtOld;
- CFX_RectF m_rtNew;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTSIZECHANGED_H_
diff --git a/xfa/fwl/core/cfwl_evttextchanged.cpp b/xfa/fwl/core/cfwl_evttextchanged.cpp
index 76718be6a2..d21dd037c1 100644
--- a/xfa/fwl/core/cfwl_evttextchanged.cpp
+++ b/xfa/fwl/core/cfwl_evttextchanged.cpp
@@ -6,10 +6,7 @@
#include "xfa/fwl/core/cfwl_evttextchanged.h"
-CFWL_EvtTextChanged::CFWL_EvtTextChanged() {}
+CFWL_EvtTextChanged::CFWL_EvtTextChanged(CFWL_Widget* pSrcTarget)
+ : CFWL_Event(CFWL_Event::Type::TextChanged, pSrcTarget) {}
CFWL_EvtTextChanged::~CFWL_EvtTextChanged() {}
-
-CFWL_EventType CFWL_EvtTextChanged::GetClassID() const {
- return CFWL_EventType::TextChanged;
-}
diff --git a/xfa/fwl/core/cfwl_evttextchanged.h b/xfa/fwl/core/cfwl_evttextchanged.h
index 69d28bb4a6..a2d0761f80 100644
--- a/xfa/fwl/core/cfwl_evttextchanged.h
+++ b/xfa/fwl/core/cfwl_evttextchanged.h
@@ -11,14 +11,9 @@
class CFWL_EvtTextChanged : public CFWL_Event {
public:
- CFWL_EvtTextChanged();
+ explicit CFWL_EvtTextChanged(CFWL_Widget* pSrcTarget);
~CFWL_EvtTextChanged() override;
- CFWL_EventType GetClassID() const override;
-
- int32_t nChangeType;
- CFX_WideString wsInsert;
- CFX_WideString wsDelete;
CFX_WideString wsPrevText;
};
diff --git a/xfa/fwl/core/cfwl_evttextfull.cpp b/xfa/fwl/core/cfwl_evttextfull.cpp
deleted file mode 100644
index 4762f24755..0000000000
--- a/xfa/fwl/core/cfwl_evttextfull.cpp
+++ /dev/null
@@ -1,15 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#include "xfa/fwl/core/cfwl_evttextfull.h"
-
-CFWL_EvtTextFull::CFWL_EvtTextFull() {}
-
-CFWL_EvtTextFull::~CFWL_EvtTextFull() {}
-
-CFWL_EventType CFWL_EvtTextFull::GetClassID() const {
- return CFWL_EventType::TextFull;
-}
diff --git a/xfa/fwl/core/cfwl_evttextfull.h b/xfa/fwl/core/cfwl_evttextfull.h
deleted file mode 100644
index 40fcd8a84e..0000000000
--- a/xfa/fwl/core/cfwl_evttextfull.h
+++ /dev/null
@@ -1,20 +0,0 @@
-// Copyright 2016 PDFium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
-
-#ifndef XFA_FWL_CORE_CFWL_EVTTEXTFULL_H_
-#define XFA_FWL_CORE_CFWL_EVTTEXTFULL_H_
-
-#include "xfa/fwl/core/cfwl_event.h"
-
-class CFWL_EvtTextFull : public CFWL_Event {
- public:
- CFWL_EvtTextFull();
- ~CFWL_EvtTextFull() override;
-
- CFWL_EventType GetClassID() const override;
-};
-
-#endif // XFA_FWL_CORE_CFWL_EVTTEXTFULL_H_
diff --git a/xfa/fwl/core/cfwl_evtvalidate.cpp b/xfa/fwl/core/cfwl_evtvalidate.cpp
index 7b795f6ca6..1f2b6977fa 100644
--- a/xfa/fwl/core/cfwl_evtvalidate.cpp
+++ b/xfa/fwl/core/cfwl_evtvalidate.cpp
@@ -6,10 +6,7 @@
#include "xfa/fwl/core/cfwl_evtvalidate.h"
-CFWL_EvtValidate::CFWL_EvtValidate() {}
+CFWL_EvtValidate::CFWL_EvtValidate(CFWL_Widget* pSrcTarget)
+ : CFWL_Event(CFWL_Event::Type::Validate, pSrcTarget) {}
CFWL_EvtValidate::~CFWL_EvtValidate() {}
-
-CFWL_EventType CFWL_EvtValidate::GetClassID() const {
- return CFWL_EventType::Validate;
-}
diff --git a/xfa/fwl/core/cfwl_evtvalidate.h b/xfa/fwl/core/cfwl_evtvalidate.h
index fae20b845b..dbd5413aa4 100644
--- a/xfa/fwl/core/cfwl_evtvalidate.h
+++ b/xfa/fwl/core/cfwl_evtvalidate.h
@@ -11,12 +11,9 @@
class CFWL_EvtValidate : public CFWL_Event {
public:
- CFWL_EvtValidate();
+ explicit CFWL_EvtValidate(CFWL_Widget* pSrcTarget);
~CFWL_EvtValidate() override;
- CFWL_EventType GetClassID() const override;
-
- CFWL_Widget* pDstWidget;
CFX_WideString wsInsert;
bool bValidate;
};
diff --git a/xfa/fwl/core/cfwl_form.cpp b/xfa/fwl/core/cfwl_form.cpp
index 4eec163900..00d47d4100 100644
--- a/xfa/fwl/core/cfwl_form.cpp
+++ b/xfa/fwl/core/cfwl_form.cpp
@@ -11,7 +11,7 @@
#include "third_party/base/ptr_util.h"
#include "xfa/fde/tto/fde_textout.h"
#include "xfa/fwl/core/cfwl_app.h"
-#include "xfa/fwl/core/cfwl_evtclose.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_formproxy.h"
#include "xfa/fwl/core/cfwl_msgmouse.h"
#include "xfa/fwl/core/cfwl_notedriver.h"
@@ -487,8 +487,8 @@ void CFWL_Form::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::Mouse: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -556,8 +556,7 @@ void CFWL_Form::OnLButtonUp(CFWL_MsgMouse* pMsg) {
}
m_bMaximized = !m_bMaximized;
} else if (pPressedBtn != m_pMinBox) {
- CFWL_EvtClose eClose;
- eClose.m_pSrcTarget = this;
+ CFWL_Event eClose(CFWL_Event::Type::Close, this);
DispatchEvent(&eClose);
}
}
diff --git a/xfa/fwl/core/cfwl_listbox.cpp b/xfa/fwl/core/cfwl_listbox.cpp
index dff981f283..be9e8b9395 100644
--- a/xfa/fwl/core/cfwl_listbox.cpp
+++ b/xfa/fwl/core/cfwl_listbox.cpp
@@ -772,15 +772,14 @@ void CFWL_ListBox::OnProcessMessage(CFWL_Message* pMessage) {
if (!IsEnabled())
return;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- switch (dwMsgCode) {
- case CFWL_MessageType::SetFocus:
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
OnFocusChanged(pMessage, true);
break;
- case CFWL_MessageType::KillFocus:
+ case CFWL_Message::Type::KillFocus:
OnFocusChanged(pMessage, false);
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -794,10 +793,10 @@ void CFWL_ListBox::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::MouseWheel:
+ case CFWL_Message::Type::MouseWheel:
OnMouseWheel(static_cast<CFWL_MsgMouseWheel*>(pMessage));
break;
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
CFWL_MsgKey* pMsg = static_cast<CFWL_MsgKey*>(pMessage);
if (pMsg->m_dwCmd == FWL_KeyCommand::KeyDown)
OnKeyDown(pMsg);
@@ -812,7 +811,7 @@ void CFWL_ListBox::OnProcessMessage(CFWL_Message* pMessage) {
void CFWL_ListBox::OnProcessEvent(CFWL_Event* pEvent) {
if (!pEvent)
return;
- if (pEvent->GetClassID() != CFWL_EventType::Scroll)
+ if (pEvent->GetType() != CFWL_Event::Type::Scroll)
return;
CFWL_Widget* pSrcTarget = pEvent->m_pSrcTarget;
@@ -949,50 +948,50 @@ void CFWL_ListBox::OnVK(CFWL_ListItem* pItem, bool bShift, bool bCtrl) {
}
bool CFWL_ListBox::OnScroll(CFWL_ScrollBar* pScrollBar,
- FWL_SCBCODE dwCode,
+ CFWL_EvtScroll::Code dwCode,
FX_FLOAT fPos) {
CFX_SizeF fs;
pScrollBar->GetRange(&fs.x, &fs.y);
FX_FLOAT iCurPos = pScrollBar->GetPos();
FX_FLOAT fStep = pScrollBar->GetStepSize();
switch (dwCode) {
- case FWL_SCBCODE::Min: {
+ case CFWL_EvtScroll::Code::Min: {
fPos = fs.x;
break;
}
- case FWL_SCBCODE::Max: {
+ case CFWL_EvtScroll::Code::Max: {
fPos = fs.y;
break;
}
- case FWL_SCBCODE::StepBackward: {
+ case CFWL_EvtScroll::Code::StepBackward: {
fPos -= fStep;
if (fPos < fs.x + fStep / 2)
fPos = fs.x;
break;
}
- case FWL_SCBCODE::StepForward: {
+ case CFWL_EvtScroll::Code::StepForward: {
fPos += fStep;
if (fPos > fs.y - fStep / 2)
fPos = fs.y;
break;
}
- case FWL_SCBCODE::PageBackward: {
+ case CFWL_EvtScroll::Code::PageBackward: {
fPos -= pScrollBar->GetPageSize();
if (fPos < fs.x)
fPos = fs.x;
break;
}
- case FWL_SCBCODE::PageForward: {
+ case CFWL_EvtScroll::Code::PageForward: {
fPos += pScrollBar->GetPageSize();
if (fPos > fs.y)
fPos = fs.y;
break;
}
- case FWL_SCBCODE::Pos:
- case FWL_SCBCODE::TrackPos:
- case FWL_SCBCODE::None:
+ case CFWL_EvtScroll::Code::Pos:
+ case CFWL_EvtScroll::Code::TrackPos:
+ case CFWL_EvtScroll::Code::None:
break;
- case FWL_SCBCODE::EndScroll:
+ case CFWL_EvtScroll::Code::EndScroll:
return false;
}
if (iCurPos != fPos) {
diff --git a/xfa/fwl/core/cfwl_listbox.h b/xfa/fwl/core/cfwl_listbox.h
index e30068b0b4..d2f439e108 100644
--- a/xfa/fwl/core/cfwl_listbox.h
+++ b/xfa/fwl/core/cfwl_listbox.h
@@ -148,7 +148,9 @@ class CFWL_ListBox : public CFWL_Widget {
void OnMouseWheel(CFWL_MsgMouseWheel* pMsg);
void OnKeyDown(CFWL_MsgKey* pMsg);
void OnVK(CFWL_ListItem* hItem, bool bShift, bool bCtrl);
- bool OnScroll(CFWL_ScrollBar* pScrollBar, FWL_SCBCODE dwCode, FX_FLOAT fPos);
+ bool OnScroll(CFWL_ScrollBar* pScrollBar,
+ CFWL_EvtScroll::Code dwCode,
+ FX_FLOAT fPos);
CFX_RectF m_rtClient;
CFX_RectF m_rtStatic;
diff --git a/xfa/fwl/core/cfwl_message.cpp b/xfa/fwl/core/cfwl_message.cpp
index e233900d6e..b20cf0e6a1 100644
--- a/xfa/fwl/core/cfwl_message.cpp
+++ b/xfa/fwl/core/cfwl_message.cpp
@@ -6,15 +6,22 @@
#include "xfa/fwl/core/cfwl_message.h"
-CFWL_Message::CFWL_Message()
- : m_pSrcTarget(nullptr), m_pDstTarget(nullptr), m_dwExtend(0) {}
+CFWL_Message::CFWL_Message(CFWL_Message::Type type)
+ : CFWL_Message(type, nullptr, nullptr) {}
+
+CFWL_Message::CFWL_Message(Type type, CFWL_Widget* pSrcTarget)
+ : CFWL_Message(type, pSrcTarget, nullptr) {}
+
+CFWL_Message::CFWL_Message(Type type,
+ CFWL_Widget* pSrcTarget,
+ CFWL_Widget* pDstTarget)
+ : m_pSrcTarget(pSrcTarget),
+ m_pDstTarget(pDstTarget),
+ m_dwExtend(0),
+ m_type(type) {}
CFWL_Message::~CFWL_Message() {}
std::unique_ptr<CFWL_Message> CFWL_Message::Clone() {
return nullptr;
}
-
-CFWL_MessageType CFWL_Message::GetClassID() const {
- return CFWL_MessageType::None;
-}
diff --git a/xfa/fwl/core/cfwl_message.h b/xfa/fwl/core/cfwl_message.h
index 827b4181e3..a1545b1013 100644
--- a/xfa/fwl/core/cfwl_message.h
+++ b/xfa/fwl/core/cfwl_message.h
@@ -14,28 +14,26 @@
#include "core/fxcrt/fx_system.h"
#include "xfa/fwl/core/fwl_error.h"
-enum class CFWL_MessageType {
- None = 0,
- Key,
- KillFocus,
- Mouse,
- MouseWheel,
- SetFocus
-};
-
class CFWL_Widget;
class CFWL_Message {
public:
- CFWL_Message();
+ enum class Type { Key, KillFocus, Mouse, MouseWheel, SetFocus };
+
+ explicit CFWL_Message(Type type);
+ CFWL_Message(Type type, CFWL_Widget* pSrcTarget);
+ CFWL_Message(Type type, CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
virtual ~CFWL_Message();
virtual std::unique_ptr<CFWL_Message> Clone();
- virtual CFWL_MessageType GetClassID() const;
+ Type GetType() const { return m_type; }
CFWL_Widget* m_pSrcTarget;
CFWL_Widget* m_pDstTarget;
uint32_t m_dwExtend;
+
+ private:
+ Type m_type;
};
diff --git a/xfa/fwl/core/cfwl_monthcalendar.cpp b/xfa/fwl/core/cfwl_monthcalendar.cpp
index 9d22b13509..a550d310c4 100644
--- a/xfa/fwl/core/cfwl_monthcalendar.cpp
+++ b/xfa/fwl/core/cfwl_monthcalendar.cpp
@@ -912,15 +912,14 @@ void CFWL_MonthCalendar::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- switch (dwMsgCode) {
- case CFWL_MessageType::SetFocus:
- case CFWL_MessageType::KillFocus:
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
+ case CFWL_Message::Type::KillFocus:
GetOuter()->GetDelegate()->OnProcessMessage(pMessage);
break;
- case CFWL_MessageType::Key:
+ case CFWL_Message::Type::Key:
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMouse = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMouse->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
diff --git a/xfa/fwl/core/cfwl_msgkey.cpp b/xfa/fwl/core/cfwl_msgkey.cpp
index 7d839f7203..3eda29ab49 100644
--- a/xfa/fwl/core/cfwl_msgkey.cpp
+++ b/xfa/fwl/core/cfwl_msgkey.cpp
@@ -10,14 +10,11 @@
#include "third_party/base/ptr_util.h"
-CFWL_MsgKey::CFWL_MsgKey() {}
+CFWL_MsgKey::CFWL_MsgKey(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget)
+ : CFWL_Message(CFWL_Message::Type::Key, pSrcTarget, pDstTarget) {}
CFWL_MsgKey::~CFWL_MsgKey() {}
std::unique_ptr<CFWL_Message> CFWL_MsgKey::Clone() {
return pdfium::MakeUnique<CFWL_MsgKey>(*this);
}
-
-CFWL_MessageType CFWL_MsgKey::GetClassID() const {
- return CFWL_MessageType::Key;
-}
diff --git a/xfa/fwl/core/cfwl_msgkey.h b/xfa/fwl/core/cfwl_msgkey.h
index c7cd74315c..36089ea43e 100644
--- a/xfa/fwl/core/cfwl_msgkey.h
+++ b/xfa/fwl/core/cfwl_msgkey.h
@@ -15,12 +15,11 @@ enum class FWL_KeyCommand { KeyDown, KeyUp, Char };
class CFWL_MsgKey : public CFWL_Message {
public:
- CFWL_MsgKey();
+ CFWL_MsgKey(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MsgKey() override;
// CFWL_Message
std::unique_ptr<CFWL_Message> Clone() override;
- CFWL_MessageType GetClassID() const override;
uint32_t m_dwKeyCode;
uint32_t m_dwFlags;
diff --git a/xfa/fwl/core/cfwl_msgkillfocus.cpp b/xfa/fwl/core/cfwl_msgkillfocus.cpp
index 0c8ac47029..c7164850d1 100644
--- a/xfa/fwl/core/cfwl_msgkillfocus.cpp
+++ b/xfa/fwl/core/cfwl_msgkillfocus.cpp
@@ -10,14 +10,15 @@
#include "third_party/base/ptr_util.h"
-CFWL_MsgKillFocus::CFWL_MsgKillFocus() {}
+CFWL_MsgKillFocus::CFWL_MsgKillFocus(CFWL_Widget* pSrcTarget)
+ : CFWL_MsgKillFocus(pSrcTarget, nullptr) {}
+
+CFWL_MsgKillFocus::CFWL_MsgKillFocus(CFWL_Widget* pSrcTarget,
+ CFWL_Widget* pDstTarget)
+ : CFWL_Message(CFWL_Message::Type::KillFocus, pSrcTarget, pDstTarget) {}
CFWL_MsgKillFocus::~CFWL_MsgKillFocus() {}
std::unique_ptr<CFWL_Message> CFWL_MsgKillFocus::Clone() {
return pdfium::MakeUnique<CFWL_MsgKillFocus>(*this);
}
-
-CFWL_MessageType CFWL_MsgKillFocus::GetClassID() const {
- return CFWL_MessageType::KillFocus;
-}
diff --git a/xfa/fwl/core/cfwl_msgkillfocus.h b/xfa/fwl/core/cfwl_msgkillfocus.h
index ef687524f9..1c176b122a 100644
--- a/xfa/fwl/core/cfwl_msgkillfocus.h
+++ b/xfa/fwl/core/cfwl_msgkillfocus.h
@@ -13,12 +13,12 @@
class CFWL_MsgKillFocus : public CFWL_Message {
public:
- CFWL_MsgKillFocus();
+ explicit CFWL_MsgKillFocus(CFWL_Widget* pSrcTarget);
+ CFWL_MsgKillFocus(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MsgKillFocus() override;
// CFWL_Message
std::unique_ptr<CFWL_Message> Clone() override;
- CFWL_MessageType GetClassID() const override;
CFWL_Widget* m_pSetFocus;
};
diff --git a/xfa/fwl/core/cfwl_msgmouse.cpp b/xfa/fwl/core/cfwl_msgmouse.cpp
index de2540d8fc..f8a4e64608 100644
--- a/xfa/fwl/core/cfwl_msgmouse.cpp
+++ b/xfa/fwl/core/cfwl_msgmouse.cpp
@@ -10,14 +10,11 @@
#include "third_party/base/ptr_util.h"
-CFWL_MsgMouse::CFWL_MsgMouse() {}
+CFWL_MsgMouse::CFWL_MsgMouse(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget)
+ : CFWL_Message(CFWL_Message::Type::Mouse, pSrcTarget, pDstTarget) {}
CFWL_MsgMouse::~CFWL_MsgMouse() {}
std::unique_ptr<CFWL_Message> CFWL_MsgMouse::Clone() {
return pdfium::MakeUnique<CFWL_MsgMouse>(*this);
}
-
-CFWL_MessageType CFWL_MsgMouse::GetClassID() const {
- return CFWL_MessageType::Mouse;
-}
diff --git a/xfa/fwl/core/cfwl_msgmouse.h b/xfa/fwl/core/cfwl_msgmouse.h
index 5a4054c024..0765cbc500 100644
--- a/xfa/fwl/core/cfwl_msgmouse.h
+++ b/xfa/fwl/core/cfwl_msgmouse.h
@@ -26,12 +26,11 @@ enum class FWL_MouseCommand {
class CFWL_MsgMouse : public CFWL_Message {
public:
- CFWL_MsgMouse();
+ CFWL_MsgMouse(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MsgMouse() override;
// CFWL_Message
std::unique_ptr<CFWL_Message> Clone() override;
- CFWL_MessageType GetClassID() const override;
FX_FLOAT m_fx;
FX_FLOAT m_fy;
diff --git a/xfa/fwl/core/cfwl_msgmousewheel.cpp b/xfa/fwl/core/cfwl_msgmousewheel.cpp
index 739c43174c..02629ec909 100644
--- a/xfa/fwl/core/cfwl_msgmousewheel.cpp
+++ b/xfa/fwl/core/cfwl_msgmousewheel.cpp
@@ -10,14 +10,12 @@
#include "third_party/base/ptr_util.h"
-CFWL_MsgMouseWheel::CFWL_MsgMouseWheel() {}
+CFWL_MsgMouseWheel::CFWL_MsgMouseWheel(CFWL_Widget* pSrcTarget,
+ CFWL_Widget* pDstTarget)
+ : CFWL_Message(CFWL_Message::Type::MouseWheel, pSrcTarget, pDstTarget) {}
CFWL_MsgMouseWheel::~CFWL_MsgMouseWheel() {}
std::unique_ptr<CFWL_Message> CFWL_MsgMouseWheel::Clone() {
return pdfium::MakeUnique<CFWL_MsgMouseWheel>(*this);
}
-
-CFWL_MessageType CFWL_MsgMouseWheel::GetClassID() const {
- return CFWL_MessageType::MouseWheel;
-}
diff --git a/xfa/fwl/core/cfwl_msgmousewheel.h b/xfa/fwl/core/cfwl_msgmousewheel.h
index 076870135b..503bcdebe8 100644
--- a/xfa/fwl/core/cfwl_msgmousewheel.h
+++ b/xfa/fwl/core/cfwl_msgmousewheel.h
@@ -13,12 +13,11 @@
class CFWL_MsgMouseWheel : public CFWL_Message {
public:
- CFWL_MsgMouseWheel();
+ CFWL_MsgMouseWheel(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MsgMouseWheel() override;
// CFWL_Message
std::unique_ptr<CFWL_Message> Clone() override;
- CFWL_MessageType GetClassID() const override;
FX_FLOAT m_fx;
FX_FLOAT m_fy;
diff --git a/xfa/fwl/core/cfwl_msgsetfocus.cpp b/xfa/fwl/core/cfwl_msgsetfocus.cpp
index 0463da1c6c..82e9610b15 100644
--- a/xfa/fwl/core/cfwl_msgsetfocus.cpp
+++ b/xfa/fwl/core/cfwl_msgsetfocus.cpp
@@ -10,14 +10,12 @@
#include "third_party/base/ptr_util.h"
-CFWL_MsgSetFocus::CFWL_MsgSetFocus() {}
+CFWL_MsgSetFocus::CFWL_MsgSetFocus(CFWL_Widget* pSrcTarget,
+ CFWL_Widget* pDstTarget)
+ : CFWL_Message(CFWL_Message::Type::SetFocus, pSrcTarget, pDstTarget) {}
CFWL_MsgSetFocus::~CFWL_MsgSetFocus() {}
std::unique_ptr<CFWL_Message> CFWL_MsgSetFocus::Clone() {
return pdfium::MakeUnique<CFWL_MsgSetFocus>(*this);
}
-
-CFWL_MessageType CFWL_MsgSetFocus::GetClassID() const {
- return CFWL_MessageType::SetFocus;
-}
diff --git a/xfa/fwl/core/cfwl_msgsetfocus.h b/xfa/fwl/core/cfwl_msgsetfocus.h
index 42f14ede77..628f7a6d66 100644
--- a/xfa/fwl/core/cfwl_msgsetfocus.h
+++ b/xfa/fwl/core/cfwl_msgsetfocus.h
@@ -13,14 +13,11 @@
class CFWL_MsgSetFocus : public CFWL_Message {
public:
- CFWL_MsgSetFocus();
+ CFWL_MsgSetFocus(CFWL_Widget* pSrcTarget, CFWL_Widget* pDstTarget);
~CFWL_MsgSetFocus() override;
// CFWL_Message
std::unique_ptr<CFWL_Message> Clone() override;
- CFWL_MessageType GetClassID() const override;
-
- CFWL_Widget* m_pKillFocus;
};
#endif // XFA_FWL_CORE_CFWL_MSGSETFOCUS_H_
diff --git a/xfa/fwl/core/cfwl_notedriver.cpp b/xfa/fwl/core/cfwl_notedriver.cpp
index 06d8fd5df9..00a0b3e4b7 100644
--- a/xfa/fwl/core/cfwl_notedriver.cpp
+++ b/xfa/fwl/core/cfwl_notedriver.cpp
@@ -91,9 +91,7 @@ bool CFWL_NoteDriver::SetFocus(CFWL_Widget* pFocus, bool bNotify) {
CFWL_Widget* pPrev = m_pFocus;
m_pFocus = pFocus;
if (pPrev) {
- CFWL_MsgKillFocus ms;
- ms.m_pDstTarget = pPrev;
- ms.m_pSrcTarget = pPrev;
+ CFWL_MsgKillFocus ms(pPrev, pPrev);
if (bNotify)
ms.m_dwExtend = 1;
@@ -107,8 +105,7 @@ bool CFWL_NoteDriver::SetFocus(CFWL_Widget* pFocus, bool bNotify) {
if (pForm)
pForm->SetSubFocus(pFocus);
- CFWL_MsgSetFocus ms;
- ms.m_pDstTarget = pFocus;
+ CFWL_MsgSetFocus ms(nullptr, pFocus);
if (bNotify)
ms.m_dwExtend = 1;
if (IFWL_WidgetDelegate* pDelegate = pFocus->GetDelegate())
@@ -222,34 +219,34 @@ void CFWL_NoteDriver::ProcessMessage(CFWL_Message* pMessage) {
if (!DispatchMessage(pMessage, pMessageForm))
return;
- if (pMessage->GetClassID() == CFWL_MessageType::Mouse)
+ if (pMessage->GetType() == CFWL_Message::Type::Mouse)
MouseSecondary(pMessage);
}
bool CFWL_NoteDriver::DispatchMessage(CFWL_Message* pMessage,
CFWL_Widget* pMessageForm) {
- switch (pMessage->GetClassID()) {
- case CFWL_MessageType::SetFocus: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus: {
if (!DoSetFocus(pMessage, pMessageForm))
return false;
break;
}
- case CFWL_MessageType::KillFocus: {
+ case CFWL_Message::Type::KillFocus: {
if (!DoKillFocus(pMessage, pMessageForm))
return false;
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
if (!DoKey(pMessage, pMessageForm))
return false;
break;
}
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
if (!DoMouse(pMessage, pMessageForm))
return false;
break;
}
- case CFWL_MessageType::MouseWheel: {
+ case CFWL_Message::Type::MouseWheel: {
if (!DoWheel(pMessage, pMessageForm))
return false;
break;
@@ -416,8 +413,7 @@ void CFWL_NoteDriver::MouseSecondary(CFWL_Message* pMessage) {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
if (m_pHover) {
- CFWL_MsgMouse msLeave;
- msLeave.m_pDstTarget = m_pHover;
+ CFWL_MsgMouse msLeave(nullptr, m_pHover);
msLeave.m_fx = pMsg->m_fx;
msLeave.m_fy = pMsg->m_fy;
pTarget->TransformTo(m_pHover, msLeave.m_fx, msLeave.m_fy);
@@ -432,8 +428,7 @@ void CFWL_NoteDriver::MouseSecondary(CFWL_Message* pMessage) {
}
m_pHover = pTarget;
- CFWL_MsgMouse msHover;
- msHover.m_pDstTarget = pTarget;
+ CFWL_MsgMouse msHover(nullptr, pTarget);
msHover.m_fx = pMsg->m_fx;
msHover.m_fy = pMsg->m_fy;
msHover.m_dwFlags = 0;
diff --git a/xfa/fwl/core/cfwl_pushbutton.cpp b/xfa/fwl/core/cfwl_pushbutton.cpp
index 15e98fc4a5..295de1e07e 100644
--- a/xfa/fwl/core/cfwl_pushbutton.cpp
+++ b/xfa/fwl/core/cfwl_pushbutton.cpp
@@ -11,7 +11,7 @@
#include "third_party/base/ptr_util.h"
#include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_evtclick.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_evtmouse.h"
#include "xfa/fwl/core/cfwl_msgkey.h"
#include "xfa/fwl/core/cfwl_msgmouse.h"
@@ -174,15 +174,14 @@ void CFWL_PushButton::OnProcessMessage(CFWL_Message* pMessage) {
if (!IsEnabled())
return;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- switch (dwMsgCode) {
- case CFWL_MessageType::SetFocus:
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus:
OnFocusChanged(pMessage, true);
break;
- case CFWL_MessageType::KillFocus:
+ case CFWL_Message::Type::KillFocus:
OnFocusChanged(pMessage, false);
break;
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -202,7 +201,7 @@ void CFWL_PushButton::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage);
if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown)
OnKeyDown(pKey);
@@ -248,8 +247,7 @@ void CFWL_PushButton::OnLButtonUp(CFWL_MsgMouse* pMsg) {
m_pProperties->m_dwStates &= ~FWL_STATE_PSB_Pressed;
}
if (m_rtClient.Contains(pMsg->m_fx, pMsg->m_fy)) {
- CFWL_EvtClick wmClick;
- wmClick.m_pSrcTarget = this;
+ CFWL_Event wmClick(CFWL_Event::Type::Click, this);
DispatchEvent(&wmClick);
}
Repaint(&m_rtClient);
@@ -297,18 +295,13 @@ void CFWL_PushButton::OnMouseLeave(CFWL_MsgMouse* pMsg) {
}
void CFWL_PushButton::OnKeyDown(CFWL_MsgKey* pMsg) {
- if (pMsg->m_dwKeyCode == FWL_VKEY_Return) {
- CFWL_EvtMouse wmMouse;
- wmMouse.m_pSrcTarget = this;
- wmMouse.m_dwCmd = FWL_MouseCommand::LeftButtonUp;
- DispatchEvent(&wmMouse);
- CFWL_EvtClick wmClick;
- wmClick.m_pSrcTarget = this;
- DispatchEvent(&wmClick);
- return;
- }
- if (pMsg->m_dwKeyCode != FWL_VKEY_Tab)
+ if (pMsg->m_dwKeyCode != FWL_VKEY_Return)
return;
- DispatchKeyEvent(pMsg);
+ CFWL_EvtMouse wmMouse(this);
+ wmMouse.m_dwCmd = FWL_MouseCommand::LeftButtonUp;
+ DispatchEvent(&wmMouse);
+
+ CFWL_Event wmClick(CFWL_Event::Type::Click, this);
+ DispatchEvent(&wmClick);
}
diff --git a/xfa/fwl/core/cfwl_scrollbar.cpp b/xfa/fwl/core/cfwl_scrollbar.cpp
index 6647350ef2..490940491c 100644
--- a/xfa/fwl/core/cfwl_scrollbar.cpp
+++ b/xfa/fwl/core/cfwl_scrollbar.cpp
@@ -115,8 +115,8 @@ void CFWL_ScrollBar::SetTrackPos(FX_FLOAT fTrackPos) {
CalcMaxTrackRect(m_rtMaxTrack);
}
-bool CFWL_ScrollBar::DoScroll(FWL_SCBCODE dwCode, FX_FLOAT fPos) {
- if (dwCode == FWL_SCBCODE::None)
+bool CFWL_ScrollBar::DoScroll(CFWL_EvtScroll::Code dwCode, FX_FLOAT fPos) {
+ if (dwCode == CFWL_EvtScroll::Code::None)
return false;
return OnScroll(dwCode, fPos);
}
@@ -351,46 +351,44 @@ void CFWL_ScrollBar::GetTrackRect(CFX_RectF& rect, bool bLower) {
bool CFWL_ScrollBar::SendEvent() {
if (m_iMinButtonState == CFWL_PartState_Pressed) {
- DoScroll(FWL_SCBCODE::StepBackward, m_fTrackPos);
+ DoScroll(CFWL_EvtScroll::Code::StepBackward, m_fTrackPos);
return false;
}
if (m_iMaxButtonState == CFWL_PartState_Pressed) {
- DoScroll(FWL_SCBCODE::StepForward, m_fTrackPos);
+ DoScroll(CFWL_EvtScroll::Code::StepForward, m_fTrackPos);
return false;
}
if (m_iMinTrackState == CFWL_PartState_Pressed) {
- DoScroll(FWL_SCBCODE::PageBackward, m_fTrackPos);
+ DoScroll(CFWL_EvtScroll::Code::PageBackward, m_fTrackPos);
return m_rtThumb.Contains(m_cpTrackPointX, m_cpTrackPointY);
}
if (m_iMaxTrackState == CFWL_PartState_Pressed) {
- DoScroll(FWL_SCBCODE::PageForward, m_fTrackPos);
+ DoScroll(CFWL_EvtScroll::Code::PageForward, m_fTrackPos);
return m_rtThumb.Contains(m_cpTrackPointX, m_cpTrackPointY);
}
if (m_iMouseWheel) {
- FWL_SCBCODE dwCode = m_iMouseWheel < 0 ? FWL_SCBCODE::StepForward
- : FWL_SCBCODE::StepBackward;
+ CFWL_EvtScroll::Code dwCode = m_iMouseWheel < 0
+ ? CFWL_EvtScroll::Code::StepForward
+ : CFWL_EvtScroll::Code::StepBackward;
DoScroll(dwCode, m_fTrackPos);
}
return true;
}
-bool CFWL_ScrollBar::OnScroll(FWL_SCBCODE dwCode, FX_FLOAT fPos) {
- bool bRet = true;
- CFWL_EvtScroll ev;
+bool CFWL_ScrollBar::OnScroll(CFWL_EvtScroll::Code dwCode, FX_FLOAT fPos) {
+ CFWL_EvtScroll ev(this);
ev.m_iScrollCode = dwCode;
- ev.m_pSrcTarget = this;
ev.m_fPos = fPos;
- ev.m_pRet = &bRet;
DispatchEvent(&ev);
- return bRet;
+ return true;
}
void CFWL_ScrollBar::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- if (dwMsgCode == CFWL_MessageType::Mouse) {
+ CFWL_Message::Type type = pMessage->GetType();
+ if (type == CFWL_Message::Type::Mouse) {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -408,7 +406,7 @@ void CFWL_ScrollBar::OnProcessMessage(CFWL_Message* pMessage) {
default:
break;
}
- } else if (dwMsgCode == CFWL_MessageType::MouseWheel) {
+ } else if (type == CFWL_Message::Type::MouseWheel) {
CFWL_MsgMouseWheel* pMsg = static_cast<CFWL_MsgMouseWheel*>(pMessage);
OnMouseWheel(pMsg->m_fx, pMsg->m_fy, pMsg->m_dwFlags, pMsg->m_fDeltaX,
pMsg->m_fDeltaY);
@@ -507,7 +505,7 @@ void CFWL_ScrollBar::DoMouseUp(int32_t iItem,
iState = iNewState;
Repaint(&rtItem);
- OnScroll(FWL_SCBCODE::EndScroll, m_fTrackPos);
+ OnScroll(CFWL_EvtScroll::Code::EndScroll, m_fTrackPos);
}
void CFWL_ScrollBar::DoMouseMove(int32_t iItem,
@@ -526,7 +524,7 @@ void CFWL_ScrollBar::DoMouseMove(int32_t iItem,
} else if ((2 == iItem) && (m_iThumbButtonState == CFWL_PartState_Pressed)) {
FX_FLOAT fPos = GetTrackPointPos(fx, fy);
m_fTrackPos = fPos;
- OnScroll(FWL_SCBCODE::TrackPos, fPos);
+ OnScroll(CFWL_EvtScroll::Code::TrackPos, fPos);
}
}
diff --git a/xfa/fwl/core/cfwl_scrollbar.h b/xfa/fwl/core/cfwl_scrollbar.h
index 800df51a41..98bcaf2178 100644
--- a/xfa/fwl/core/cfwl_scrollbar.h
+++ b/xfa/fwl/core/cfwl_scrollbar.h
@@ -89,7 +89,7 @@ class CFWL_ScrollBar : public CFWL_Widget {
FX_FLOAT GetTrackPointPos(FX_FLOAT fx, FX_FLOAT fy);
void GetTrackRect(CFX_RectF& rect, bool bLower = true);
bool SendEvent();
- bool OnScroll(FWL_SCBCODE dwCode, FX_FLOAT fPos);
+ bool OnScroll(CFWL_EvtScroll::Code dwCode, FX_FLOAT fPos);
void OnLButtonDown(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy);
void OnLButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy);
void OnMouseMove(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy);
@@ -99,7 +99,7 @@ class CFWL_ScrollBar : public CFWL_Widget {
uint32_t dwFlags,
FX_FLOAT fDeltaX,
FX_FLOAT fDeltaY);
- bool DoScroll(FWL_SCBCODE dwCode, FX_FLOAT fPos = 0.0f);
+ bool DoScroll(CFWL_EvtScroll::Code dwCode, FX_FLOAT fPos = 0.0f);
void DoMouseDown(int32_t iItem,
const CFX_RectF& rtItem,
int32_t& iState,
diff --git a/xfa/fwl/core/cfwl_spinbutton.cpp b/xfa/fwl/core/cfwl_spinbutton.cpp
index 71ed3b05d2..e66b92e701 100644
--- a/xfa/fwl/core/cfwl_spinbutton.cpp
+++ b/xfa/fwl/core/cfwl_spinbutton.cpp
@@ -10,7 +10,7 @@
#include <utility>
#include "third_party/base/ptr_util.h"
-#include "xfa/fwl/core/cfwl_evtclick.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_msgkey.h"
#include "xfa/fwl/core/cfwl_msgmouse.h"
#include "xfa/fwl/core/cfwl_notedriver.h"
@@ -161,17 +161,16 @@ void CFWL_SpinButton::OnProcessMessage(CFWL_Message* pMessage) {
if (!pMessage)
return;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- switch (dwMsgCode) {
- case CFWL_MessageType::SetFocus: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::SetFocus: {
OnFocusChanged(pMessage, true);
break;
}
- case CFWL_MessageType::KillFocus: {
+ case CFWL_Message::Type::KillFocus: {
OnFocusChanged(pMessage, false);
break;
}
- case CFWL_MessageType::Mouse: {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
switch (pMsg->m_dwCmd) {
case FWL_MouseCommand::LeftButtonDown:
@@ -191,7 +190,7 @@ void CFWL_SpinButton::OnProcessMessage(CFWL_Message* pMessage) {
}
break;
}
- case CFWL_MessageType::Key: {
+ case CFWL_Message::Type::Key: {
CFWL_MsgKey* pKey = static_cast<CFWL_MsgKey*>(pMessage);
if (pKey->m_dwCmd == FWL_KeyCommand::KeyDown)
OnKeyDown(pKey);
@@ -237,8 +236,7 @@ void CFWL_SpinButton::OnLButtonDown(CFWL_MsgMouse* pMsg) {
m_dwDnState = CFWL_PartState_Pressed;
}
- CFWL_EvtClick wmPosChanged;
- wmPosChanged.m_pSrcTarget = this;
+ CFWL_Event wmPosChanged(CFWL_Event::Type::Click, this);
DispatchEvent(&wmPosChanged);
Repaint(bUpPress ? &m_rtUpButton : &m_rtDnButton);
@@ -359,8 +357,7 @@ void CFWL_SpinButton::OnKeyDown(CFWL_MsgKey* pMsg) {
if (!bUpEnable && !bDownEnable)
return;
- CFWL_EvtClick wmPosChanged;
- wmPosChanged.m_pSrcTarget = this;
+ CFWL_Event wmPosChanged(CFWL_Event::Type::Click, this);
DispatchEvent(&wmPosChanged);
Repaint(bUpEnable ? &m_rtUpButton : &m_rtDnButton);
@@ -375,7 +372,6 @@ void CFWL_SpinButton::Timer::Run(CFWL_TimerInfo* pTimerInfo) {
if (!pButton->m_pTimerInfo)
return;
- CFWL_EvtClick wmPosChanged;
- wmPosChanged.m_pSrcTarget = pButton;
+ CFWL_Event wmPosChanged(CFWL_Event::Type::Click, pButton);
pButton->DispatchEvent(&wmPosChanged);
}
diff --git a/xfa/fwl/core/cfwl_spinbutton.h b/xfa/fwl/core/cfwl_spinbutton.h
index 6b53e68a90..391d55c3e8 100644
--- a/xfa/fwl/core/cfwl_spinbutton.h
+++ b/xfa/fwl/core/cfwl_spinbutton.h
@@ -9,7 +9,6 @@
#include <memory>
-#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_timer.h"
#include "xfa/fwl/core/cfwl_widget.h"
#include "xfa/fxfa/cxfa_eventparam.h"
@@ -33,7 +32,6 @@ class CFWL_SpinButton : public CFWL_Widget {
void DrawWidget(CFX_Graphics* pGraphics,
const CFX_Matrix* pMatrix = nullptr) override;
void OnProcessMessage(CFWL_Message* pMessage) override;
- void OnProcessEvent(CFWL_Event* pEvent) override;
void OnDrawWidget(CFX_Graphics* pGraphics,
const CFX_Matrix* pMatrix) override;
diff --git a/xfa/fwl/core/cfwl_widget.cpp b/xfa/fwl/core/cfwl_widget.cpp
index e2de866817..d487aadb9d 100644
--- a/xfa/fwl/core/cfwl_widget.cpp
+++ b/xfa/fwl/core/cfwl_widget.cpp
@@ -12,12 +12,8 @@
#include "xfa/fde/tto/fde_textout.h"
#include "xfa/fwl/core/cfwl_app.h"
#include "xfa/fwl/core/cfwl_combobox.h"
-#include "xfa/fwl/core/cfwl_evtkey.h"
-#include "xfa/fwl/core/cfwl_evtkillfocus.h"
+#include "xfa/fwl/core/cfwl_event.h"
#include "xfa/fwl/core/cfwl_evtmouse.h"
-#include "xfa/fwl/core/cfwl_evtmousewheel.h"
-#include "xfa/fwl/core/cfwl_evtsetfocus.h"
-#include "xfa/fwl/core/cfwl_evtsizechanged.h"
#include "xfa/fwl/core/cfwl_form.h"
#include "xfa/fwl/core/cfwl_msgkey.h"
#include "xfa/fwl/core/cfwl_msgkillfocus.h"
@@ -86,21 +82,10 @@ void CFWL_Widget::GetWidgetRect(CFX_RectF& rect, bool bAutoSize) {
}
void CFWL_Widget::SetWidgetRect(const CFX_RectF& rect) {
- CFX_RectF rtOld = m_pProperties->m_rtWidget;
m_pProperties->m_rtWidget = rect;
- if (IsChild()) {
- if (FXSYS_fabs(rtOld.width - rect.width) > 0.5f ||
- FXSYS_fabs(rtOld.height - rect.height) > 0.5f) {
- CFWL_EvtSizeChanged ev;
- ev.m_pSrcTarget = this;
- ev.m_rtOld = rtOld;
- ev.m_rtNew = rect;
-
- if (IFWL_WidgetDelegate* pDelegate = GetDelegate())
- pDelegate->OnProcessEvent(&ev);
- }
+ if (IsChild())
return;
- }
+
m_pWidgetMgr->SetWidgetRect_Native(this, rect);
}
@@ -598,18 +583,6 @@ void CFWL_Widget::UnregisterEventTarget() {
pNoteDriver->UnregisterEventTarget(this);
}
-void CFWL_Widget::DispatchKeyEvent(CFWL_MsgKey* pNote) {
- if (!pNote)
- return;
-
- auto pEvent = pdfium::MakeUnique<CFWL_EvtKey>();
- pEvent->m_pSrcTarget = this;
- pEvent->m_dwCmd = pNote->m_dwCmd;
- pEvent->m_dwKeyCode = pNote->m_dwKeyCode;
- pEvent->m_dwFlags = pNote->m_dwFlags;
- DispatchEvent(pEvent.get());
-}
-
void CFWL_Widget::DispatchEvent(CFWL_Event* pEvent) {
if (m_pOuter) {
m_pOuter->GetDelegate()->OnProcessEvent(pEvent);
@@ -733,61 +706,12 @@ void CFWL_Widget::OnProcessMessage(CFWL_Message* pMessage) {
return;
CFWL_Widget* pWidget = pMessage->m_pDstTarget;
- CFWL_MessageType dwMsgCode = pMessage->GetClassID();
- switch (dwMsgCode) {
- case CFWL_MessageType::Mouse: {
+ switch (pMessage->GetType()) {
+ case CFWL_Message::Type::Mouse: {
CFWL_MsgMouse* pMsgMouse = static_cast<CFWL_MsgMouse*>(pMessage);
- CFWL_EvtMouse evt;
- evt.m_pSrcTarget = pWidget;
- evt.m_pDstTarget = pWidget;
+
+ CFWL_EvtMouse evt(pWidget, pWidget);
evt.m_dwCmd = pMsgMouse->m_dwCmd;
- evt.m_dwFlags = pMsgMouse->m_dwFlags;
- evt.m_fx = pMsgMouse->m_fx;
- evt.m_fy = pMsgMouse->m_fy;
- pWidget->DispatchEvent(&evt);
- break;
- }
- case CFWL_MessageType::MouseWheel: {
- CFWL_MsgMouseWheel* pMsgMouseWheel =
- static_cast<CFWL_MsgMouseWheel*>(pMessage);
- CFWL_EvtMouseWheel evt;
- evt.m_pSrcTarget = pWidget;
- evt.m_pDstTarget = pWidget;
- evt.m_dwFlags = pMsgMouseWheel->m_dwFlags;
- evt.m_fDeltaX = pMsgMouseWheel->m_fDeltaX;
- evt.m_fDeltaY = pMsgMouseWheel->m_fDeltaY;
- evt.m_fx = pMsgMouseWheel->m_fx;
- evt.m_fy = pMsgMouseWheel->m_fy;
- pWidget->DispatchEvent(&evt);
- break;
- }
- case CFWL_MessageType::Key: {
- CFWL_MsgKey* pMsgKey = static_cast<CFWL_MsgKey*>(pMessage);
- CFWL_EvtKey evt;
- evt.m_pSrcTarget = pWidget;
- evt.m_pDstTarget = pWidget;
- evt.m_dwKeyCode = pMsgKey->m_dwKeyCode;
- evt.m_dwFlags = pMsgKey->m_dwFlags;
- evt.m_dwCmd = pMsgKey->m_dwCmd;
- pWidget->DispatchEvent(&evt);
- break;
- }
- case CFWL_MessageType::SetFocus: {
- CFWL_MsgSetFocus* pMsgSetFocus = static_cast<CFWL_MsgSetFocus*>(pMessage);
- CFWL_EvtSetFocus evt;
- evt.m_pSrcTarget = pMsgSetFocus->m_pDstTarget;
- evt.m_pDstTarget = pMsgSetFocus->m_pDstTarget;
- evt.m_pSetFocus = pWidget;
- pWidget->DispatchEvent(&evt);
- break;
- }
- case CFWL_MessageType::KillFocus: {
- CFWL_MsgKillFocus* pMsgKillFocus =
- static_cast<CFWL_MsgKillFocus*>(pMessage);
- CFWL_EvtKillFocus evt;
- evt.m_pSrcTarget = pMsgKillFocus->m_pDstTarget;
- evt.m_pDstTarget = pMsgKillFocus->m_pDstTarget;
- evt.m_pKillFocus = pWidget;
pWidget->DispatchEvent(&evt);
break;
}
diff --git a/xfa/fwl/core/cfwl_widget.h b/xfa/fwl/core/cfwl_widget.h
index 7a993e5e22..5e9660c6de 100644
--- a/xfa/fwl/core/cfwl_widget.h
+++ b/xfa/fwl/core/cfwl_widget.h
@@ -140,7 +140,6 @@ class CFWL_Widget : public IFWL_WidgetDelegate {
CFX_RectF& rtPopup);
void RegisterEventTarget(CFWL_Widget* pEventSource);
void UnregisterEventTarget();
- void DispatchKeyEvent(CFWL_MsgKey* pNote);
void DispatchEvent(CFWL_Event* pEvent);
void DrawBorder(CFX_Graphics* pGraphics,
CFWL_Part iPartBorder,
diff --git a/xfa/fxfa/app/xfa_ffcheckbutton.cpp b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
index 06e3b2c8b8..dab6b2cde0 100644
--- a/xfa/fxfa/app/xfa_ffcheckbutton.cpp
+++ b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
@@ -246,13 +246,12 @@ bool CXFA_FFCheckButton::OnLButtonUp(uint32_t dwFlags,
return false;
SetButtonDown(false);
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::LeftButtonUp;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -300,8 +299,8 @@ void CXFA_FFCheckButton::OnProcessMessage(CFWL_Message* pMessage) {
void CXFA_FFCheckButton::OnProcessEvent(CFWL_Event* pEvent) {
CXFA_FFField::OnProcessEvent(pEvent);
- switch (pEvent->GetClassID()) {
- case CFWL_EventType::CheckStateChanged: {
+ switch (pEvent->GetType()) {
+ case CFWL_Event::Type::CheckStateChanged: {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Change;
m_pDataAcc->GetValue(eParam.m_wsNewText, XFA_VALUEPICTURE_Raw);
diff --git a/xfa/fxfa/app/xfa_ffchoicelist.cpp b/xfa/fxfa/app/xfa_ffchoicelist.cpp
index c9a513607e..d4cfe07202 100644
--- a/xfa/fxfa/app/xfa_ffchoicelist.cpp
+++ b/xfa/fxfa/app/xfa_ffchoicelist.cpp
@@ -196,8 +196,8 @@ void CXFA_FFListBox::OnProcessMessage(CFWL_Message* pMessage) {
void CXFA_FFListBox::OnProcessEvent(CFWL_Event* pEvent) {
CXFA_FFField::OnProcessEvent(pEvent);
- switch (pEvent->GetClassID()) {
- case CFWL_EventType::SelectChanged: {
+ switch (pEvent->GetType()) {
+ case CFWL_Event::Type::SelectChanged: {
CFX_Int32Array arrSels;
OnSelectChanged(m_pNormalWidget, arrSels);
break;
@@ -510,23 +510,23 @@ void CXFA_FFComboBox::OnProcessMessage(CFWL_Message* pMessage) {
void CXFA_FFComboBox::OnProcessEvent(CFWL_Event* pEvent) {
CXFA_FFField::OnProcessEvent(pEvent);
- switch (pEvent->GetClassID()) {
- case CFWL_EventType::SelectChanged: {
+ switch (pEvent->GetType()) {
+ case CFWL_Event::Type::SelectChanged: {
CFWL_EvtSelectChanged* postEvent =
static_cast<CFWL_EvtSelectChanged*>(pEvent);
OnSelectChanged(m_pNormalWidget, postEvent->bLButtonUp);
break;
}
- case CFWL_EventType::EditChanged: {
+ case CFWL_Event::Type::EditChanged: {
CFX_WideString wsChanged;
OnTextChanged(m_pNormalWidget, wsChanged);
break;
}
- case CFWL_EventType::PreDropDown: {
+ case CFWL_Event::Type::PreDropDown: {
OnPreOpen(m_pNormalWidget);
break;
}
- case CFWL_EventType::PostDropDown: {
+ case CFWL_Event::Type::PostDropDown: {
OnPostOpen(m_pNormalWidget);
break;
}
diff --git a/xfa/fxfa/app/xfa_fffield.cpp b/xfa/fxfa/app/xfa_fffield.cpp
index 43efb5ee90..689a0b5469 100644
--- a/xfa/fxfa/app/xfa_fffield.cpp
+++ b/xfa/fxfa/app/xfa_fffield.cpp
@@ -349,10 +349,8 @@ bool CXFA_FFField::OnMouseEnter() {
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::Enter;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
TranslateFWLMessage(&ms);
return true;
}
@@ -360,9 +358,8 @@ bool CXFA_FFField::OnMouseExit() {
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::Leave;
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -387,13 +384,12 @@ bool CXFA_FFField::OnLButtonDown(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
return false;
}
SetButtonDown(true);
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::LeftButtonDown;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -405,13 +401,12 @@ bool CXFA_FFField::OnLButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
return false;
}
SetButtonDown(false);
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::LeftButtonUp;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -419,13 +414,12 @@ bool CXFA_FFField::OnLButtonDblClk(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::LeftButtonDblClk;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -433,13 +427,12 @@ bool CXFA_FFField::OnMouseMove(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::Move;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -450,14 +443,13 @@ bool CXFA_FFField::OnMouseWheel(uint32_t dwFlags,
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgMouseWheel ms;
+ CFWL_MsgMouseWheel ms(nullptr, m_pNormalWidget);
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
ms.m_fDeltaX = zDelta;
ms.m_fDeltaY = 0;
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -473,13 +465,13 @@ bool CXFA_FFField::OnRButtonDown(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
return false;
}
SetButtonDown(true);
- CFWL_MsgMouse ms;
+
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::RightButtonDown;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -491,13 +483,12 @@ bool CXFA_FFField::OnRButtonUp(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
return false;
}
SetButtonDown(false);
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::RightButtonUp;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -505,13 +496,12 @@ bool CXFA_FFField::OnRButtonDblClk(uint32_t dwFlags, FX_FLOAT fx, FX_FLOAT fy) {
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::RightButtonDblClk;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
FWLToClient(ms.m_fx, ms.m_fy);
- ms.m_pDstTarget = m_pNormalWidget;
TranslateFWLMessage(&ms);
return true;
}
@@ -521,9 +511,7 @@ bool CXFA_FFField::OnSetFocus(CXFA_FFWidget* pOldWidget) {
if (!m_pNormalWidget) {
return false;
}
- CFWL_MsgSetFocus ms;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
+ CFWL_MsgSetFocus ms(nullptr, m_pNormalWidget);
TranslateFWLMessage(&ms);
m_dwStatus |= XFA_WidgetStatus_Focused;
AddInvalidateRect();
@@ -533,9 +521,7 @@ bool CXFA_FFField::OnKillFocus(CXFA_FFWidget* pNewWidget) {
if (!m_pNormalWidget) {
return CXFA_FFWidget::OnKillFocus(pNewWidget);
}
- CFWL_MsgKillFocus ms;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
+ CFWL_MsgKillFocus ms(nullptr, m_pNormalWidget);
TranslateFWLMessage(&ms);
m_dwStatus &= ~XFA_WidgetStatus_Focused;
AddInvalidateRect();
@@ -546,12 +532,10 @@ bool CXFA_FFField::OnKeyDown(uint32_t dwKeyCode, uint32_t dwFlags) {
if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
return false;
}
- CFWL_MsgKey ms;
+ CFWL_MsgKey ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_KeyCommand::KeyDown;
ms.m_dwFlags = dwFlags;
ms.m_dwKeyCode = dwKeyCode;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
TranslateFWLMessage(&ms);
return true;
}
@@ -559,12 +543,10 @@ bool CXFA_FFField::OnKeyUp(uint32_t dwKeyCode, uint32_t dwFlags) {
if (!m_pNormalWidget || !m_pDataAcc->GetDoc()->GetXFADoc()->IsInteractive()) {
return false;
}
- CFWL_MsgKey ms;
+ CFWL_MsgKey ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_KeyCommand::KeyUp;
ms.m_dwFlags = dwFlags;
ms.m_dwKeyCode = dwKeyCode;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
TranslateFWLMessage(&ms);
return true;
}
@@ -581,12 +563,10 @@ bool CXFA_FFField::OnChar(uint32_t dwChar, uint32_t dwFlags) {
if (m_pDataAcc->GetAccess() != XFA_ATTRIBUTEENUM_Open) {
return false;
}
- CFWL_MsgKey ms;
+ CFWL_MsgKey ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_KeyCommand::Char;
ms.m_dwFlags = dwFlags;
ms.m_dwKeyCode = dwChar;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
TranslateFWLMessage(&ms);
return true;
}
@@ -779,8 +759,8 @@ void CXFA_FFField::TranslateFWLMessage(CFWL_Message* pMessage) {
void CXFA_FFField::OnProcessMessage(CFWL_Message* pMessage) {}
void CXFA_FFField::OnProcessEvent(CFWL_Event* pEvent) {
- switch (pEvent->GetClassID()) {
- case CFWL_EventType::Mouse: {
+ switch (pEvent->GetType()) {
+ case CFWL_Event::Type::Mouse: {
CFWL_EvtMouse* event = (CFWL_EvtMouse*)pEvent;
if (event->m_dwCmd == FWL_MouseCommand::Enter) {
CXFA_EventParam eParam;
@@ -805,7 +785,7 @@ void CXFA_FFField::OnProcessEvent(CFWL_Event* pEvent) {
}
break;
}
- case CFWL_EventType::Click: {
+ case CFWL_Event::Type::Click: {
CXFA_EventParam eParam;
eParam.m_eType = XFA_EVENT_Click;
eParam.m_pTarget = m_pDataAcc;
diff --git a/xfa/fxfa/app/xfa_ffimageedit.cpp b/xfa/fxfa/app/xfa_ffimageedit.cpp
index 318a772855..3506cc9703 100644
--- a/xfa/fxfa/app/xfa_ffimageedit.cpp
+++ b/xfa/fxfa/app/xfa_ffimageedit.cpp
@@ -93,12 +93,12 @@ bool CXFA_FFImageEdit::OnLButtonDown(uint32_t dwFlags,
return false;
SetButtonDown(true);
- CFWL_MsgMouse ms;
+
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::LeftButtonDown;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
- ms.m_pDstTarget = m_pNormalWidget;
FWLToClient(ms.m_fx, ms.m_fy);
TranslateFWLMessage(&ms);
return true;
diff --git a/xfa/fxfa/app/xfa_fftextedit.cpp b/xfa/fxfa/app/xfa_fftextedit.cpp
index a070f90b99..89c323c23b 100644
--- a/xfa/fxfa/app/xfa_fftextedit.cpp
+++ b/xfa/fxfa/app/xfa_fftextedit.cpp
@@ -117,12 +117,11 @@ bool CXFA_FFTextEdit::OnLButtonDown(uint32_t dwFlags,
AddInvalidateRect();
}
SetButtonDown(true);
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, m_pNormalWidget);
ms.m_dwCmd = FWL_MouseCommand::LeftButtonDown;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
ms.m_fy = fy;
- ms.m_pDstTarget = m_pNormalWidget;
FWLToClient(ms.m_fx, ms.m_fy);
TranslateFWLMessage(&ms);
return true;
@@ -142,7 +141,7 @@ bool CXFA_FFTextEdit::OnRButtonDown(uint32_t dwFlags,
AddInvalidateRect();
}
SetButtonDown(true);
- CFWL_MsgMouse ms;
+ CFWL_MsgMouse ms(nullptr, nullptr);
ms.m_dwCmd = FWL_MouseCommand::RightButtonDown;
ms.m_dwFlags = dwFlags;
ms.m_fx = fx;
@@ -166,16 +165,12 @@ bool CXFA_FFTextEdit::OnSetFocus(CXFA_FFWidget* pOldWidget) {
AddInvalidateRect();
}
CXFA_FFWidget::OnSetFocus(pOldWidget);
- CFWL_MsgSetFocus ms;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
+ CFWL_MsgSetFocus ms(nullptr, m_pNormalWidget);
TranslateFWLMessage(&ms);
return true;
}
bool CXFA_FFTextEdit::OnKillFocus(CXFA_FFWidget* pNewWidget) {
- CFWL_MsgKillFocus ms;
- ms.m_pDstTarget = m_pNormalWidget;
- ms.m_pSrcTarget = nullptr;
+ CFWL_MsgKillFocus ms(nullptr, m_pNormalWidget);
TranslateFWLMessage(&ms);
m_dwStatus &= ~XFA_WidgetStatus_Focused;
SetEditScrollOffset();
@@ -338,18 +333,18 @@ void CXFA_FFTextEdit::OnProcessMessage(CFWL_Message* pMessage) {
void CXFA_FFTextEdit::OnProcessEvent(CFWL_Event* pEvent) {
CXFA_FFField::OnProcessEvent(pEvent);
- switch (pEvent->GetClassID()) {
- case CFWL_EventType::TextChanged: {
+ switch (pEvent->GetType()) {
+ case CFWL_Event::Type::TextChanged: {
CFWL_EvtTextChanged* event = static_cast<CFWL_EvtTextChanged*>(pEvent);
CFX_WideString wsChange;
OnTextChanged(m_pNormalWidget, wsChange, event->wsPrevText);
break;
}
- case CFWL_EventType::TextFull: {
+ case CFWL_Event::Type::TextFull: {
OnTextFull(m_pNormalWidget);
break;
}
- case CFWL_EventType::CheckWord: {
+ case CFWL_Event::Type::CheckWord: {
CFX_WideString wstr(L"FWL_EVENT_DTP_SelectChanged");
CFWL_EvtCheckWord* event = static_cast<CFWL_EvtCheckWord*>(pEvent);
event->bCheckWord = CheckWord(event->bsWord.AsStringC());
@@ -418,7 +413,7 @@ void CXFA_FFNumericEdit::UpdateWidgetProperty() {
}
void CXFA_FFNumericEdit::OnProcessEvent(CFWL_Event* pEvent) {
- if (pEvent->GetClassID() == CFWL_EventType::Validate) {
+ if (pEvent->GetType() == CFWL_Event::Type::Validate) {
CFWL_EvtValidate* event = static_cast<CFWL_EvtValidate*>(pEvent);
event->bValidate = OnValidate(m_pNormalWidget, event->wsInsert);
return;
@@ -683,7 +678,7 @@ void CXFA_FFDateTimeEdit::OnSelectChanged(CFWL_Widget* pWidget,
}
void CXFA_FFDateTimeEdit::OnProcessEvent(CFWL_Event* pEvent) {
- if (pEvent->GetClassID() == CFWL_EventType::SelectChanged) {
+ if (pEvent->GetType() == CFWL_Event::Type::SelectChanged) {
CFWL_EvtSelectChanged* event = static_cast<CFWL_EvtSelectChanged*>(pEvent);
OnSelectChanged(m_pNormalWidget, event->iYear, event->iMonth, event->iDay);
return;