| OLD | NEW |
| 1 // Copyright 2016 PDFium Authors. All rights reserved. | 1 // Copyright 2016 PDFium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com | 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com |
| 6 | 6 |
| 7 #ifndef XFA_FWL_CORE_CFWL_EVENT_H_ | 7 #ifndef XFA_FWL_CORE_CFWL_EVENT_H_ |
| 8 #define XFA_FWL_CORE_CFWL_EVENT_H_ | 8 #define XFA_FWL_CORE_CFWL_EVENT_H_ |
| 9 | 9 |
| 10 #include "core/fxcrt/include/fx_coordinates.h" | 10 #include "core/fxcrt/include/fx_coordinates.h" |
| 11 #include "core/fxcrt/include/fx_string.h" | 11 #include "core/fxcrt/include/fx_string.h" |
| 12 #include "core/fxcrt/include/fx_system.h" | 12 #include "core/fxcrt/include/fx_system.h" |
| 13 #include "xfa/fwl/core/cfwl_note.h" | |
| 14 #include "xfa/fwl/core/fwl_error.h" | 13 #include "xfa/fwl/core/fwl_error.h" |
| 15 | 14 |
| 16 // TODO(dsinclair): Event hash is hash of string, cleanup. pdfium:474 | 15 enum class CFWL_EventType { |
| 17 #define FWL_EVTHASH_Mouse 1765258002 | 16 None = 0, |
| 18 #define FWL_EVTHASH_MouseWheel 3907114407 | 17 |
| 19 #define FWL_EVTHASH_Key 2408354450 | 18 CheckStateChanged, |
| 20 #define FWL_EVTHASH_SetFocus 3909721269 | 19 CheckWord, |
| 21 #define FWL_EVTHASH_KillFocus 1779363253 | 20 Click, |
| 22 #define FWL_EVTHASH_Draw 2430713303 | 21 Close, |
| 23 #define FWL_EVTHASH_Click 4026328783 | 22 CloseUp, |
| 24 #define FWL_EVTHASH_Scroll 2965158968 | 23 ContextMenu, |
| 25 #define FWL_EVTHASH_Close 4036693599 | 24 DataSelected, |
| 26 #define FWL_EVTHASH_ContextMenu 2717307715 | 25 DateChanged, |
| 27 #define FWL_EVTHASH_MenuCommand 497763741 | 26 Draw, |
| 28 #define FWL_EVTHASH_SizeChanged 3083958510 | 27 DrawItem, |
| 29 #define FWL_EVTHASH_Idle 839546759 | 28 DropDown, |
| 29 EditChanged, |
| 30 GetSuggestedWords, |
| 31 HoverChanged, |
| 32 Idle, |
| 33 Key, |
| 34 KillFocus, |
| 35 MenuCommand, |
| 36 Mouse, |
| 37 MouseWheel, |
| 38 PostDropDown, |
| 39 PreDropDown, |
| 40 PreSelfAdaption, |
| 41 Scroll, |
| 42 SelectChanged, |
| 43 SetFocus, |
| 44 SizeChanged, |
| 45 TextChanged, |
| 46 TextFull, |
| 47 Validate |
| 48 }; |
| 30 | 49 |
| 31 typedef enum { | 50 typedef enum { |
| 32 FWL_EVENT_MOUSE_MASK = 1 << 0, | 51 FWL_EVENT_MOUSE_MASK = 1 << 0, |
| 33 FWL_EVENT_MOUSEWHEEL_MASK = 1 << 1, | 52 FWL_EVENT_MOUSEWHEEL_MASK = 1 << 1, |
| 34 FWL_EVENT_KEY_MASK = 1 << 2, | 53 FWL_EVENT_KEY_MASK = 1 << 2, |
| 35 FWL_EVENT_FOCUSCHANGED_MASK = 1 << 3, | 54 FWL_EVENT_FOCUSCHANGED_MASK = 1 << 3, |
| 36 FWL_EVENT_DRAW_MASK = 1 << 4, | 55 FWL_EVENT_DRAW_MASK = 1 << 4, |
| 37 FWL_EVENT_CLOSE_MASK = 1 << 5, | 56 FWL_EVENT_CLOSE_MASK = 1 << 5, |
| 38 FWL_EVENT_SIZECHANGED_MASK = 1 << 6, | 57 FWL_EVENT_SIZECHANGED_MASK = 1 << 6, |
| 39 FWL_EVENT_IDLE_MASK = 1 << 7, | 58 FWL_EVENT_IDLE_MASK = 1 << 7, |
| 40 FWL_EVENT_CONTROL_MASK = 1 << 8, | 59 FWL_EVENT_CONTROL_MASK = 1 << 8, |
| 41 FWL_EVENT_ALL_MASK = 0xFF | 60 FWL_EVENT_ALL_MASK = 0xFF |
| 42 } FWLEventMask; | 61 } FWLEventMask; |
| 43 | 62 |
| 44 class CFX_Graphics; | 63 class CFX_Graphics; |
| 45 class IFWL_Widget; | 64 class IFWL_Widget; |
| 46 | 65 |
| 47 class CFWL_Event : public CFWL_Note { | 66 class CFWL_Event { |
| 48 public: | 67 public: |
| 49 CFWL_Event() : CFWL_Note(TRUE) {} | 68 CFWL_Event() |
| 69 : m_pSrcTarget(nullptr), m_pDstTarget(nullptr), m_dwRefCount(1) {} |
| 50 virtual ~CFWL_Event() {} | 70 virtual ~CFWL_Event() {} |
| 71 |
| 72 virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { |
| 73 return FWL_ERR_Succeeded; |
| 74 } |
| 75 virtual CFWL_EventType GetClassID() const { return CFWL_EventType::None; } |
| 76 |
| 77 uint32_t Release() { |
| 78 m_dwRefCount--; |
| 79 uint32_t dwRefCount = m_dwRefCount; |
| 80 if (!m_dwRefCount) |
| 81 delete this; |
| 82 return dwRefCount; |
| 83 } |
| 84 |
| 85 IFWL_Widget* m_pSrcTarget; |
| 86 IFWL_Widget* m_pDstTarget; |
| 87 |
| 88 private: |
| 89 uint32_t m_dwRefCount; |
| 51 }; | 90 }; |
| 52 | 91 |
| 53 #define BEGIN_FWL_EVENT_DEF(classname, eventhashcode) \ | 92 #define BEGIN_FWL_EVENT_DEF(classname, eventType) \ |
| 54 class classname : public CFWL_Event { \ | 93 class classname : public CFWL_Event { \ |
| 55 public: \ | 94 public: \ |
| 56 classname() : CFWL_Event() {} \ | 95 classname() : CFWL_Event() {} \ |
| 57 virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ | 96 virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ |
| 58 wsClass = L## #classname; \ | 97 wsClass = L## #classname; \ |
| 59 return FWL_ERR_Succeeded; \ | 98 return FWL_ERR_Succeeded; \ |
| 60 } \ | 99 } \ |
| 61 virtual uint32_t GetClassID() const { return eventhashcode; } | 100 virtual CFWL_EventType GetClassID() const { return eventType; } |
| 62 | 101 |
| 63 #define END_FWL_EVENT_DEF \ | 102 #define END_FWL_EVENT_DEF \ |
| 64 } \ | 103 } \ |
| 65 ; // NOLINT | 104 ; // NOLINT |
| 66 | 105 |
| 67 BEGIN_FWL_EVENT_DEF(CFWL_EvtMouse, FWL_EVTHASH_Mouse) | 106 BEGIN_FWL_EVENT_DEF(CFWL_EvtMouse, CFWL_EventType::Mouse) |
| 68 FX_FLOAT m_fx; | 107 FX_FLOAT m_fx; |
| 69 FX_FLOAT m_fy; | 108 FX_FLOAT m_fy; |
| 70 uint32_t m_dwFlags; | 109 uint32_t m_dwFlags; |
| 71 uint32_t m_dwCmd; | 110 uint32_t m_dwCmd; |
| 72 END_FWL_EVENT_DEF | 111 END_FWL_EVENT_DEF |
| 73 | 112 |
| 74 BEGIN_FWL_EVENT_DEF(CFWL_EvtMouseWheel, FWL_EVTHASH_MouseWheel) | 113 BEGIN_FWL_EVENT_DEF(CFWL_EvtMouseWheel, CFWL_EventType::MouseWheel) |
| 75 FX_FLOAT m_fx; | 114 FX_FLOAT m_fx; |
| 76 FX_FLOAT m_fy; | 115 FX_FLOAT m_fy; |
| 77 FX_FLOAT m_fDeltaX; | 116 FX_FLOAT m_fDeltaX; |
| 78 FX_FLOAT m_fDeltaY; | 117 FX_FLOAT m_fDeltaY; |
| 79 uint32_t m_dwFlags; | 118 uint32_t m_dwFlags; |
| 80 END_FWL_EVENT_DEF | 119 END_FWL_EVENT_DEF |
| 81 | 120 |
| 82 BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, FWL_EVTHASH_Key) | 121 BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, CFWL_EventType::Key) |
| 83 uint32_t m_dwKeyCode; | 122 uint32_t m_dwKeyCode; |
| 84 uint32_t m_dwFlags; | 123 uint32_t m_dwFlags; |
| 85 uint32_t m_dwCmd; | 124 uint32_t m_dwCmd; |
| 86 END_FWL_EVENT_DEF | 125 END_FWL_EVENT_DEF |
| 87 | 126 |
| 88 BEGIN_FWL_EVENT_DEF(CFWL_EvtSetFocus, FWL_EVTHASH_SetFocus) | 127 BEGIN_FWL_EVENT_DEF(CFWL_EvtSetFocus, CFWL_EventType::SetFocus) |
| 89 IFWL_Widget* m_pSetFocus; | 128 IFWL_Widget* m_pSetFocus; |
| 90 END_FWL_EVENT_DEF | 129 END_FWL_EVENT_DEF |
| 91 | 130 |
| 92 BEGIN_FWL_EVENT_DEF(CFWL_EvtKillFocus, FWL_EVTHASH_KillFocus) | 131 BEGIN_FWL_EVENT_DEF(CFWL_EvtKillFocus, CFWL_EventType::KillFocus) |
| 93 IFWL_Widget* m_pKillFocus; | 132 IFWL_Widget* m_pKillFocus; |
| 94 END_FWL_EVENT_DEF | 133 END_FWL_EVENT_DEF |
| 95 | 134 |
| 96 BEGIN_FWL_EVENT_DEF(CFWL_EvtDraw, FWL_EVTHASH_Draw) | 135 BEGIN_FWL_EVENT_DEF(CFWL_EvtDraw, CFWL_EventType::Draw) |
| 97 CFX_Graphics* m_pGraphics; | 136 CFX_Graphics* m_pGraphics; |
| 98 IFWL_Widget* m_pWidget; | 137 IFWL_Widget* m_pWidget; |
| 99 END_FWL_EVENT_DEF | 138 END_FWL_EVENT_DEF |
| 100 | 139 |
| 101 BEGIN_FWL_EVENT_DEF(CFWL_EvtClick, FWL_EVTHASH_Click) | 140 BEGIN_FWL_EVENT_DEF(CFWL_EvtClick, CFWL_EventType::Click) |
| 102 END_FWL_EVENT_DEF | 141 END_FWL_EVENT_DEF |
| 103 | 142 |
| 104 BEGIN_FWL_EVENT_DEF(CFWL_EvtScroll, FWL_EVTHASH_Scroll) | 143 BEGIN_FWL_EVENT_DEF(CFWL_EvtScroll, CFWL_EventType::Scroll) |
| 105 uint32_t m_iScrollCode; | 144 uint32_t m_iScrollCode; |
| 106 FX_FLOAT m_fPos; | 145 FX_FLOAT m_fPos; |
| 107 FX_BOOL* m_pRet; | 146 FX_BOOL* m_pRet; |
| 108 END_FWL_EVENT_DEF | 147 END_FWL_EVENT_DEF |
| 109 | 148 |
| 110 BEGIN_FWL_EVENT_DEF(CFWL_EvtClose, FWL_EVTHASH_Close) | 149 BEGIN_FWL_EVENT_DEF(CFWL_EvtClose, CFWL_EventType::Close) |
| 111 END_FWL_EVENT_DEF | 150 END_FWL_EVENT_DEF |
| 112 | 151 |
| 113 BEGIN_FWL_EVENT_DEF(CFWL_EvtContextMenu, FWL_EVTHASH_ContextMenu) | 152 BEGIN_FWL_EVENT_DEF(CFWL_EvtContextMenu, CFWL_EventType::ContextMenu) |
| 114 FX_FLOAT m_fPosX; | 153 FX_FLOAT m_fPosX; |
| 115 FX_FLOAT m_fPosY; | 154 FX_FLOAT m_fPosY; |
| 116 IFWL_Widget* m_pOwner; | 155 IFWL_Widget* m_pOwner; |
| 117 END_FWL_EVENT_DEF | 156 END_FWL_EVENT_DEF |
| 118 | 157 |
| 119 BEGIN_FWL_EVENT_DEF(CFWL_EvtMenuCommand, FWL_EVTHASH_MenuCommand) | 158 BEGIN_FWL_EVENT_DEF(CFWL_EvtMenuCommand, CFWL_EventType::MenuCommand) |
| 120 int32_t m_iCommand; | 159 int32_t m_iCommand; |
| 121 void* m_pData; | 160 void* m_pData; |
| 122 END_FWL_EVENT_DEF | 161 END_FWL_EVENT_DEF |
| 123 | 162 |
| 124 BEGIN_FWL_EVENT_DEF(CFWL_EvtSizeChanged, FWL_EVTHASH_SizeChanged) | 163 BEGIN_FWL_EVENT_DEF(CFWL_EvtSizeChanged, CFWL_EventType::SizeChanged) |
| 125 IFWL_Widget* m_pWidget; | 164 IFWL_Widget* m_pWidget; |
| 126 CFX_RectF m_rtOld; | 165 CFX_RectF m_rtOld; |
| 127 CFX_RectF m_rtNew; | 166 CFX_RectF m_rtNew; |
| 128 END_FWL_EVENT_DEF | 167 END_FWL_EVENT_DEF |
| 129 | 168 |
| 130 BEGIN_FWL_EVENT_DEF(CFWL_EvtIdle, FWL_EVTHASH_Idle) | 169 BEGIN_FWL_EVENT_DEF(CFWL_EvtIdle, CFWL_EventType::Idle) |
| 131 END_FWL_EVENT_DEF | 170 END_FWL_EVENT_DEF |
| 132 | 171 |
| 133 #endif // XFA_FWL_CORE_CFWL_EVENT_H_ | 172 #endif // XFA_FWL_CORE_CFWL_EVENT_H_ |
| OLD | NEW |