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