OLD | NEW |
1 // Copyright 2014 PDFium Authors. All rights reserved. | 1 // Copyright 2014 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 #include "fpdfsdk/javascript/event.h" | 7 #include "fpdfsdk/javascript/event.h" |
8 | 8 |
9 #include "fpdfsdk/javascript/Field.h" | 9 #include "fpdfsdk/javascript/Field.h" |
10 #include "fpdfsdk/javascript/JS_Define.h" | 10 #include "fpdfsdk/javascript/JS_Define.h" |
(...skipping 30 matching lines...) Expand all Loading... |
41 | 41 |
42 BEGIN_JS_STATIC_METHOD(CJS_Event) | 42 BEGIN_JS_STATIC_METHOD(CJS_Event) |
43 END_JS_STATIC_METHOD() | 43 END_JS_STATIC_METHOD() |
44 | 44 |
45 IMPLEMENT_JS_CLASS(CJS_Event, event) | 45 IMPLEMENT_JS_CLASS(CJS_Event, event) |
46 | 46 |
47 event::event(CJS_Object* pJsObject) : CJS_EmbedObj(pJsObject) {} | 47 event::event(CJS_Object* pJsObject) : CJS_EmbedObj(pJsObject) {} |
48 | 48 |
49 event::~event() {} | 49 event::~event() {} |
50 | 50 |
51 FX_BOOL event::change(IJS_Context* cc, | 51 bool event::change(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
52 CJS_PropValue& vp, | |
53 CFX_WideString& sError) { | |
54 CJS_Context* pContext = (CJS_Context*)cc; | 52 CJS_Context* pContext = (CJS_Context*)cc; |
55 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 53 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
56 CFX_WideString& wChange = pEvent->Change(); | 54 CFX_WideString& wChange = pEvent->Change(); |
57 if (vp.IsSetting()) { | 55 if (vp.IsSetting()) { |
58 if (vp.GetJSValue()->GetType() == CJS_Value::VT_string) | 56 if (vp.GetJSValue()->GetType() == CJS_Value::VT_string) |
59 vp >> wChange; | 57 vp >> wChange; |
60 } else { | 58 } else { |
61 vp << wChange; | 59 vp << wChange; |
62 } | 60 } |
63 return TRUE; | 61 return true; |
64 } | 62 } |
65 | 63 |
66 FX_BOOL event::changeEx(IJS_Context* cc, | 64 bool event::changeEx(IJS_Context* cc, |
67 CJS_PropValue& vp, | 65 CJS_PropValue& vp, |
68 CFX_WideString& sError) { | 66 CFX_WideString& sError) { |
69 if (!vp.IsGetting()) | 67 if (!vp.IsGetting()) |
70 return FALSE; | 68 return false; |
71 | 69 |
72 CJS_Context* pContext = (CJS_Context*)cc; | 70 CJS_Context* pContext = (CJS_Context*)cc; |
73 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 71 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
74 | 72 |
75 vp << pEvent->ChangeEx(); | 73 vp << pEvent->ChangeEx(); |
76 return TRUE; | 74 return true; |
77 } | 75 } |
78 | 76 |
79 FX_BOOL event::commitKey(IJS_Context* cc, | 77 bool event::commitKey(IJS_Context* cc, |
80 CJS_PropValue& vp, | 78 CJS_PropValue& vp, |
81 CFX_WideString& sError) { | 79 CFX_WideString& sError) { |
82 if (!vp.IsGetting()) | 80 if (!vp.IsGetting()) |
83 return FALSE; | 81 return false; |
84 | 82 |
85 CJS_Context* pContext = (CJS_Context*)cc; | 83 CJS_Context* pContext = (CJS_Context*)cc; |
86 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 84 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
87 | 85 |
88 vp << pEvent->CommitKey(); | 86 vp << pEvent->CommitKey(); |
89 return TRUE; | 87 return true; |
90 } | 88 } |
91 | 89 |
92 FX_BOOL event::fieldFull(IJS_Context* cc, | 90 bool event::fieldFull(IJS_Context* cc, |
93 CJS_PropValue& vp, | 91 CJS_PropValue& vp, |
94 CFX_WideString& sError) { | 92 CFX_WideString& sError) { |
95 CJS_Context* pContext = (CJS_Context*)cc; | 93 CJS_Context* pContext = (CJS_Context*)cc; |
96 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 94 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
97 | 95 |
98 if (!vp.IsGetting() && | 96 if (!vp.IsGetting() && |
99 wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) | 97 wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) |
100 return FALSE; | 98 return false; |
101 | 99 |
102 if (pEvent->FieldFull()) | 100 if (pEvent->FieldFull()) |
103 vp << TRUE; | 101 vp << true; |
104 else | 102 else |
105 vp << FALSE; | 103 vp << false; |
106 return TRUE; | 104 return true; |
107 } | 105 } |
108 | 106 |
109 FX_BOOL event::keyDown(IJS_Context* cc, | 107 bool event::keyDown(IJS_Context* cc, |
110 CJS_PropValue& vp, | 108 CJS_PropValue& vp, |
111 CFX_WideString& sError) { | 109 CFX_WideString& sError) { |
112 if (!vp.IsGetting()) | 110 if (!vp.IsGetting()) |
113 return FALSE; | 111 return false; |
114 | 112 |
115 CJS_Context* pContext = (CJS_Context*)cc; | 113 CJS_Context* pContext = (CJS_Context*)cc; |
116 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 114 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
117 | 115 |
118 if (pEvent->KeyDown()) | 116 if (pEvent->KeyDown()) |
119 vp << TRUE; | 117 vp << true; |
120 else | 118 else |
121 vp << FALSE; | 119 vp << false; |
122 return TRUE; | 120 return true; |
123 } | 121 } |
124 | 122 |
125 FX_BOOL event::modifier(IJS_Context* cc, | 123 bool event::modifier(IJS_Context* cc, |
126 CJS_PropValue& vp, | 124 CJS_PropValue& vp, |
127 CFX_WideString& sError) { | 125 CFX_WideString& sError) { |
128 if (!vp.IsGetting()) | 126 if (!vp.IsGetting()) |
129 return FALSE; | 127 return false; |
130 | 128 |
131 CJS_Context* pContext = (CJS_Context*)cc; | 129 CJS_Context* pContext = (CJS_Context*)cc; |
132 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 130 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
133 | 131 |
134 if (pEvent->Modifier()) | 132 if (pEvent->Modifier()) |
135 vp << TRUE; | 133 vp << true; |
136 else | 134 else |
137 vp << FALSE; | 135 vp << false; |
138 return TRUE; | 136 return true; |
139 } | 137 } |
140 | 138 |
141 FX_BOOL event::name(IJS_Context* cc, | 139 bool event::name(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
142 CJS_PropValue& vp, | |
143 CFX_WideString& sError) { | |
144 if (!vp.IsGetting()) | 140 if (!vp.IsGetting()) |
145 return FALSE; | 141 return false; |
146 | 142 |
147 CJS_Context* pContext = (CJS_Context*)cc; | 143 CJS_Context* pContext = (CJS_Context*)cc; |
148 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 144 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
149 | 145 |
150 vp << pEvent->Name(); | 146 vp << pEvent->Name(); |
151 return TRUE; | 147 return true; |
152 } | 148 } |
153 | 149 |
154 FX_BOOL event::rc(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { | 150 bool event::rc(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
155 CJS_Context* pContext = (CJS_Context*)cc; | 151 CJS_Context* pContext = (CJS_Context*)cc; |
156 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 152 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
157 | 153 |
158 FX_BOOL& bRc = pEvent->Rc(); | 154 bool& bRc = pEvent->Rc(); |
159 if (vp.IsSetting()) { | 155 if (vp.IsSetting()) { |
160 vp >> bRc; | 156 vp >> bRc; |
161 } else { | 157 } else { |
162 vp << bRc; | 158 vp << bRc; |
163 } | 159 } |
164 return TRUE; | 160 return true; |
165 } | 161 } |
166 | 162 |
167 FX_BOOL event::richChange(IJS_Context* cc, | 163 bool event::richChange(IJS_Context* cc, |
168 CJS_PropValue& vp, | 164 CJS_PropValue& vp, |
169 CFX_WideString& sError) { | 165 CFX_WideString& sError) { |
170 return TRUE; | 166 return true; |
171 } | 167 } |
172 | 168 |
173 FX_BOOL event::richChangeEx(IJS_Context* cc, | 169 bool event::richChangeEx(IJS_Context* cc, |
174 CJS_PropValue& vp, | 170 CJS_PropValue& vp, |
175 CFX_WideString& sError) { | 171 CFX_WideString& sError) { |
176 return TRUE; | 172 return true; |
177 } | 173 } |
178 | 174 |
179 FX_BOOL event::richValue(IJS_Context* cc, | 175 bool event::richValue(IJS_Context* cc, |
180 CJS_PropValue& vp, | 176 CJS_PropValue& vp, |
181 CFX_WideString& sError) { | 177 CFX_WideString& sError) { |
182 return TRUE; | 178 return true; |
183 } | 179 } |
184 | 180 |
185 FX_BOOL event::selEnd(IJS_Context* cc, | 181 bool event::selEnd(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
186 CJS_PropValue& vp, | |
187 CFX_WideString& sError) { | |
188 CJS_Context* pContext = (CJS_Context*)cc; | 182 CJS_Context* pContext = (CJS_Context*)cc; |
189 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 183 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
190 | 184 |
191 if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) { | 185 if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) { |
192 return TRUE; | 186 return true; |
193 } | 187 } |
194 | 188 |
195 int& iSelEnd = pEvent->SelEnd(); | 189 int& iSelEnd = pEvent->SelEnd(); |
196 if (vp.IsSetting()) { | 190 if (vp.IsSetting()) { |
197 vp >> iSelEnd; | 191 vp >> iSelEnd; |
198 } else { | 192 } else { |
199 vp << iSelEnd; | 193 vp << iSelEnd; |
200 } | 194 } |
201 return TRUE; | 195 return true; |
202 } | 196 } |
203 | 197 |
204 FX_BOOL event::selStart(IJS_Context* cc, | 198 bool event::selStart(IJS_Context* cc, |
205 CJS_PropValue& vp, | 199 CJS_PropValue& vp, |
206 CFX_WideString& sError) { | 200 CFX_WideString& sError) { |
207 CJS_Context* pContext = (CJS_Context*)cc; | 201 CJS_Context* pContext = (CJS_Context*)cc; |
208 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 202 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
209 | 203 |
210 if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) { | 204 if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) { |
211 return TRUE; | 205 return true; |
212 } | 206 } |
213 int& iSelStart = pEvent->SelStart(); | 207 int& iSelStart = pEvent->SelStart(); |
214 if (vp.IsSetting()) { | 208 if (vp.IsSetting()) { |
215 vp >> iSelStart; | 209 vp >> iSelStart; |
216 } else { | 210 } else { |
217 vp << iSelStart; | 211 vp << iSelStart; |
218 } | 212 } |
219 return TRUE; | 213 return true; |
220 } | 214 } |
221 | 215 |
222 FX_BOOL event::shift(IJS_Context* cc, | 216 bool event::shift(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
223 CJS_PropValue& vp, | |
224 CFX_WideString& sError) { | |
225 if (!vp.IsGetting()) | 217 if (!vp.IsGetting()) |
226 return FALSE; | 218 return false; |
227 | 219 |
228 CJS_Context* pContext = (CJS_Context*)cc; | 220 CJS_Context* pContext = (CJS_Context*)cc; |
229 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 221 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
230 | 222 |
231 if (pEvent->Shift()) | 223 if (pEvent->Shift()) |
232 vp << TRUE; | 224 vp << true; |
233 else | 225 else |
234 vp << FALSE; | 226 vp << false; |
235 return TRUE; | 227 return true; |
236 } | 228 } |
237 | 229 |
238 FX_BOOL event::source(IJS_Context* cc, | 230 bool event::source(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
239 CJS_PropValue& vp, | |
240 CFX_WideString& sError) { | |
241 if (!vp.IsGetting()) | 231 if (!vp.IsGetting()) |
242 return FALSE; | 232 return false; |
243 | 233 |
244 CJS_Context* pContext = (CJS_Context*)cc; | 234 CJS_Context* pContext = (CJS_Context*)cc; |
245 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 235 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
246 | 236 |
247 vp << pEvent->Source()->GetJSObject(); | 237 vp << pEvent->Source()->GetJSObject(); |
248 return TRUE; | 238 return true; |
249 } | 239 } |
250 | 240 |
251 FX_BOOL event::target(IJS_Context* cc, | 241 bool event::target(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
252 CJS_PropValue& vp, | |
253 CFX_WideString& sError) { | |
254 if (!vp.IsGetting()) | 242 if (!vp.IsGetting()) |
255 return FALSE; | 243 return false; |
256 | 244 |
257 CJS_Context* pContext = (CJS_Context*)cc; | 245 CJS_Context* pContext = (CJS_Context*)cc; |
258 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 246 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
259 | 247 |
260 vp << pEvent->Target_Field()->GetJSObject(); | 248 vp << pEvent->Target_Field()->GetJSObject(); |
261 return TRUE; | 249 return true; |
262 } | 250 } |
263 | 251 |
264 FX_BOOL event::targetName(IJS_Context* cc, | 252 bool event::targetName(IJS_Context* cc, |
265 CJS_PropValue& vp, | 253 CJS_PropValue& vp, |
266 CFX_WideString& sError) { | 254 CFX_WideString& sError) { |
267 if (!vp.IsGetting()) | 255 if (!vp.IsGetting()) |
268 return FALSE; | 256 return false; |
269 | 257 |
270 CJS_Context* pContext = (CJS_Context*)cc; | 258 CJS_Context* pContext = (CJS_Context*)cc; |
271 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 259 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
272 | 260 |
273 vp << pEvent->TargetName(); | 261 vp << pEvent->TargetName(); |
274 return TRUE; | 262 return true; |
275 } | 263 } |
276 | 264 |
277 FX_BOOL event::type(IJS_Context* cc, | 265 bool event::type(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
278 CJS_PropValue& vp, | |
279 CFX_WideString& sError) { | |
280 if (!vp.IsGetting()) | 266 if (!vp.IsGetting()) |
281 return FALSE; | 267 return false; |
282 | 268 |
283 CJS_Context* pContext = (CJS_Context*)cc; | 269 CJS_Context* pContext = (CJS_Context*)cc; |
284 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 270 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
285 | 271 |
286 vp << pEvent->Type(); | 272 vp << pEvent->Type(); |
287 return TRUE; | 273 return true; |
288 } | 274 } |
289 | 275 |
290 FX_BOOL event::value(IJS_Context* cc, | 276 bool event::value(IJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) { |
291 CJS_PropValue& vp, | |
292 CFX_WideString& sError) { | |
293 CJS_Context* pContext = (CJS_Context*)cc; | 277 CJS_Context* pContext = (CJS_Context*)cc; |
294 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 278 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
295 | 279 |
296 if (wcscmp((const wchar_t*)pEvent->Type(), L"Field") != 0) | 280 if (wcscmp((const wchar_t*)pEvent->Type(), L"Field") != 0) |
297 return FALSE; | 281 return false; |
298 if (!pEvent->m_pValue) | 282 if (!pEvent->m_pValue) |
299 return FALSE; | 283 return false; |
300 CFX_WideString& val = pEvent->Value(); | 284 CFX_WideString& val = pEvent->Value(); |
301 if (vp.IsSetting()) { | 285 if (vp.IsSetting()) { |
302 vp >> val; | 286 vp >> val; |
303 } else { | 287 } else { |
304 vp << val; | 288 vp << val; |
305 } | 289 } |
306 return TRUE; | 290 return true; |
307 } | 291 } |
308 | 292 |
309 FX_BOOL event::willCommit(IJS_Context* cc, | 293 bool event::willCommit(IJS_Context* cc, |
310 CJS_PropValue& vp, | 294 CJS_PropValue& vp, |
311 CFX_WideString& sError) { | 295 CFX_WideString& sError) { |
312 if (!vp.IsGetting()) | 296 if (!vp.IsGetting()) |
313 return FALSE; | 297 return false; |
314 | 298 |
315 CJS_Context* pContext = (CJS_Context*)cc; | 299 CJS_Context* pContext = (CJS_Context*)cc; |
316 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 300 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
317 | 301 |
318 if (pEvent->WillCommit()) | 302 if (pEvent->WillCommit()) |
319 vp << TRUE; | 303 vp << true; |
320 else | 304 else |
321 vp << FALSE; | 305 vp << false; |
322 return TRUE; | 306 return true; |
323 } | 307 } |
OLD | NEW |