| Index: xfa/fwl/core/cfwl_message.h
|
| diff --git a/xfa/fwl/core/cfwl_message.h b/xfa/fwl/core/cfwl_message.h
|
| index 7bd6af1977f59a324a6fc33536a381bc0e66c4f4..e751824bc95323fdccdea3815a44e2c0bba67d65 100644
|
| --- a/xfa/fwl/core/cfwl_message.h
|
| +++ b/xfa/fwl/core/cfwl_message.h
|
| @@ -9,24 +9,27 @@
|
|
|
| #include "core/fxcrt/include/fx_string.h"
|
| #include "core/fxcrt/include/fx_system.h"
|
| -#include "xfa/fwl/core/cfwl_note.h"
|
| #include "xfa/fwl/core/fwl_error.h"
|
|
|
| -#define FWL_MSGHASH_Activate 2410369469
|
| -#define FWL_MSGHASH_Deactivate 1184214790
|
| -#define FWL_MSGHASH_SetFocus 4174512504
|
| -#define FWL_MSGHASH_KillFocus 1557903832
|
| -#define FWL_MSGHASH_Mouse 706128309
|
| -#define FWL_MSGHASH_MouseWheel 893703466
|
| -#define FWL_MSGHASH_Key 3751372405
|
| -#define FWL_MSGHASH_Cursor 3182626218
|
| -#define FWL_MSGHASH_Size 160077735
|
| -#define FWL_MSGHASH_WindowMove 1032269377
|
| -#define FWL_MSGHASH_DropFiles 2004165236
|
| -#define FWL_MSGHASH_TaskClicked 3128231086
|
| -#define FWL_MSGHASH_Close 2977563906
|
| -#define FWL_MSGHASH_Post 1969633074
|
| -#define FWL_MSGHASH_WindowWillMove 2229175763
|
| +enum class CFWL_MessageType {
|
| + None = 0,
|
| +
|
| + Activate,
|
| + Close,
|
| + Cursor,
|
| + Deactivate,
|
| + DropFiles,
|
| + Key,
|
| + KillFocus,
|
| + Mouse,
|
| + MouseWheel,
|
| + Post,
|
| + SetFocus,
|
| + Size,
|
| + TaskClicked,
|
| + WindowMove,
|
| + WindowWillMove
|
| +};
|
|
|
| #define FWL_MSG_Activate L"FWL_MESSAGE_Activate"
|
| #define FWL_MSG_Deactivate L"FWL_MESSAGE_Deactivate"
|
| @@ -63,41 +66,71 @@
|
|
|
| class IFWL_Widget;
|
|
|
| -class CFWL_Message : public CFWL_Note {
|
| +class CFWL_Message {
|
| public:
|
| - CFWL_Message() : CFWL_Note(FALSE) {}
|
| + CFWL_Message()
|
| + : m_pSrcTarget(nullptr),
|
| + m_pDstTarget(nullptr),
|
| + m_dwExtend(0),
|
| + m_dwRefCount(1) {}
|
| virtual ~CFWL_Message() {}
|
| +
|
| + virtual CFWL_Message* Clone() { return nullptr; }
|
| + virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const {
|
| + return FWL_ERR_Succeeded;
|
| + }
|
| + virtual CFWL_MessageType GetClassID() const { return CFWL_MessageType::None; }
|
| +
|
| + uint32_t Release() {
|
| + m_dwRefCount--;
|
| + uint32_t dwRefCount = m_dwRefCount;
|
| + if (!m_dwRefCount)
|
| + delete this;
|
| + return dwRefCount;
|
| + }
|
| +
|
| + CFWL_Message* Retain() {
|
| + m_dwRefCount++;
|
| + return this;
|
| + }
|
| +
|
| + IFWL_Widget* m_pSrcTarget;
|
| + IFWL_Widget* m_pDstTarget;
|
| + uint32_t m_dwExtend;
|
| +
|
| + private:
|
| + uint32_t m_dwRefCount;
|
| };
|
|
|
| -#define BEGIN_FWL_MESSAGE_DEF(classname, msghashcode) \
|
| - class classname : public CFWL_Message { \
|
| - public: \
|
| - classname() : CFWL_Message() {} \
|
| - virtual CFWL_Note* Clone() { return new classname(*this); } \
|
| - virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \
|
| - wsClass = L## #classname; \
|
| - return FWL_ERR_Succeeded; \
|
| - } \
|
| - virtual uint32_t GetClassID() const { return msghashcode; }
|
| +#define BEGIN_FWL_MESSAGE_DEF(classname, msgType) \
|
| + class classname : public CFWL_Message { \
|
| + public: \
|
| + classname() : CFWL_Message() {} \
|
| + CFWL_Message* Clone() override { return new classname(*this); } \
|
| + FWL_ERR GetClassName(CFX_WideString& wsClass) const override { \
|
| + wsClass = L## #classname; \
|
| + return FWL_ERR_Succeeded; \
|
| + } \
|
| + CFWL_MessageType GetClassID() const override { return msgType; }
|
|
|
| #define END_FWL_MESSAGE_DEF \
|
| } \
|
| ; // NOLINT
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgActivate, FWL_MSGHASH_Activate)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgActivate, CFWL_MessageType::Activate)
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDeactivate, FWL_MSGHASH_Deactivate)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDeactivate, CFWL_MessageType::Deactivate)
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouse, FWL_MSGHASH_Mouse)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouse, CFWL_MessageType::Mouse)
|
| FX_FLOAT m_fx;
|
| FX_FLOAT m_fy;
|
| uint32_t m_dwFlags;
|
| uint32_t m_dwCmd;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, FWL_MSGHASH_MouseWheel)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, CFWL_MessageType::MouseWheel)
|
| FX_FLOAT m_fx;
|
| FX_FLOAT m_fy;
|
| FX_FLOAT m_fDeltaX;
|
| @@ -105,34 +138,34 @@ FX_FLOAT m_fDeltaY;
|
| uint32_t m_dwFlags;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSetFocus, FWL_MSGHASH_SetFocus)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSetFocus, CFWL_MessageType::SetFocus)
|
| IFWL_Widget* m_pKillFocus;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKillFocus, FWL_MSGHASH_KillFocus)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKillFocus, CFWL_MessageType::KillFocus)
|
| IFWL_Widget* m_pSetFocus;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKey, FWL_MSGHASH_Key)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgKey, CFWL_MessageType::Key)
|
| uint32_t m_dwKeyCode;
|
| uint32_t m_dwFlags;
|
| uint32_t m_dwCmd;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgCursor, FWL_MSGHASH_Cursor)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgCursor, CFWL_MessageType::Cursor)
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSize, FWL_MSGHASH_Size)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgSize, CFWL_MessageType::Size)
|
| int32_t m_iWidth;
|
| int32_t m_iHeight;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowMove, FWL_MSGHASH_WindowMove)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowMove, CFWL_MessageType::WindowMove)
|
| FX_FLOAT m_fx;
|
| FX_FLOAT m_fy;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDropFiles, FWL_MSGHASH_DropFiles)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgDropFiles, CFWL_MessageType::DropFiles)
|
| CFWL_MsgDropFiles(const CFWL_MsgDropFiles& copy) {
|
| m_pDstTarget = copy.m_pDstTarget;
|
| m_pSrcTarget = copy.m_pSrcTarget;
|
| @@ -145,15 +178,15 @@ FX_FLOAT m_fy;
|
| CFX_WideStringArray m_files;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgTaskClicked, FWL_MSGHASH_TaskClicked)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgTaskClicked, CFWL_MessageType::TaskClicked)
|
| FX_FLOAT m_fx;
|
| FX_FLOAT m_fy;
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgClose, FWL_MSGHASH_Close)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgClose, CFWL_MessageType::Close)
|
| END_FWL_MESSAGE_DEF
|
|
|
| -BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowWillMove, FWL_MSGHASH_WindowWillMove)
|
| +BEGIN_FWL_MESSAGE_DEF(CFWL_MsgWindowWillMove, CFWL_MessageType::WindowWillMove)
|
| END_FWL_MESSAGE_DEF
|
|
|
| #endif // XFA_FWL_CORE_CFWL_MESSAGE_H_
|
|
|