1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "base/basictypes.h"
6 #include "ppapi/c/pp_input_event.h"
7 #include "ppapi/c/private/ppb_pdf.h"
8 #include "third_party/pdfium/fpdfsdk/include/fpdf_fwlevent.h"
9 #include "third_party/pdfium/fpdfsdk/include/fpdf_sysfontinfo.h"
10 #include "ui/events/keycodes/keyboard_codes.h"
12 #define COMPILE_ASSERT_MATCH(np_name, pdfium_name) \
13 COMPILE_ASSERT(int(np_name) == int(pdfium_name), mismatching_enums)
15 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_SHIFTKEY
, FWL_EVENTFLAG_ShiftKey
);
16 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_CONTROLKEY
,
17 FWL_EVENTFLAG_ControlKey
);
18 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_ALTKEY
, FWL_EVENTFLAG_AltKey
);
19 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_METAKEY
, FWL_EVENTFLAG_MetaKey
);
20 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_ISKEYPAD
, FWL_EVENTFLAG_KeyPad
);
21 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_ISAUTOREPEAT
,
22 FWL_EVENTFLAG_AutoRepeat
);
23 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_LEFTBUTTONDOWN
,
24 FWL_EVENTFLAG_LeftButtonDown
);
25 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_MIDDLEBUTTONDOWN
,
26 FWL_EVENTFLAG_MiddleButtonDown
);
27 COMPILE_ASSERT_MATCH(PP_INPUTEVENT_MODIFIER_RIGHTBUTTONDOWN
,
28 FWL_EVENTFLAG_RightButtonDown
);
30 COMPILE_ASSERT_MATCH(ui::VKEY_BACK
, FWL_VKEY_Back
);
31 COMPILE_ASSERT_MATCH(ui::VKEY_TAB
, FWL_VKEY_Tab
);
32 COMPILE_ASSERT_MATCH(ui::VKEY_CLEAR
, FWL_VKEY_Clear
);
33 COMPILE_ASSERT_MATCH(ui::VKEY_RETURN
, FWL_VKEY_Return
);
34 COMPILE_ASSERT_MATCH(ui::VKEY_SHIFT
, FWL_VKEY_Shift
);
35 COMPILE_ASSERT_MATCH(ui::VKEY_CONTROL
, FWL_VKEY_Control
);
36 COMPILE_ASSERT_MATCH(ui::VKEY_MENU
, FWL_VKEY_Menu
);
37 COMPILE_ASSERT_MATCH(ui::VKEY_PAUSE
, FWL_VKEY_Pause
);
38 COMPILE_ASSERT_MATCH(ui::VKEY_CAPITAL
, FWL_VKEY_Capital
);
39 COMPILE_ASSERT_MATCH(ui::VKEY_KANA
, FWL_VKEY_Kana
);
40 COMPILE_ASSERT_MATCH(ui::VKEY_HANGUL
, FWL_VKEY_Hangul
);
41 COMPILE_ASSERT_MATCH(ui::VKEY_JUNJA
, FWL_VKEY_Junja
);
42 COMPILE_ASSERT_MATCH(ui::VKEY_FINAL
, FWL_VKEY_Final
);
43 COMPILE_ASSERT_MATCH(ui::VKEY_HANJA
, FWL_VKEY_Hanja
);
44 COMPILE_ASSERT_MATCH(ui::VKEY_KANJI
, FWL_VKEY_Kanji
);
45 COMPILE_ASSERT_MATCH(ui::VKEY_ESCAPE
, FWL_VKEY_Escape
);
46 COMPILE_ASSERT_MATCH(ui::VKEY_CONVERT
, FWL_VKEY_Convert
);
47 COMPILE_ASSERT_MATCH(ui::VKEY_NONCONVERT
, FWL_VKEY_NonConvert
);
48 COMPILE_ASSERT_MATCH(ui::VKEY_ACCEPT
, FWL_VKEY_Accept
);
49 COMPILE_ASSERT_MATCH(ui::VKEY_MODECHANGE
, FWL_VKEY_ModeChange
);
50 COMPILE_ASSERT_MATCH(ui::VKEY_SPACE
, FWL_VKEY_Space
);
51 COMPILE_ASSERT_MATCH(ui::VKEY_PRIOR
, FWL_VKEY_Prior
);
52 COMPILE_ASSERT_MATCH(ui::VKEY_NEXT
, FWL_VKEY_Next
);
53 COMPILE_ASSERT_MATCH(ui::VKEY_END
, FWL_VKEY_End
);
54 COMPILE_ASSERT_MATCH(ui::VKEY_HOME
, FWL_VKEY_Home
);
55 COMPILE_ASSERT_MATCH(ui::VKEY_LEFT
, FWL_VKEY_Left
);
56 COMPILE_ASSERT_MATCH(ui::VKEY_UP
, FWL_VKEY_Up
);
57 COMPILE_ASSERT_MATCH(ui::VKEY_RIGHT
, FWL_VKEY_Right
);
58 COMPILE_ASSERT_MATCH(ui::VKEY_DOWN
, FWL_VKEY_Down
);
59 COMPILE_ASSERT_MATCH(ui::VKEY_SELECT
, FWL_VKEY_Select
);
60 COMPILE_ASSERT_MATCH(ui::VKEY_PRINT
, FWL_VKEY_Print
);
61 COMPILE_ASSERT_MATCH(ui::VKEY_EXECUTE
, FWL_VKEY_Execute
);
62 COMPILE_ASSERT_MATCH(ui::VKEY_SNAPSHOT
, FWL_VKEY_Snapshot
);
63 COMPILE_ASSERT_MATCH(ui::VKEY_INSERT
, FWL_VKEY_Insert
);
64 COMPILE_ASSERT_MATCH(ui::VKEY_DELETE
, FWL_VKEY_Delete
);
65 COMPILE_ASSERT_MATCH(ui::VKEY_HELP
, FWL_VKEY_Help
);
66 COMPILE_ASSERT_MATCH(ui::VKEY_0
, FWL_VKEY_0
);
67 COMPILE_ASSERT_MATCH(ui::VKEY_1
, FWL_VKEY_1
);
68 COMPILE_ASSERT_MATCH(ui::VKEY_2
, FWL_VKEY_2
);
69 COMPILE_ASSERT_MATCH(ui::VKEY_3
, FWL_VKEY_3
);
70 COMPILE_ASSERT_MATCH(ui::VKEY_4
, FWL_VKEY_4
);
71 COMPILE_ASSERT_MATCH(ui::VKEY_5
, FWL_VKEY_5
);
72 COMPILE_ASSERT_MATCH(ui::VKEY_6
, FWL_VKEY_6
);
73 COMPILE_ASSERT_MATCH(ui::VKEY_7
, FWL_VKEY_7
);
74 COMPILE_ASSERT_MATCH(ui::VKEY_8
, FWL_VKEY_8
);
75 COMPILE_ASSERT_MATCH(ui::VKEY_9
, FWL_VKEY_9
);
76 COMPILE_ASSERT_MATCH(ui::VKEY_A
, FWL_VKEY_A
);
77 COMPILE_ASSERT_MATCH(ui::VKEY_B
, FWL_VKEY_B
);
78 COMPILE_ASSERT_MATCH(ui::VKEY_C
, FWL_VKEY_C
);
79 COMPILE_ASSERT_MATCH(ui::VKEY_D
, FWL_VKEY_D
);
80 COMPILE_ASSERT_MATCH(ui::VKEY_E
, FWL_VKEY_E
);
81 COMPILE_ASSERT_MATCH(ui::VKEY_F
, FWL_VKEY_F
);
82 COMPILE_ASSERT_MATCH(ui::VKEY_G
, FWL_VKEY_G
);
83 COMPILE_ASSERT_MATCH(ui::VKEY_H
, FWL_VKEY_H
);
84 COMPILE_ASSERT_MATCH(ui::VKEY_I
, FWL_VKEY_I
);
85 COMPILE_ASSERT_MATCH(ui::VKEY_J
, FWL_VKEY_J
);
86 COMPILE_ASSERT_MATCH(ui::VKEY_K
, FWL_VKEY_K
);
87 COMPILE_ASSERT_MATCH(ui::VKEY_L
, FWL_VKEY_L
);
88 COMPILE_ASSERT_MATCH(ui::VKEY_M
, FWL_VKEY_M
);
89 COMPILE_ASSERT_MATCH(ui::VKEY_N
, FWL_VKEY_N
);
90 COMPILE_ASSERT_MATCH(ui::VKEY_O
, FWL_VKEY_O
);
91 COMPILE_ASSERT_MATCH(ui::VKEY_P
, FWL_VKEY_P
);
92 COMPILE_ASSERT_MATCH(ui::VKEY_Q
, FWL_VKEY_Q
);
93 COMPILE_ASSERT_MATCH(ui::VKEY_R
, FWL_VKEY_R
);
94 COMPILE_ASSERT_MATCH(ui::VKEY_S
, FWL_VKEY_S
);
95 COMPILE_ASSERT_MATCH(ui::VKEY_T
, FWL_VKEY_T
);
96 COMPILE_ASSERT_MATCH(ui::VKEY_U
, FWL_VKEY_U
);
97 COMPILE_ASSERT_MATCH(ui::VKEY_V
, FWL_VKEY_V
);
98 COMPILE_ASSERT_MATCH(ui::VKEY_W
, FWL_VKEY_W
);
99 COMPILE_ASSERT_MATCH(ui::VKEY_X
, FWL_VKEY_X
);
100 COMPILE_ASSERT_MATCH(ui::VKEY_Y
, FWL_VKEY_Y
);
101 COMPILE_ASSERT_MATCH(ui::VKEY_Z
, FWL_VKEY_Z
);
102 COMPILE_ASSERT_MATCH(ui::VKEY_LWIN
, FWL_VKEY_LWin
);
103 COMPILE_ASSERT_MATCH(ui::VKEY_COMMAND
, FWL_VKEY_Command
);
104 COMPILE_ASSERT_MATCH(ui::VKEY_RWIN
, FWL_VKEY_RWin
);
105 COMPILE_ASSERT_MATCH(ui::VKEY_APPS
, FWL_VKEY_Apps
);
106 COMPILE_ASSERT_MATCH(ui::VKEY_SLEEP
, FWL_VKEY_Sleep
);
107 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD0
, FWL_VKEY_NumPad0
);
108 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD1
, FWL_VKEY_NumPad1
);
109 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD2
, FWL_VKEY_NumPad2
);
110 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD3
, FWL_VKEY_NumPad3
);
111 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD4
, FWL_VKEY_NumPad4
);
112 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD5
, FWL_VKEY_NumPad5
);
113 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD6
, FWL_VKEY_NumPad6
);
114 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD7
, FWL_VKEY_NumPad7
);
115 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD8
, FWL_VKEY_NumPad8
);
116 COMPILE_ASSERT_MATCH(ui::VKEY_NUMPAD9
, FWL_VKEY_NumPad9
);
117 COMPILE_ASSERT_MATCH(ui::VKEY_MULTIPLY
, FWL_VKEY_Multiply
);
118 COMPILE_ASSERT_MATCH(ui::VKEY_ADD
, FWL_VKEY_Add
);
119 COMPILE_ASSERT_MATCH(ui::VKEY_SEPARATOR
, FWL_VKEY_Separator
);
120 COMPILE_ASSERT_MATCH(ui::VKEY_SUBTRACT
, FWL_VKEY_Subtract
);
121 COMPILE_ASSERT_MATCH(ui::VKEY_DECIMAL
, FWL_VKEY_Decimal
);
122 COMPILE_ASSERT_MATCH(ui::VKEY_DIVIDE
, FWL_VKEY_Divide
);
123 COMPILE_ASSERT_MATCH(ui::VKEY_F1
, FWL_VKEY_F1
);
124 COMPILE_ASSERT_MATCH(ui::VKEY_F2
, FWL_VKEY_F2
);
125 COMPILE_ASSERT_MATCH(ui::VKEY_F3
, FWL_VKEY_F3
);
126 COMPILE_ASSERT_MATCH(ui::VKEY_F4
, FWL_VKEY_F4
);
127 COMPILE_ASSERT_MATCH(ui::VKEY_F5
, FWL_VKEY_F5
);
128 COMPILE_ASSERT_MATCH(ui::VKEY_F6
, FWL_VKEY_F6
);
129 COMPILE_ASSERT_MATCH(ui::VKEY_F7
, FWL_VKEY_F7
);
130 COMPILE_ASSERT_MATCH(ui::VKEY_F8
, FWL_VKEY_F8
);
131 COMPILE_ASSERT_MATCH(ui::VKEY_F9
, FWL_VKEY_F9
);
132 COMPILE_ASSERT_MATCH(ui::VKEY_F10
, FWL_VKEY_F10
);
133 COMPILE_ASSERT_MATCH(ui::VKEY_F11
, FWL_VKEY_F11
);
134 COMPILE_ASSERT_MATCH(ui::VKEY_F12
, FWL_VKEY_F12
);
135 COMPILE_ASSERT_MATCH(ui::VKEY_F13
, FWL_VKEY_F13
);
136 COMPILE_ASSERT_MATCH(ui::VKEY_F14
, FWL_VKEY_F14
);
137 COMPILE_ASSERT_MATCH(ui::VKEY_F15
, FWL_VKEY_F15
);
138 COMPILE_ASSERT_MATCH(ui::VKEY_F16
, FWL_VKEY_F16
);
139 COMPILE_ASSERT_MATCH(ui::VKEY_F17
, FWL_VKEY_F17
);
140 COMPILE_ASSERT_MATCH(ui::VKEY_F18
, FWL_VKEY_F18
);
141 COMPILE_ASSERT_MATCH(ui::VKEY_F19
, FWL_VKEY_F19
);
142 COMPILE_ASSERT_MATCH(ui::VKEY_F20
, FWL_VKEY_F20
);
143 COMPILE_ASSERT_MATCH(ui::VKEY_F21
, FWL_VKEY_F21
);
144 COMPILE_ASSERT_MATCH(ui::VKEY_F22
, FWL_VKEY_F22
);
145 COMPILE_ASSERT_MATCH(ui::VKEY_F23
, FWL_VKEY_F23
);
146 COMPILE_ASSERT_MATCH(ui::VKEY_F24
, FWL_VKEY_F24
);
147 COMPILE_ASSERT_MATCH(ui::VKEY_NUMLOCK
, FWL_VKEY_NunLock
);
148 COMPILE_ASSERT_MATCH(ui::VKEY_SCROLL
, FWL_VKEY_Scroll
);
149 COMPILE_ASSERT_MATCH(ui::VKEY_LSHIFT
, FWL_VKEY_LShift
);
150 COMPILE_ASSERT_MATCH(ui::VKEY_RSHIFT
, FWL_VKEY_RShift
);
151 COMPILE_ASSERT_MATCH(ui::VKEY_LCONTROL
, FWL_VKEY_LControl
);
152 COMPILE_ASSERT_MATCH(ui::VKEY_RCONTROL
, FWL_VKEY_RControl
);
153 COMPILE_ASSERT_MATCH(ui::VKEY_LMENU
, FWL_VKEY_LMenu
);
154 COMPILE_ASSERT_MATCH(ui::VKEY_RMENU
, FWL_VKEY_RMenu
);
155 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_BACK
, FWL_VKEY_BROWSER_Back
);
156 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_FORWARD
, FWL_VKEY_BROWSER_Forward
);
157 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_REFRESH
, FWL_VKEY_BROWSER_Refresh
);
158 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_STOP
, FWL_VKEY_BROWSER_Stop
);
159 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_SEARCH
, FWL_VKEY_BROWSER_Search
);
160 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_FAVORITES
, FWL_VKEY_BROWSER_Favorites
);
161 COMPILE_ASSERT_MATCH(ui::VKEY_BROWSER_HOME
, FWL_VKEY_BROWSER_Home
);
162 COMPILE_ASSERT_MATCH(ui::VKEY_VOLUME_MUTE
, FWL_VKEY_VOLUME_Mute
);
163 COMPILE_ASSERT_MATCH(ui::VKEY_VOLUME_DOWN
, FWL_VKEY_VOLUME_Down
);
164 COMPILE_ASSERT_MATCH(ui::VKEY_VOLUME_UP
, FWL_VKEY_VOLUME_Up
);
165 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_NEXT_TRACK
, FWL_VKEY_MEDIA_NEXT_Track
);
166 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_PREV_TRACK
, FWL_VKEY_MEDIA_PREV_Track
);
167 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_STOP
, FWL_VKEY_MEDIA_Stop
);
168 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_PLAY_PAUSE
, FWL_VKEY_MEDIA_PLAY_Pause
);
169 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_LAUNCH_MAIL
, FWL_VKEY_MEDIA_LAUNCH_Mail
);
170 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_LAUNCH_MEDIA_SELECT
,
171 FWL_VKEY_MEDIA_LAUNCH_MEDIA_Select
);
172 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_LAUNCH_APP1
, FWL_VKEY_MEDIA_LAUNCH_APP1
);
173 COMPILE_ASSERT_MATCH(ui::VKEY_MEDIA_LAUNCH_APP2
, FWL_VKEY_MEDIA_LAUNCH_APP2
);
174 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_1
, FWL_VKEY_OEM_1
);
175 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_PLUS
, FWL_VKEY_OEM_Plus
);
176 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_COMMA
, FWL_VKEY_OEM_Comma
);
177 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_MINUS
, FWL_VKEY_OEM_Minus
);
178 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_PERIOD
, FWL_VKEY_OEM_Period
);
179 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_2
, FWL_VKEY_OEM_2
);
180 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_3
, FWL_VKEY_OEM_3
);
181 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_4
, FWL_VKEY_OEM_4
);
182 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_5
, FWL_VKEY_OEM_5
);
183 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_6
, FWL_VKEY_OEM_6
);
184 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_7
, FWL_VKEY_OEM_7
);
185 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_8
, FWL_VKEY_OEM_8
);
186 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_102
, FWL_VKEY_OEM_102
);
187 COMPILE_ASSERT_MATCH(ui::VKEY_PROCESSKEY
, FWL_VKEY_ProcessKey
);
188 COMPILE_ASSERT_MATCH(ui::VKEY_PACKET
, FWL_VKEY_Packet
);
189 COMPILE_ASSERT_MATCH(ui::VKEY_ATTN
, FWL_VKEY_Attn
);
190 COMPILE_ASSERT_MATCH(ui::VKEY_CRSEL
, FWL_VKEY_Crsel
);
191 COMPILE_ASSERT_MATCH(ui::VKEY_EXSEL
, FWL_VKEY_Exsel
);
192 COMPILE_ASSERT_MATCH(ui::VKEY_EREOF
, FWL_VKEY_Ereof
);
193 COMPILE_ASSERT_MATCH(ui::VKEY_PLAY
, FWL_VKEY_Play
);
194 COMPILE_ASSERT_MATCH(ui::VKEY_ZOOM
, FWL_VKEY_Zoom
);
195 COMPILE_ASSERT_MATCH(ui::VKEY_NONAME
, FWL_VKEY_NoName
);
196 COMPILE_ASSERT_MATCH(ui::VKEY_PA1
, FWL_VKEY_PA1
);
197 COMPILE_ASSERT_MATCH(ui::VKEY_OEM_CLEAR
, FWL_VKEY_OEM_Clear
);
198 COMPILE_ASSERT_MATCH(ui::VKEY_UNKNOWN
, FWL_VKEY_Unknown
);
200 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_ANSI
, FXFONT_ANSI_CHARSET
);
201 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_DEFAULT
, FXFONT_DEFAULT_CHARSET
);
202 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_SYMBOL
, FXFONT_SYMBOL_CHARSET
);
203 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_SHIFTJIS
, FXFONT_SHIFTJIS_CHARSET
);
204 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_HANGUL
, FXFONT_HANGEUL_CHARSET
);
205 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_GB2312
, FXFONT_GB2312_CHARSET
);
206 COMPILE_ASSERT_MATCH(PP_PRIVATEFONTCHARSET_CHINESEBIG5
,
207 FXFONT_CHINESEBIG5_CHARSET
);