Index: xfa/fwl/core/cfwl_message.h |
diff --git a/xfa/fwl/core/cfwl_message.h b/xfa/fwl/core/cfwl_message.h |
index 56e8185c2958adcc5ed7a70dd05fc3b4cb108d68..1ad43a6d89332f0786e70192c50266fe48918516 100644 |
--- a/xfa/fwl/core/cfwl_message.h |
+++ b/xfa/fwl/core/cfwl_message.h |
@@ -7,6 +7,8 @@ |
#ifndef XFA_FWL_CORE_CFWL_MESSAGE_H_ |
#define XFA_FWL_CORE_CFWL_MESSAGE_H_ |
+#include <memory> |
+ |
#include "core/fxcrt/fx_basic.h" |
#include "core/fxcrt/fx_string.h" |
#include "core/fxcrt/fx_system.h" |
@@ -21,21 +23,6 @@ enum class CFWL_MessageType { |
SetFocus |
}; |
-enum class FWL_MouseCommand { |
- LeftButtonDown, |
- LeftButtonUp, |
- LeftButtonDblClk, |
- RightButtonDown, |
- RightButtonUp, |
- RightButtonDblClk, |
- Move, |
- Enter, |
- Leave, |
- Hover |
-}; |
- |
-enum class FWL_KeyCommand { KeyDown, KeyUp, Char }; |
- |
class IFWL_Widget; |
class CFWL_Message { |
@@ -43,84 +30,13 @@ class CFWL_Message { |
CFWL_Message(); |
virtual ~CFWL_Message(); |
- virtual CFWL_Message* Clone(); |
+ virtual std::unique_ptr<CFWL_Message> Clone(); |
virtual CFWL_MessageType GetClassID() const; |
- uint32_t Release(); |
- CFWL_Message* Retain(); |
- |
IFWL_Widget* m_pSrcTarget; |
IFWL_Widget* m_pDstTarget; |
uint32_t m_dwExtend; |
- |
- private: |
- uint32_t m_dwRefCount; |
}; |
-inline CFWL_Message::CFWL_Message() |
- : m_pSrcTarget(nullptr), |
- m_pDstTarget(nullptr), |
- m_dwExtend(0), |
- m_dwRefCount(1) {} |
- |
-inline CFWL_Message::~CFWL_Message() {} |
- |
-inline CFWL_Message* CFWL_Message::Clone() { |
- return nullptr; |
-} |
- |
-inline CFWL_MessageType CFWL_Message::GetClassID() const { |
- return CFWL_MessageType::None; |
-} |
- |
-inline uint32_t CFWL_Message::Release() { |
- m_dwRefCount--; |
- uint32_t dwRefCount = m_dwRefCount; |
- if (!m_dwRefCount) |
- delete this; |
- return dwRefCount; |
-} |
- |
-inline CFWL_Message* CFWL_Message::Retain() { |
- m_dwRefCount++; |
- return this; |
-} |
- |
-#define FWL_MESSAGE_DEF(classname, msgType, ...) \ |
- class classname : public CFWL_Message { \ |
- public: \ |
- classname(); \ |
- ~classname() override; \ |
- CFWL_Message* Clone() override; \ |
- CFWL_MessageType GetClassID() const override; \ |
- __VA_ARGS__ \ |
- }; \ |
- inline classname::classname() {} \ |
- inline classname::~classname() {} \ |
- inline CFWL_Message* classname::Clone() { return new classname(*this); } \ |
- inline CFWL_MessageType classname::GetClassID() const { return msgType; } |
- |
-FWL_MESSAGE_DEF(CFWL_MsgMouse, CFWL_MessageType::Mouse, FX_FLOAT m_fx; |
- FX_FLOAT m_fy; |
- uint32_t m_dwFlags; |
- FWL_MouseCommand m_dwCmd;) |
- |
-FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, CFWL_MessageType::MouseWheel, FX_FLOAT m_fx; |
- FX_FLOAT m_fy; |
- FX_FLOAT m_fDeltaX; |
- FX_FLOAT m_fDeltaY; |
- uint32_t m_dwFlags;) |
- |
-FWL_MESSAGE_DEF(CFWL_MsgSetFocus, |
- CFWL_MessageType::SetFocus, |
- IFWL_Widget* m_pKillFocus;) |
- |
-FWL_MESSAGE_DEF(CFWL_MsgKillFocus, |
- CFWL_MessageType::KillFocus, |
- IFWL_Widget* m_pSetFocus;) |
- |
-FWL_MESSAGE_DEF(CFWL_MsgKey, CFWL_MessageType::Key, uint32_t m_dwKeyCode; |
- uint32_t m_dwFlags; |
- FWL_KeyCommand m_dwCmd;) |
#endif // XFA_FWL_CORE_CFWL_MESSAGE_H_ |