| // 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_EVENT_H_ |
| #define XFA_FWL_CORE_CFWL_EVENT_H_ |
| |
| #include "core/fxcrt/include/fx_coordinates.h" |
| #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_EVT_Mouse L"FWL_EVENT_Mouse" |
| #define FWL_EVT_MouseWheel L"FWL_EVENT_MouseWheel" |
| #define FWL_EVT_Key L"FWL_EVENT_Key" |
| #define FWL_EVT_SetFocus L"FWL_EVENT_SetFocus" |
| #define FWL_EVT_KillFocus L"FWL_EVENT_KillFocus" |
| #define FWL_EVT_Click L"FWL_EVENT_Click" |
| #define FWL_EVT_Draw L"FWL_EVENT_Draw" |
| #define FWL_EVT_Scroll L"FWL_EVENT_Scroll" |
| #define FWL_EVT_Close L"FWL_EVENT_Close" |
| #define FWL_EVT_ContextMenu L"FWL_EVENT_ContextMenu" |
| #define FWL_EVT_MenuCommand L"FWL_EVENT_MenuCommand" |
| #define FWL_EVT_SizeChanged L"FWL_EVENT_SizeChanged" |
| |
| #define FWL_EVTHASH_Mouse 1765258002 |
| #define FWL_EVTHASH_MouseWheel 3907114407 |
| #define FWL_EVTHASH_Key 2408354450 |
| #define FWL_EVTHASH_SetFocus 3909721269 |
| #define FWL_EVTHASH_KillFocus 1779363253 |
| #define FWL_EVTHASH_Draw 2430713303 |
| #define FWL_EVTHASH_Click 4026328783 |
| #define FWL_EVTHASH_Scroll 2965158968 |
| #define FWL_EVTHASH_Close 4036693599 |
| #define FWL_EVTHASH_ContextMenu 2717307715 |
| #define FWL_EVTHASH_MenuCommand 497763741 |
| #define FWL_EVTHASH_SizeChanged 3083958510 |
| #define FWL_EVTHASH_Idle 839546759 |
| |
| typedef enum { |
| FWL_EVENT_MOUSE_MASK = 1 << 0, |
| FWL_EVENT_MOUSEWHEEL_MASK = 1 << 1, |
| FWL_EVENT_KEY_MASK = 1 << 2, |
| FWL_EVENT_FOCUSCHANGED_MASK = 1 << 3, |
| FWL_EVENT_DRAW_MASK = 1 << 4, |
| FWL_EVENT_CLOSE_MASK = 1 << 5, |
| FWL_EVENT_SIZECHANGED_MASK = 1 << 6, |
| FWL_EVENT_IDLE_MASK = 1 << 7, |
| FWL_EVENT_CONTROL_MASK = 1 << 8, |
| FWL_EVENT_ALL_MASK = 0xFF |
| } FWLEventMask; |
| |
| class CFX_Graphics; |
| class IFWL_Widget; |
| |
| class CFWL_Event : public CFWL_Note { |
| public: |
| CFWL_Event() : CFWL_Note(TRUE) {} |
| virtual ~CFWL_Event() {} |
| }; |
| |
| #define BEGIN_FWL_EVENT_DEF(classname, eventhashcode) \ |
| class classname : public CFWL_Event { \ |
| public: \ |
| classname() : CFWL_Event() {} \ |
| virtual FWL_ERR GetClassName(CFX_WideString& wsClass) const { \ |
| wsClass = L## #classname; \ |
| return FWL_ERR_Succeeded; \ |
| } \ |
| virtual uint32_t GetClassID() const { return eventhashcode; } |
| |
| #define END_FWL_EVENT_DEF \ |
| } \ |
| ; // NOLINT |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtMouse, FWL_EVTHASH_Mouse) |
| FX_FLOAT m_fx; |
| FX_FLOAT m_fy; |
| uint32_t m_dwFlags; |
| uint32_t m_dwCmd; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtMouseWheel, FWL_EVTHASH_MouseWheel) |
| FX_FLOAT m_fx; |
| FX_FLOAT m_fy; |
| FX_FLOAT m_fDeltaX; |
| FX_FLOAT m_fDeltaY; |
| uint32_t m_dwFlags; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, FWL_EVTHASH_Key) |
| uint32_t m_dwKeyCode; |
| uint32_t m_dwFlags; |
| uint32_t m_dwCmd; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtSetFocus, FWL_EVTHASH_SetFocus) |
| IFWL_Widget* m_pSetFocus; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtKillFocus, FWL_EVTHASH_KillFocus) |
| IFWL_Widget* m_pKillFocus; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtDraw, FWL_EVTHASH_Draw) |
| CFX_Graphics* m_pGraphics; |
| IFWL_Widget* m_pWidget; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtClick, FWL_EVTHASH_Click) |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtScroll, FWL_EVTHASH_Scroll) |
| uint32_t m_iScrollCode; |
| FX_FLOAT m_fPos; |
| FX_BOOL* m_pRet; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtClose, FWL_EVTHASH_Close) |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtContextMenu, FWL_EVTHASH_ContextMenu) |
| FX_FLOAT m_fPosX; |
| FX_FLOAT m_fPosY; |
| IFWL_Widget* m_pOwner; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtMenuCommand, FWL_EVTHASH_MenuCommand) |
| int32_t m_iCommand; |
| void* m_pData; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtSizeChanged, FWL_EVTHASH_SizeChanged) |
| IFWL_Widget* m_pWidget; |
| CFX_RectF m_rtOld; |
| CFX_RectF m_rtNew; |
| END_FWL_EVENT_DEF |
| |
| BEGIN_FWL_EVENT_DEF(CFWL_EvtIdle, FWL_EVTHASH_Idle) |
| END_FWL_EVENT_DEF |
| |
| #endif // XFA_FWL_CORE_CFWL_EVENT_H_ |