summaryrefslogtreecommitdiff
path: root/xfa/fwl/core/cfwl_event.h
blob: 97ca1d31a1fa69d110f1ab4814d6e94972131b97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
// 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 FX_DWORD 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;
FX_DWORD m_dwFlags;
FX_DWORD 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;
FX_DWORD m_dwFlags;
END_FWL_EVENT_DEF

BEGIN_FWL_EVENT_DEF(CFWL_EvtKey, FWL_EVTHASH_Key)
FX_DWORD m_dwKeyCode;
FX_DWORD m_dwFlags;
FX_DWORD 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)
FX_DWORD 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_