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 |