| 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 "../../include/javascript/JavaScript.h" | 7 #include "../../include/javascript/JavaScript.h" |
| 8 #include "../../include/javascript/IJavaScript.h" | 8 #include "../../include/javascript/IJavaScript.h" |
| 9 #include "../../include/javascript/JS_Define.h" | 9 #include "../../include/javascript/JS_Define.h" |
| 10 #include "../../include/javascript/JS_Object.h" | 10 #include "../../include/javascript/JS_Object.h" |
| 11 #include "../../include/javascript/JS_Value.h" | 11 #include "../../include/javascript/JS_Value.h" |
| 12 #include "../../include/javascript/JS_EventHandler.h" | 12 #include "../../include/javascript/JS_EventHandler.h" |
| 13 //#include "../include/JS_ResMgr.h" | 13 //#include "../include/JS_ResMgr.h" |
| 14 #include "../../include/javascript/JS_Context.h" | 14 #include "../../include/javascript/JS_Context.h" |
| 15 #include "../../include/javascript/event.h" | 15 #include "../../include/javascript/event.h" |
| 16 #include "../../include/javascript/Field.h" | 16 #include "../../include/javascript/Field.h" |
| 17 | 17 |
| 18 /* -------------------------- event -------------------------- */ | 18 /* -------------------------- event -------------------------- */ |
| 19 | 19 |
| 20 BEGIN_JS_STATIC_CONST(CJS_Event) | 20 BEGIN_JS_STATIC_CONST(CJS_Event) |
| 21 END_JS_STATIC_CONST() | 21 END_JS_STATIC_CONST() |
| 22 | 22 |
| 23 BEGIN_JS_STATIC_PROP(CJS_Event) | 23 BEGIN_JS_STATIC_PROP(CJS_Event) |
| 24 » JS_STATIC_PROP_ENTRY(change) | 24 JS_STATIC_PROP_ENTRY(change) |
| 25 » JS_STATIC_PROP_ENTRY(changeEx) | 25 JS_STATIC_PROP_ENTRY(changeEx) |
| 26 » JS_STATIC_PROP_ENTRY(commitKey) | 26 JS_STATIC_PROP_ENTRY(commitKey) |
| 27 » JS_STATIC_PROP_ENTRY(fieldFull) | 27 JS_STATIC_PROP_ENTRY(fieldFull) |
| 28 » JS_STATIC_PROP_ENTRY(keyDown) | 28 JS_STATIC_PROP_ENTRY(keyDown) |
| 29 » JS_STATIC_PROP_ENTRY(modifier) | 29 JS_STATIC_PROP_ENTRY(modifier) |
| 30 » JS_STATIC_PROP_ENTRY(name) | 30 JS_STATIC_PROP_ENTRY(name) |
| 31 » JS_STATIC_PROP_ENTRY(rc) | 31 JS_STATIC_PROP_ENTRY(rc) |
| 32 » JS_STATIC_PROP_ENTRY(richChange) | 32 JS_STATIC_PROP_ENTRY(richChange) |
| 33 » JS_STATIC_PROP_ENTRY(richChangeEx) | 33 JS_STATIC_PROP_ENTRY(richChangeEx) |
| 34 » JS_STATIC_PROP_ENTRY(richValue) | 34 JS_STATIC_PROP_ENTRY(richValue) |
| 35 » JS_STATIC_PROP_ENTRY(selEnd) | 35 JS_STATIC_PROP_ENTRY(selEnd) |
| 36 » JS_STATIC_PROP_ENTRY(selStart) | 36 JS_STATIC_PROP_ENTRY(selStart) |
| 37 » JS_STATIC_PROP_ENTRY(shift) | 37 JS_STATIC_PROP_ENTRY(shift) |
| 38 » JS_STATIC_PROP_ENTRY(source) | 38 JS_STATIC_PROP_ENTRY(source) |
| 39 » JS_STATIC_PROP_ENTRY(target) | 39 JS_STATIC_PROP_ENTRY(target) |
| 40 » JS_STATIC_PROP_ENTRY(targetName) | 40 JS_STATIC_PROP_ENTRY(targetName) |
| 41 » JS_STATIC_PROP_ENTRY(type) | 41 JS_STATIC_PROP_ENTRY(type) |
| 42 » JS_STATIC_PROP_ENTRY(value) | 42 JS_STATIC_PROP_ENTRY(value) |
| 43 » JS_STATIC_PROP_ENTRY(willCommit) | 43 JS_STATIC_PROP_ENTRY(willCommit) |
| 44 END_JS_STATIC_PROP() | 44 END_JS_STATIC_PROP() |
| 45 | 45 |
| 46 BEGIN_JS_STATIC_METHOD(CJS_Event) | 46 BEGIN_JS_STATIC_METHOD(CJS_Event) |
| 47 END_JS_STATIC_METHOD() | 47 END_JS_STATIC_METHOD() |
| 48 | 48 |
| 49 IMPLEMENT_JS_CLASS(CJS_Event,event) | 49 IMPLEMENT_JS_CLASS(CJS_Event, event) |
| 50 | 50 |
| 51 event::event(CJS_Object * pJsObject) : CJS_EmbedObj(pJsObject) | 51 event::event(CJS_Object* pJsObject) : CJS_EmbedObj(pJsObject) {} |
| 52 { | 52 |
| 53 } | 53 event::~event(void) {} |
| 54 | 54 |
| 55 event::~event(void) | 55 FX_BOOL event::change(IFXJS_Context* cc, |
| 56 { | 56 CJS_PropValue& vp, |
| 57 } | 57 CFX_WideString& sError) { |
| 58 | 58 CJS_Context* pContext = (CJS_Context*)cc; |
| 59 FX_BOOL event::change(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr
or) | 59 ASSERT(pContext != NULL); |
| 60 { | 60 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 61 CJS_Context* pContext = (CJS_Context*)cc; | 61 ASSERT(pEvent != NULL); |
| 62 ASSERT(pContext != NULL); | 62 |
| 63 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 63 CFX_WideString& wChange = pEvent->Change(); |
| 64 ASSERT(pEvent != NULL); | 64 if (vp.IsSetting()) { |
| 65 | 65 if (vp.GetType() == VT_string) |
| 66 CFX_WideString &wChange = pEvent->Change(); | 66 vp >> wChange; |
| 67 if (vp.IsSetting()) | 67 } else { |
| 68 { | 68 vp << wChange; |
| 69 if (vp.GetType() == VT_string) | 69 } |
| 70 vp >> wChange; | 70 return TRUE; |
| 71 } | 71 } |
| 72 else | 72 |
| 73 { | 73 FX_BOOL event::changeEx(IFXJS_Context* cc, |
| 74 vp << wChange; | 74 CJS_PropValue& vp, |
| 75 } | 75 CFX_WideString& sError) { |
| 76 return TRUE; | 76 if (!vp.IsGetting()) |
| 77 } | 77 return FALSE; |
| 78 | 78 |
| 79 FX_BOOL event::changeEx(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE
rror) | 79 CJS_Context* pContext = (CJS_Context*)cc; |
| 80 { | 80 ASSERT(pContext != NULL); |
| 81 if (!vp.IsGetting())return FALSE; | 81 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 82 | 82 ASSERT(pEvent != NULL); |
| 83 CJS_Context* pContext = (CJS_Context*)cc; | 83 |
| 84 ASSERT(pContext != NULL); | 84 vp << pEvent->ChangeEx(); |
| 85 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 85 return TRUE; |
| 86 ASSERT(pEvent != NULL); | 86 } |
| 87 | 87 |
| 88 vp << pEvent->ChangeEx(); | 88 FX_BOOL event::commitKey(IFXJS_Context* cc, |
| 89 return TRUE; | 89 CJS_PropValue& vp, |
| 90 } | 90 CFX_WideString& sError) { |
| 91 | 91 if (!vp.IsGetting()) |
| 92 FX_BOOL event::commitKey(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s
Error) | 92 return FALSE; |
| 93 { | 93 |
| 94 if (!vp.IsGetting())return FALSE; | 94 CJS_Context* pContext = (CJS_Context*)cc; |
| 95 | 95 ASSERT(pContext != NULL); |
| 96 CJS_Context* pContext = (CJS_Context*)cc; | 96 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 97 ASSERT(pContext != NULL); | 97 ASSERT(pEvent != NULL); |
| 98 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 98 |
| 99 ASSERT(pEvent != NULL); | 99 vp << pEvent->CommitKey(); |
| 100 | 100 return TRUE; |
| 101 vp << pEvent->CommitKey(); | 101 } |
| 102 return TRUE; | 102 |
| 103 } | 103 FX_BOOL event::fieldFull(IFXJS_Context* cc, |
| 104 | 104 CJS_PropValue& vp, |
| 105 FX_BOOL event::fieldFull(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s
Error) | 105 CFX_WideString& sError) { |
| 106 { | 106 CJS_Context* pContext = (CJS_Context*)cc; |
| 107 CJS_Context* pContext = (CJS_Context*)cc; | 107 ASSERT(pContext != NULL); |
| 108 ASSERT(pContext != NULL); | 108 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 109 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 109 ASSERT(pEvent != NULL); |
| 110 ASSERT(pEvent != NULL); | 110 |
| 111 | 111 if (!vp.IsGetting() && |
| 112 if (!vp.IsGetting() && wcscmp((const wchar_t*)pEvent->Name(),L"Keystroke
") != 0) | 112 wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) |
| 113 return FALSE; | 113 return FALSE; |
| 114 | 114 |
| 115 if (pEvent->FieldFull()) | 115 if (pEvent->FieldFull()) |
| 116 vp << TRUE; | 116 vp << TRUE; |
| 117 else | 117 else |
| 118 vp << FALSE; | 118 vp << FALSE; |
| 119 return TRUE; | 119 return TRUE; |
| 120 } | 120 } |
| 121 | 121 |
| 122 FX_BOOL event::keyDown(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sEr
ror) | 122 FX_BOOL event::keyDown(IFXJS_Context* cc, |
| 123 { | 123 CJS_PropValue& vp, |
| 124 if (!vp.IsGetting())return FALSE; | 124 CFX_WideString& sError) { |
| 125 | 125 if (!vp.IsGetting()) |
| 126 CJS_Context* pContext = (CJS_Context*)cc; | 126 return FALSE; |
| 127 ASSERT(pContext != NULL); | 127 |
| 128 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 128 CJS_Context* pContext = (CJS_Context*)cc; |
| 129 ASSERT(pEvent != NULL); | 129 ASSERT(pContext != NULL); |
| 130 | 130 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 131 if (pEvent->KeyDown()) | 131 ASSERT(pEvent != NULL); |
| 132 vp << TRUE; | 132 |
| 133 else | 133 if (pEvent->KeyDown()) |
| 134 vp << FALSE; | 134 vp << TRUE; |
| 135 return TRUE; | 135 else |
| 136 } | 136 vp << FALSE; |
| 137 | 137 return TRUE; |
| 138 FX_BOOL event::modifier(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE
rror) | 138 } |
| 139 { | 139 |
| 140 if (!vp.IsGetting())return FALSE; | 140 FX_BOOL event::modifier(IFXJS_Context* cc, |
| 141 | 141 CJS_PropValue& vp, |
| 142 CJS_Context* pContext = (CJS_Context*)cc; | 142 CFX_WideString& sError) { |
| 143 ASSERT(pContext != NULL); | 143 if (!vp.IsGetting()) |
| 144 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 144 return FALSE; |
| 145 ASSERT(pEvent != NULL); | 145 |
| 146 | 146 CJS_Context* pContext = (CJS_Context*)cc; |
| 147 if (pEvent->Modifier()) | 147 ASSERT(pContext != NULL); |
| 148 vp << TRUE; | 148 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 149 else | 149 ASSERT(pEvent != NULL); |
| 150 vp << FALSE; | 150 |
| 151 return TRUE; | 151 if (pEvent->Modifier()) |
| 152 } | 152 vp << TRUE; |
| 153 | 153 else |
| 154 FX_BOOL event::name(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError
) | 154 vp << FALSE; |
| 155 { | 155 return TRUE; |
| 156 if (!vp.IsGetting())return FALSE; | 156 } |
| 157 | 157 |
| 158 CJS_Context* pContext = (CJS_Context*)cc; | 158 FX_BOOL event::name(IFXJS_Context* cc, |
| 159 ASSERT(pContext != NULL); | 159 CJS_PropValue& vp, |
| 160 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 160 CFX_WideString& sError) { |
| 161 ASSERT(pEvent != NULL); | 161 if (!vp.IsGetting()) |
| 162 | 162 return FALSE; |
| 163 vp << pEvent->Name(); | 163 |
| 164 return TRUE; | 164 CJS_Context* pContext = (CJS_Context*)cc; |
| 165 } | 165 ASSERT(pContext != NULL); |
| 166 | 166 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 167 FX_BOOL event::rc(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError) | 167 ASSERT(pEvent != NULL); |
| 168 { | 168 |
| 169 CJS_Context* pContext = (CJS_Context*)cc; | 169 vp << pEvent->Name(); |
| 170 ASSERT(pContext != NULL); | 170 return TRUE; |
| 171 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 171 } |
| 172 ASSERT(pEvent != NULL); | 172 |
| 173 | 173 FX_BOOL event::rc(IFXJS_Context* cc, |
| 174 FX_BOOL &bRc = pEvent->Rc(); | 174 CJS_PropValue& vp, |
| 175 if (vp.IsSetting()) | 175 CFX_WideString& sError) { |
| 176 { | 176 CJS_Context* pContext = (CJS_Context*)cc; |
| 177 vp>>bRc; | 177 ASSERT(pContext != NULL); |
| 178 } | 178 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 179 else | 179 ASSERT(pEvent != NULL); |
| 180 { | 180 |
| 181 vp<<bRc; | 181 FX_BOOL& bRc = pEvent->Rc(); |
| 182 } | 182 if (vp.IsSetting()) { |
| 183 return TRUE; | 183 vp >> bRc; |
| 184 } | 184 } else { |
| 185 | 185 vp << bRc; |
| 186 FX_BOOL event::richChange(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) | 186 } |
| 187 { | 187 return TRUE; |
| 188 return TRUE; | 188 } |
| 189 if (vp.IsSetting()) | 189 |
| 190 { | 190 FX_BOOL event::richChange(IFXJS_Context* cc, |
| 191 } | 191 CJS_PropValue& vp, |
| 192 else | 192 CFX_WideString& sError) { |
| 193 { | 193 return TRUE; |
| 194 ; | 194 if (vp.IsSetting()) { |
| 195 } | 195 } else { |
| 196 return TRUE; | 196 ; |
| 197 } | 197 } |
| 198 | 198 return TRUE; |
| 199 FX_BOOL event::richChangeEx(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString
& sError) | 199 } |
| 200 { | 200 |
| 201 return TRUE; | 201 FX_BOOL event::richChangeEx(IFXJS_Context* cc, |
| 202 if (vp.IsSetting()) | 202 CJS_PropValue& vp, |
| 203 { | 203 CFX_WideString& sError) { |
| 204 } | 204 return TRUE; |
| 205 else | 205 if (vp.IsSetting()) { |
| 206 { | 206 } else { |
| 207 ; | 207 ; |
| 208 } | 208 } |
| 209 return TRUE; | 209 return TRUE; |
| 210 } | 210 } |
| 211 | 211 |
| 212 | 212 FX_BOOL event::richValue(IFXJS_Context* cc, |
| 213 FX_BOOL event::richValue(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& s
Error) | 213 CJS_PropValue& vp, |
| 214 { | 214 CFX_WideString& sError) { |
| 215 return TRUE; | 215 return TRUE; |
| 216 if (vp.IsSetting()) | 216 if (vp.IsSetting()) { |
| 217 { | 217 } else { |
| 218 } | 218 ; |
| 219 else | 219 } |
| 220 { | 220 return TRUE; |
| 221 ; | 221 } |
| 222 } | 222 |
| 223 return TRUE; | 223 FX_BOOL event::selEnd(IFXJS_Context* cc, |
| 224 } | 224 CJS_PropValue& vp, |
| 225 | 225 CFX_WideString& sError) { |
| 226 FX_BOOL event::selEnd(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr
or) | 226 CJS_Context* pContext = (CJS_Context*)cc; |
| 227 { | 227 ASSERT(pContext != NULL); |
| 228 CJS_Context* pContext = (CJS_Context*)cc; | 228 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 229 ASSERT(pContext != NULL); | 229 ASSERT(pEvent != NULL); |
| 230 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 230 |
| 231 ASSERT(pEvent != NULL); | 231 if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) { |
| 232 | 232 return TRUE; |
| 233 if (wcscmp((const wchar_t*)pEvent->Name(),L"Keystroke") != 0) | 233 } |
| 234 { | 234 |
| 235 return TRUE; | 235 int& iSelEnd = pEvent->SelEnd(); |
| 236 } | 236 if (vp.IsSetting()) { |
| 237 | 237 vp >> iSelEnd; |
| 238 int &iSelEnd = pEvent->SelEnd(); | 238 } else { |
| 239 if (vp.IsSetting()) | 239 vp << iSelEnd; |
| 240 { | 240 } |
| 241 vp >> iSelEnd; | 241 return TRUE; |
| 242 } | 242 } |
| 243 else | 243 |
| 244 { | 244 FX_BOOL event::selStart(IFXJS_Context* cc, |
| 245 vp << iSelEnd; | 245 CJS_PropValue& vp, |
| 246 } | 246 CFX_WideString& sError) { |
| 247 return TRUE; | 247 CJS_Context* pContext = (CJS_Context*)cc; |
| 248 } | 248 ASSERT(pContext != NULL); |
| 249 | 249 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 250 FX_BOOL event::selStart(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sE
rror) | 250 ASSERT(pEvent != NULL); |
| 251 { | 251 |
| 252 CJS_Context* pContext = (CJS_Context*)cc; | 252 if (wcscmp((const wchar_t*)pEvent->Name(), L"Keystroke") != 0) { |
| 253 ASSERT(pContext != NULL); | 253 return TRUE; |
| 254 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 254 } |
| 255 ASSERT(pEvent != NULL); | 255 int& iSelStart = pEvent->SelStart(); |
| 256 | 256 if (vp.IsSetting()) { |
| 257 if (wcscmp((const wchar_t*)pEvent->Name(),L"Keystroke") != 0) | 257 vp >> iSelStart; |
| 258 { | 258 } else { |
| 259 return TRUE; | 259 vp << iSelStart; |
| 260 } | 260 } |
| 261 int &iSelStart = pEvent->SelStart(); | 261 return TRUE; |
| 262 if (vp.IsSetting()) | 262 } |
| 263 { | 263 |
| 264 vp >> iSelStart; | 264 FX_BOOL event::shift(IFXJS_Context* cc, |
| 265 } | 265 CJS_PropValue& vp, |
| 266 else | 266 CFX_WideString& sError) { |
| 267 { | 267 if (!vp.IsGetting()) |
| 268 vp << iSelStart; | 268 return FALSE; |
| 269 } | 269 |
| 270 return TRUE; | 270 CJS_Context* pContext = (CJS_Context*)cc; |
| 271 } | 271 ASSERT(pContext != NULL); |
| 272 | 272 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 273 FX_BOOL event::shift(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro
r) | 273 ASSERT(pEvent != NULL); |
| 274 { | 274 |
| 275 if (!vp.IsGetting())return FALSE; | 275 if (pEvent->Shift()) |
| 276 | 276 vp << TRUE; |
| 277 CJS_Context* pContext = (CJS_Context*)cc; | 277 else |
| 278 ASSERT(pContext != NULL); | 278 vp << FALSE; |
| 279 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 279 return TRUE; |
| 280 ASSERT(pEvent != NULL); | 280 } |
| 281 | 281 |
| 282 if (pEvent->Shift()) | 282 FX_BOOL event::source(IFXJS_Context* cc, |
| 283 vp << TRUE; | 283 CJS_PropValue& vp, |
| 284 else | 284 CFX_WideString& sError) { |
| 285 vp << FALSE; | 285 if (!vp.IsGetting()) |
| 286 return TRUE; | 286 return FALSE; |
| 287 } | 287 |
| 288 | 288 CJS_Context* pContext = (CJS_Context*)cc; |
| 289 FX_BOOL event::source(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr
or) | 289 ASSERT(pContext != NULL); |
| 290 { | 290 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 291 if (!vp.IsGetting())return FALSE; | 291 ASSERT(pEvent != NULL); |
| 292 | 292 |
| 293 CJS_Context* pContext = (CJS_Context*)cc; | 293 vp << pEvent->Source()->GetJSObject(); |
| 294 ASSERT(pContext != NULL); | 294 return TRUE; |
| 295 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 295 } |
| 296 ASSERT(pEvent != NULL); | 296 |
| 297 | 297 FX_BOOL event::target(IFXJS_Context* cc, |
| 298 vp << pEvent->Source()->GetJSObject(); | 298 CJS_PropValue& vp, |
| 299 return TRUE; | 299 CFX_WideString& sError) { |
| 300 } | 300 if (!vp.IsGetting()) |
| 301 | 301 return FALSE; |
| 302 FX_BOOL event::target(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErr
or) | 302 |
| 303 { | 303 CJS_Context* pContext = (CJS_Context*)cc; |
| 304 if (!vp.IsGetting())return FALSE; | 304 ASSERT(pContext != NULL); |
| 305 | 305 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 306 CJS_Context* pContext = (CJS_Context*)cc; | 306 ASSERT(pEvent != NULL); |
| 307 ASSERT(pContext != NULL); | 307 |
| 308 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 308 vp << pEvent->Target_Field()->GetJSObject(); |
| 309 ASSERT(pEvent != NULL); | 309 return TRUE; |
| 310 | 310 } |
| 311 vp<<pEvent->Target_Field()->GetJSObject(); | 311 |
| 312 return TRUE; | 312 FX_BOOL event::targetName(IFXJS_Context* cc, |
| 313 } | 313 CJS_PropValue& vp, |
| 314 | 314 CFX_WideString& sError) { |
| 315 FX_BOOL event::targetName(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) | 315 if (!vp.IsGetting()) |
| 316 { | 316 return FALSE; |
| 317 if (!vp.IsGetting())return FALSE; | 317 |
| 318 | 318 CJS_Context* pContext = (CJS_Context*)cc; |
| 319 CJS_Context* pContext = (CJS_Context*)cc; | 319 ASSERT(pContext != NULL); |
| 320 ASSERT(pContext != NULL); | 320 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 321 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 321 ASSERT(pEvent != NULL); |
| 322 ASSERT(pEvent != NULL); | 322 |
| 323 | 323 vp << pEvent->TargetName(); |
| 324 vp << pEvent->TargetName(); | 324 return TRUE; |
| 325 return TRUE; | 325 } |
| 326 } | 326 |
| 327 | 327 FX_BOOL event::type(IFXJS_Context* cc, |
| 328 FX_BOOL event::type(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sError
) | 328 CJS_PropValue& vp, |
| 329 { | 329 CFX_WideString& sError) { |
| 330 if (!vp.IsGetting())return FALSE; | 330 if (!vp.IsGetting()) |
| 331 | 331 return FALSE; |
| 332 CJS_Context* pContext = (CJS_Context*)cc; | 332 |
| 333 ASSERT(pContext != NULL); | 333 CJS_Context* pContext = (CJS_Context*)cc; |
| 334 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 334 ASSERT(pContext != NULL); |
| 335 ASSERT(pEvent != NULL); | 335 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 336 | 336 ASSERT(pEvent != NULL); |
| 337 vp << pEvent->Type(); | 337 |
| 338 return TRUE; | 338 vp << pEvent->Type(); |
| 339 } | 339 return TRUE; |
| 340 | 340 } |
| 341 FX_BOOL event::value(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString& sErro
r) | 341 |
| 342 { | 342 FX_BOOL event::value(IFXJS_Context* cc, |
| 343 CJS_Context* pContext = (CJS_Context*)cc; | 343 CJS_PropValue& vp, |
| 344 ASSERT(pContext != NULL); | 344 CFX_WideString& sError) { |
| 345 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 345 CJS_Context* pContext = (CJS_Context*)cc; |
| 346 ASSERT(pEvent != NULL); | 346 ASSERT(pContext != NULL); |
| 347 | 347 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 348 if (wcscmp((const wchar_t*)pEvent->Type(),L"Field") != 0) | 348 ASSERT(pEvent != NULL); |
| 349 return FALSE; | 349 |
| 350 if(!pEvent->m_pValue) | 350 if (wcscmp((const wchar_t*)pEvent->Type(), L"Field") != 0) |
| 351 return FALSE; | 351 return FALSE; |
| 352 CFX_WideString & val = pEvent->Value(); | 352 if (!pEvent->m_pValue) |
| 353 if (vp.IsSetting()) | 353 return FALSE; |
| 354 { | 354 CFX_WideString& val = pEvent->Value(); |
| 355 vp >> val; | 355 if (vp.IsSetting()) { |
| 356 } | 356 vp >> val; |
| 357 else | 357 } else { |
| 358 { | 358 vp << val; |
| 359 vp << val; | 359 } |
| 360 } | 360 return TRUE; |
| 361 return TRUE; | 361 } |
| 362 } | 362 |
| 363 | 363 FX_BOOL event::willCommit(IFXJS_Context* cc, |
| 364 FX_BOOL event::willCommit(IFXJS_Context* cc, CJS_PropValue& vp, CFX_WideString&
sError) | 364 CJS_PropValue& vp, |
| 365 { | 365 CFX_WideString& sError) { |
| 366 if (!vp.IsGetting())return FALSE; | 366 if (!vp.IsGetting()) |
| 367 | 367 return FALSE; |
| 368 CJS_Context* pContext = (CJS_Context*)cc; | 368 |
| 369 ASSERT(pContext != NULL); | 369 CJS_Context* pContext = (CJS_Context*)cc; |
| 370 CJS_EventHandler* pEvent = pContext->GetEventHandler(); | 370 ASSERT(pContext != NULL); |
| 371 ASSERT(pEvent != NULL); | 371 CJS_EventHandler* pEvent = pContext->GetEventHandler(); |
| 372 | 372 ASSERT(pEvent != NULL); |
| 373 if (pEvent->WillCommit()) | 373 |
| 374 vp << TRUE; | 374 if (pEvent->WillCommit()) |
| 375 else | 375 vp << TRUE; |
| 376 vp << FALSE; | 376 else |
| 377 return TRUE; | 377 vp << FALSE; |
| 378 } | 378 return TRUE; |
| 379 | 379 } |
| OLD | NEW |