1 /*
2 * Copyright (c) 2002-2025 Gargoyle Software Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 * https://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15 package org.htmlunit.javascript.host.svg;
16
17 import static org.htmlunit.javascript.configuration.SupportedBrowser.CHROME;
18 import static org.htmlunit.javascript.configuration.SupportedBrowser.EDGE;
19 import static org.htmlunit.javascript.configuration.SupportedBrowser.FF;
20 import static org.htmlunit.javascript.configuration.SupportedBrowser.FF_ESR;
21
22 import org.htmlunit.corejs.javascript.Function;
23 import org.htmlunit.javascript.JavaScriptEngine;
24 import org.htmlunit.javascript.configuration.JsxClass;
25 import org.htmlunit.javascript.configuration.JsxConstructor;
26 import org.htmlunit.javascript.configuration.JsxGetter;
27 import org.htmlunit.javascript.configuration.JsxSetter;
28 import org.htmlunit.javascript.host.Element;
29 import org.htmlunit.javascript.host.css.CSSStyleDeclaration;
30 import org.htmlunit.javascript.host.event.Event;
31 import org.htmlunit.javascript.host.event.MouseEvent;
32 import org.htmlunit.svg.SvgElement;
33
34 /**
35 * A JavaScript object for {@code SVGElement}.
36 *
37 * @author Ahmed Ashour
38 * @author Ronald Brill
39 */
40 @JsxClass(domClass = SvgElement.class)
41 public class SVGElement extends Element {
42
43 /**
44 * Creates an instance.
45 */
46 @Override
47 @JsxConstructor
48 public void jsConstructor() {
49 throw JavaScriptEngine.typeErrorIllegalConstructor();
50 }
51
52 /**
53 * Returns the bounding box, in current user space, of the geometry of all contained graphics elements.
54 * @return the bounding box
55 */
56 protected SVGRect getBBox() {
57 final SVGRect rect = new SVGRect();
58 rect.setParentScope(getParentScope());
59 rect.setPrototype(getPrototype(rect.getClass()));
60 return rect;
61 }
62
63 /**
64 * {@inheritDoc}
65 */
66 @Override
67 @JsxGetter
68 public CSSStyleDeclaration getStyle() {
69 return super.getStyle();
70 }
71
72 /**
73 * {@inheritDoc}
74 */
75 @Override
76 @JsxSetter
77 public void setStyle(final String style) {
78 super.setStyle(style);
79 }
80
81 /**
82 * Returns the {@code onfocus} event handler.
83 * @return the {@code onfocus} event handler
84 */
85 @JsxGetter
86 public Function getOnfocus() {
87 return getEventHandler(Event.TYPE_FOCUS);
88 }
89
90 /**
91 * Sets the {@code onfocus} event handler.
92 * @param focus the {@code onfocus} event handler
93 */
94 @JsxSetter
95 public void setOnfocus(final Object focus) {
96 setEventHandler(Event.TYPE_FOCUS, focus);
97 }
98
99 /**
100 * Returns the {@code ondragend} event handler.
101 * @return the {@code ondragend} event handler
102 */
103 @JsxGetter
104 public Function getOndragend() {
105 return getEventHandler(Event.TYPE_DRAGEND);
106 }
107
108 /**
109 * Sets the {@code ondragend} event handler.
110 * @param dragend the {@code ondragend} event handler
111 */
112 @JsxSetter
113 public void setOndragend(final Object dragend) {
114 setEventHandler(Event.TYPE_DRAGEND, dragend);
115 }
116
117 /**
118 * Returns the {@code oninvalid} event handler.
119 * @return the {@code oninvalid} event handler
120 */
121 @JsxGetter
122 public Function getOninvalid() {
123 return getEventHandler(Event.TYPE_INVALID);
124 }
125
126 /**
127 * Sets the {@code oninvalid} event handler.
128 * @param invalid the {@code oninvalid} event handler
129 */
130 @JsxSetter
131 public void setOninvalid(final Object invalid) {
132 setEventHandler(Event.TYPE_INVALID, invalid);
133 }
134
135 /**
136 * Returns the {@code pointercancel} event handler for this element.
137 * @return the {@code pointercancel} event handler for this element
138 */
139 @JsxGetter({CHROME, EDGE})
140 public Function getOnpointercancel() {
141 return getEventHandler(Event.TYPE_POINTERCANCEL);
142 }
143
144 /**
145 * Sets the {@code pointercancel} event handler.
146 * @param pointercancel the {@code pointercancel} event handler
147 */
148 @JsxSetter({CHROME, EDGE})
149 public void setOnpointercancel(final Object pointercancel) {
150 setEventHandler(Event.TYPE_POINTERCANCEL, pointercancel);
151 }
152
153 /**
154 * Returns the {@code pointerout} event handler for this element.
155 * @return the {@code pointerout} event handler for this element
156 */
157 @JsxGetter({CHROME, EDGE})
158 public Function getOnpointerout() {
159 return getEventHandler(Event.TYPE_POINTEROUT);
160 }
161
162 /**
163 * Sets the {@code pointerout} event handler.
164 * @param pointerout the {@code pointerout} event handler
165 */
166 @JsxSetter({CHROME, EDGE})
167 public void setOnpointerout(final Object pointerout) {
168 setEventHandler(Event.TYPE_POINTEROUT, pointerout);
169 }
170
171 /**
172 * Returns the {@code onratechange} event handler.
173 * @return the {@code onratechange} event handler
174 */
175 @JsxGetter
176 public Function getOnratechange() {
177 return getEventHandler(Event.TYPE_RATECHANGE);
178 }
179
180 /**
181 * Sets the {@code onratechange} event handler.
182 * @param ratechange the {@code onratechange} event handler
183 */
184 @JsxSetter
185 public void setOnratechange(final Object ratechange) {
186 setEventHandler(Event.TYPE_RATECHANGE, ratechange);
187 }
188
189 /**
190 * Returns the {@code onresize} event handler.
191 * @return the {@code onresize} event handler
192 */
193 @JsxGetter
194 public Function getOnresize() {
195 return getEventHandler(Event.TYPE_RESIZE);
196 }
197
198 /**
199 * Sets the {@code onresize} event handler.
200 * @param resize the {@code onresize} event handler
201 */
202 @JsxSetter
203 public void setOnresize(final Object resize) {
204 setEventHandler(Event.TYPE_RESIZE, resize);
205 }
206
207 /**
208 * Returns the {@code oncanplaythrough} event handler.
209 * @return the {@code oncanplaythrough} event handler
210 */
211 @JsxGetter
212 public Function getOncanplaythrough() {
213 return getEventHandler(Event.TYPE_CANPLAYTHROUGH);
214 }
215
216 /**
217 * Sets the {@code oncanplaythrough} event handler.
218 * @param canplaythrough the {@code oncanplaythrough} event handler
219 */
220 @JsxSetter
221 public void setOncanplaythrough(final Object canplaythrough) {
222 setEventHandler(Event.TYPE_CANPLAYTHROUGH, canplaythrough);
223 }
224
225 /**
226 * Returns the {@code oncancel} event handler.
227 * @return the {@code oncancel} event handler
228 */
229 @JsxGetter({CHROME, EDGE})
230 public Function getOncancel() {
231 return getEventHandler(Event.TYPE_CANCEL);
232 }
233
234 /**
235 * Sets the {@code oncancel} event handler.
236 * @param cancel the {@code oncancel} event handler
237 */
238 @JsxSetter({CHROME, EDGE})
239 public void setOncancel(final Object cancel) {
240 setEventHandler(Event.TYPE_CANCEL, cancel);
241 }
242
243 /**
244 * Returns the {@code pointerenter} event handler.
245 * @return the {@code pointerenter} event handler
246 */
247 @JsxGetter({CHROME, EDGE})
248 public Function getOnpointerenter() {
249 return getEventHandler(Event.TYPE_POINTERENTER);
250 }
251
252 /**
253 * Sets the {@code pointerenter} event handler.
254 * @param pointerenter the {@code pointerenter} event handler
255 */
256 @JsxSetter({CHROME, EDGE})
257 public void setOnpointerenter(final Object pointerenter) {
258 setEventHandler(Event.TYPE_POINTERENTER, pointerenter);
259 }
260
261 /**
262 * Returns the {@code onselect} event handler.
263 * @return the {@code onselect} event handler
264 */
265 @JsxGetter
266 public Function getOnselect() {
267 return getEventHandler(Event.TYPE_SELECT);
268 }
269
270 /**
271 * Sets the {@code onselect} event handler.
272 * @param select the {@code onselect} event handler
273 */
274 @JsxSetter
275 public void setOnselect(final Object select) {
276 setEventHandler(Event.TYPE_SELECT, select);
277 }
278
279 /**
280 * Returns the {@code onselectstart} event handler for this element.
281 * @return the {@code onselectstart} event handler for this element
282 */
283 @JsxGetter
284 public Function getOnselectstart() {
285 return getEventHandler(Event.TYPE_SELECTSTART);
286 }
287
288 /**
289 * Sets the {@code onselectstart} event handler for this element.
290 * @param onselectstart the {@code onselectstart} event handler for this element
291 */
292 @JsxSetter
293 public void setOnselectstart(final Object onselectstart) {
294 setEventHandler(Event.TYPE_SELECTSTART, onselectstart);
295 }
296
297 /**
298 * Returns the {@code onselectionchange} event handler for this element.
299 * @return the {@code onselectionchange} event handler for this element
300 */
301 @JsxGetter
302 public Function getOnselectionchange() {
303 return getEventHandler(Event.TYPE_SELECTIONCHANGE);
304 }
305
306 /**
307 * Sets the {@code onselectionchange} event handler for this element.
308 * @param onselectionchange the {@code onselectionchange} event handler for this element
309 */
310 @JsxSetter
311 public void setOnselectionchange(final Object onselectionchange) {
312 setEventHandler(Event.TYPE_SELECTIONCHANGE, onselectionchange);
313 }
314
315 /**
316 * Returns the {@code onauxclick} event handler.
317 * @return the {@code onauxclick} event handler
318 */
319 @JsxGetter({CHROME, EDGE})
320 public Function getOnauxclick() {
321 return getEventHandler(Event.TYPE_AUXCLICK);
322 }
323
324 /**
325 * Sets the {@code onauxclick} event handler.
326 * @param auxclick the {@code onauxclick} event handler
327 */
328 @JsxSetter({CHROME, EDGE})
329 public void setOnauxclick(final Object auxclick) {
330 setEventHandler(Event.TYPE_AUXCLICK, auxclick);
331 }
332
333 /**
334 * Returns the {@code onpause} event handler.
335 * @return the {@code onpause} event handler
336 */
337 @JsxGetter
338 public Function getOnpause() {
339 return getEventHandler(Event.TYPE_PAUSE);
340 }
341
342 /**
343 * Sets the {@code onpause} event handler.
344 * @param pause the {@code onpause} event handler
345 */
346 @JsxSetter
347 public void setOnpause(final Object pause) {
348 setEventHandler(Event.TYPE_PAUSE, pause);
349 }
350
351 /**
352 * Returns the {@code onloadstart} event handler.
353 * @return the {@code onloadstart} event handler
354 */
355 @JsxGetter
356 public Function getOnloadstart() {
357 return getEventHandler(Event.TYPE_LOAD_START);
358 }
359
360 /**
361 * Sets the {@code onloadstart} event handler.
362 * @param loadstart the {@code onloadstart} event handler
363 */
364 @JsxSetter
365 public void setOnloadstart(final Object loadstart) {
366 setEventHandler(Event.TYPE_LOAD_START, loadstart);
367 }
368
369 /**
370 * Returns the {@code onprogress} event handler.
371 * @return the {@code onprogress} event handler
372 */
373 @JsxGetter
374 public Function getOnprogress() {
375 return getEventHandler(Event.TYPE_PROGRESS);
376 }
377
378 /**
379 * Sets the {@code onprogress} event handler.
380 * @param progress the {@code onprogress} event handler
381 */
382 @JsxSetter
383 public void setOnprogress(final Object progress) {
384 setEventHandler(Event.TYPE_PROGRESS, progress);
385 }
386
387 /**
388 * Returns the {@code pointerup} event handler for this element.
389 * @return the {@code pointerup} event handler for this element
390 */
391 @JsxGetter({CHROME, EDGE})
392 public Function getOnpointerup() {
393 return getEventHandler(Event.TYPE_POINTERUP);
394 }
395
396 /**
397 * Sets the {@code pointerup} event handler.
398 * @param pointerup the {@code pointerup} event handler
399 */
400 @JsxSetter({CHROME, EDGE})
401 public void setOnpointerup(final Object pointerup) {
402 setEventHandler(Event.TYPE_POINTERUP, pointerup);
403 }
404
405 /**
406 * Returns the {@code onscroll} event handler.
407 * @return the {@code onscroll} event handler
408 */
409 @JsxGetter
410 public Function getOnscroll() {
411 return getEventHandler(Event.TYPE_SCROLL);
412 }
413
414 /**
415 * Sets the {@code onscroll} event handler.
416 * @param scroll the {@code onscroll} event handler
417 */
418 @JsxSetter
419 public void setOnscroll(final Object scroll) {
420 setEventHandler(Event.TYPE_SCROLL, scroll);
421 }
422
423 /**
424 * Returns the {@code onscrollend} event handler.
425 * @return the {@code onscrollend} event handler
426 */
427 @JsxGetter
428 public Function getOnscrollend() {
429 return getEventHandler(Event.TYPE_SCROLLEND);
430 }
431
432 /**
433 * Sets the {@code onscrollend} event handler.
434 * @param scrollend the {@code onscrollend} event handler
435 */
436 @JsxSetter
437 public void setOnscrollend(final Object scrollend) {
438 setEventHandler(Event.TYPE_SCROLLEND, scrollend);
439 }
440
441 /**
442 * Returns the {@code onkeydown} event handler.
443 * @return the {@code onkeydown} event handler
444 */
445 @JsxGetter
446 public Function getOnkeydown() {
447 return getEventHandler(Event.TYPE_KEY_DOWN);
448 }
449
450 /**
451 * Sets the {@code onkeydown} event handler.
452 * @param keydown the {@code onkeydown} event handler
453 */
454 @JsxSetter
455 public void setOnkeydown(final Object keydown) {
456 setEventHandler(Event.TYPE_KEY_DOWN, keydown);
457 }
458
459 /**
460 * Returns the {@code pointerleave} event handler.
461 * @return the {@code pointerleave} event handler
462 */
463 @JsxGetter({CHROME, EDGE})
464 public Function getOnpointerleave() {
465 return getEventHandler(Event.TYPE_POINTERLEAVE);
466 }
467
468 /**
469 * Sets the {@code pointerleave} event handler.
470 * @param pointerleave the {@code pointerleave} event handler
471 */
472 @JsxSetter({CHROME, EDGE})
473 public void setOnpointerleave(final Object pointerleave) {
474 setEventHandler(Event.TYPE_POINTERLEAVE, pointerleave);
475 }
476
477 /**
478 * Returns the {@code onclick} event handler.
479 * @return the {@code onclick} event handler
480 */
481 @JsxGetter
482 public Function getOnclick() {
483 return getEventHandler(MouseEvent.TYPE_CLICK);
484 }
485
486 /**
487 * Sets the {@code onclick} event handler.
488 * @param click the {@code onclick} event handler
489 */
490 @JsxSetter
491 public void setOnclick(final Object click) {
492 setEventHandler(MouseEvent.TYPE_CLICK, click);
493 }
494
495 /**
496 * Returns the {@code onkeyup} event handler.
497 * @return the {@code onkeyup} event handler
498 */
499 @JsxGetter
500 public Function getOnkeyup() {
501 return getEventHandler(Event.TYPE_KEY_UP);
502 }
503
504 /**
505 * Sets the {@code onkeyup} event handler.
506 * @param keyup the {@code onkeyup} event handler
507 */
508 @JsxSetter
509 public void setOnkeyup(final Object keyup) {
510 setEventHandler(Event.TYPE_KEY_UP, keyup);
511 }
512
513 /**
514 * Returns the {@code onchange} event handler.
515 * @return the {@code onchange} event handler
516 */
517 @JsxGetter
518 public Function getOnchange() {
519 return getEventHandler(Event.TYPE_CHANGE);
520 }
521
522 /**
523 * Sets the {@code onchange} event handler.
524 * @param change the {@code onchange} event handler
525 */
526 @JsxSetter
527 public void setOnchange(final Object change) {
528 setEventHandler(Event.TYPE_CHANGE, change);
529 }
530
531 /**
532 * Returns the {@code onreset} event handler.
533 * @return the {@code onreset} event handler
534 */
535 @JsxGetter
536 public Function getOnreset() {
537 return getEventHandler(Event.TYPE_RESET);
538 }
539
540 /**
541 * Sets the {@code onreset} event handler.
542 * @param reset the {@code onreset} event handler
543 */
544 @JsxSetter
545 public void setOnreset(final Object reset) {
546 setEventHandler(Event.TYPE_RESET, reset);
547 }
548
549 /**
550 * Returns the {@code onkeypress} event handler.
551 * @return the {@code onkeypress} event handler
552 */
553 @JsxGetter
554 public Function getOnkeypress() {
555 return getEventHandler(Event.TYPE_KEY_PRESS);
556 }
557
558 /**
559 * Sets the {@code onkeypress} event handler.
560 * @param keypress the {@code onkeypress} event handler
561 */
562 @JsxSetter
563 public void setOnkeypress(final Object keypress) {
564 setEventHandler(Event.TYPE_KEY_PRESS, keypress);
565 }
566
567 /**
568 * Returns the {@code ontimeupdate} event handler.
569 * @return the {@code ontimeupdate} event handler
570 */
571 @JsxGetter
572 public Function getOntimeupdate() {
573 return getEventHandler(Event.TYPE_TIMEUPDATE);
574 }
575
576 /**
577 * Sets the {@code ontimeupdate} event handler.
578 * @param timeupdate the {@code ontimeupdate} event handler
579 */
580 @JsxSetter
581 public void setOntimeupdate(final Object timeupdate) {
582 setEventHandler(Event.TYPE_TIMEUPDATE, timeupdate);
583 }
584
585 /**
586 * Returns the {@code ondblclick} event handler.
587 * @return the {@code ondblclick} event handler
588 */
589 @JsxGetter
590 public Function getOndblclick() {
591 return getEventHandler(MouseEvent.TYPE_DBL_CLICK);
592 }
593
594 /**
595 * Sets the {@code ondblclick} event handler.
596 * @param dblclick the {@code ondblclick} event handler
597 */
598 @JsxSetter
599 public void setOndblclick(final Object dblclick) {
600 setEventHandler(MouseEvent.TYPE_DBL_CLICK, dblclick);
601 }
602
603 /**
604 * Returns the {@code ondrag} event handler.
605 * @return the {@code ondrag} event handler
606 */
607 @JsxGetter
608 public Function getOndrag() {
609 return getEventHandler(Event.TYPE_DRAG);
610 }
611
612 /**
613 * Sets the {@code ondrag} event handler.
614 * @param drag the {@code ondrag} event handler
615 */
616 @JsxSetter
617 public void setOndrag(final Object drag) {
618 setEventHandler(Event.TYPE_DRAG, drag);
619 }
620
621 /**
622 * Returns the {@code onseeked} event handler.
623 * @return the {@code onseeked} event handler
624 */
625 @JsxGetter
626 public Function getOnseeked() {
627 return getEventHandler(Event.TYPE_SEEKED);
628 }
629
630 /**
631 * Sets the {@code onseeked} event handler.
632 * @param seeked the {@code onseeked} event handler
633 */
634 @JsxSetter
635 public void setOnseeked(final Object seeked) {
636 setEventHandler(Event.TYPE_SEEKED, seeked);
637 }
638
639 /**
640 * Returns the {@code onabort} event handler.
641 * @return the {@code onabort} event handler
642 */
643 @JsxGetter
644 public Function getOnabort() {
645 return getEventHandler(Event.TYPE_ABORT);
646 }
647
648 /**
649 * Sets the {@code onabort} event handler.
650 * @param abort the {@code onabort} event handler
651 */
652 @JsxSetter
653 public void setOnabort(final Object abort) {
654 setEventHandler(Event.TYPE_ABORT, abort);
655 }
656
657 /**
658 * Returns the {@code onloadedmetadata} event handler.
659 * @return the {@code onloadedmetadata} event handler
660 */
661 @JsxGetter
662 public Function getOnloadedmetadata() {
663 return getEventHandler(Event.TYPE_LOADEDMETADATA);
664 }
665
666 /**
667 * Sets the {@code onloadedmetadata} event handler.
668 * @param loadedmetadata the {@code onloadedmetadata} event handler
669 */
670 @JsxSetter
671 public void setOnloadedmetadata(final Object loadedmetadata) {
672 setEventHandler(Event.TYPE_LOADEDMETADATA, loadedmetadata);
673 }
674
675 /**
676 * Returns the {@code ontoggle} event handler.
677 * @return the {@code ontoggle} event handler
678 */
679 @JsxGetter({CHROME, EDGE})
680 public Function getOntoggle() {
681 return getEventHandler(Event.TYPE_TOGGLE);
682 }
683
684 /**
685 * Sets the {@code ontoggle} event handler.
686 * @param toggle the {@code ontoggle} event handler
687 */
688 @JsxSetter({CHROME, EDGE})
689 public void setOntoggle(final Object toggle) {
690 setEventHandler(Event.TYPE_TOGGLE, toggle);
691 }
692
693 /**
694 * Returns the {@code onplay} event handler.
695 * @return the {@code onplay} event handler
696 */
697 @JsxGetter
698 public Function getOnplay() {
699 return getEventHandler(Event.TYPE_PLAY);
700 }
701
702 /**
703 * Sets the {@code onplay} event handler.
704 * @param play the {@code onplay} event handler
705 */
706 @JsxSetter
707 public void setOnplay(final Object play) {
708 setEventHandler(Event.TYPE_PLAY, play);
709 }
710
711 /**
712 * Returns the {@code oncontextmenu} event handler.
713 * @return the {@code oncontextmenu} event handler
714 */
715 @JsxGetter
716 public Function getOncontextmenu() {
717 return getEventHandler(MouseEvent.TYPE_CONTEXT_MENU);
718 }
719
720 /**
721 * Sets the {@code oncontextmenu} event handler.
722 * @param contextmenu the {@code oncontextmenu} event handler
723 */
724 @JsxSetter
725 public void setOncontextmenu(final Object contextmenu) {
726 setEventHandler(MouseEvent.TYPE_CONTEXT_MENU, contextmenu);
727 }
728
729 /**
730 * Returns the {@code onmousemove} event handler.
731 * @return the {@code onmousemove} event handler
732 */
733 @JsxGetter
734 public Function getOnmousemove() {
735 return getEventHandler(MouseEvent.TYPE_MOUSE_MOVE);
736 }
737
738 /**
739 * Sets the {@code onmousemove} event handler.
740 * @param mousemove the {@code onmousemove} event handler
741 */
742 @JsxSetter
743 public void setOnmousemove(final Object mousemove) {
744 setEventHandler(MouseEvent.TYPE_MOUSE_MOVE, mousemove);
745 }
746
747 /**
748 * Returns the {@code onerror} event handler.
749 * @return the {@code onerror} event handler
750 */
751 @JsxGetter
752 public Function getOnerror() {
753 return getEventHandler(Event.TYPE_ERROR);
754 }
755
756 /**
757 * Sets the {@code onerror} event handler.
758 * @param error the {@code onerror} event handler
759 */
760 @JsxSetter
761 public void setOnerror(final Object error) {
762 setEventHandler(Event.TYPE_ERROR, error);
763 }
764
765 /**
766 * Returns the {@code onmouseup} event handler.
767 * @return the {@code onmouseup} event handler
768 */
769 @JsxGetter
770 public Function getOnmouseup() {
771 return getEventHandler(MouseEvent.TYPE_MOUSE_UP);
772 }
773
774 /**
775 * Sets the {@code onmouseup} event handler.
776 * @param mouseup the {@code onmouseup} event handler
777 */
778 @JsxSetter
779 public void setOnmouseup(final Object mouseup) {
780 setEventHandler(MouseEvent.TYPE_MOUSE_UP, mouseup);
781 }
782
783 /**
784 * Returns the {@code ondragover} event handler.
785 * @return the {@code ondragover} event handler
786 */
787 @JsxGetter
788 public Function getOndragover() {
789 return getEventHandler(Event.TYPE_DRAGOVER);
790 }
791
792 /**
793 * Sets the {@code ondragover} event handler.
794 * @param dragover the {@code ondragover} event handler
795 */
796 @JsxSetter
797 public void setOndragover(final Object dragover) {
798 setEventHandler(Event.TYPE_DRAGOVER, dragover);
799 }
800
801 /**
802 * Returns the {@code pointermove} event handler for this element.
803 * @return the {@code pointermove} event handler for this element
804 */
805 @JsxGetter({CHROME, EDGE})
806 public Function getOnpointermove() {
807 return getEventHandler(Event.TYPE_POINTERMOVE);
808 }
809
810 /**
811 * Sets the {@code pointermove} event handler.
812 * @param pointermove the {@code pointermove} event handler
813 */
814 @JsxSetter({CHROME, EDGE})
815 public void setOnpointermove(final Object pointermove) {
816 setEventHandler(Event.TYPE_POINTERMOVE, pointermove);
817 }
818
819 /**
820 * Returns the {@code oncut} event handler.
821 * @return the {@code oncut} event handler
822 */
823 @JsxGetter
824 public Function getOncut() {
825 return getEventHandler(Event.TYPE_CUT);
826 }
827
828 /**
829 * Sets the {@code oncut} event handler.
830 * @param cut the {@code oncut} event handler
831 */
832 @JsxSetter
833 public void setOncut(final Object cut) {
834 setEventHandler(Event.TYPE_CUT, cut);
835 }
836
837 /**
838 * Returns the {@code onmouseover} event handler.
839 * @return the {@code onmouseover} event handler
840 */
841 @JsxGetter
842 public Function getOnmouseover() {
843 return getEventHandler(MouseEvent.TYPE_MOUSE_OVER);
844 }
845
846 /**
847 * Sets the {@code onmouseover} event handler.
848 * @param mouseover the {@code onmouseover} event handler
849 */
850 @JsxSetter
851 public void setOnmouseover(final Object mouseover) {
852 setEventHandler(MouseEvent.TYPE_MOUSE_OVER, mouseover);
853 }
854
855 /**
856 * Returns the {@code oninput} event handler.
857 * @return the {@code oninput} event handler
858 */
859 @JsxGetter
860 public Function getOninput() {
861 return getEventHandler(Event.TYPE_INPUT);
862 }
863
864 /**
865 * Sets the {@code oninput} event handler.
866 * @param input the {@code oninput} event handler
867 */
868 @JsxSetter
869 public void setOninput(final Object input) {
870 setEventHandler(Event.TYPE_INPUT, input);
871 }
872
873 /**
874 * Returns the {@code lostpointercapture} event handler for this element.
875 * @return the {@code lostpointercapture} event handler for this element
876 */
877 @JsxGetter({CHROME, EDGE})
878 public Function getOnlostpointercapture() {
879 return getEventHandler(Event.TYPE_LOSTPOINTERCAPTURE);
880 }
881
882 /**
883 * Sets the {@code lostpointercapture} event handler.
884 * @param lostpointercapture the {@code lostpointercapture} event handler
885 */
886 @JsxSetter({CHROME, EDGE})
887 public void setOnlostpointercapture(final Object lostpointercapture) {
888 setEventHandler(Event.TYPE_LOSTPOINTERCAPTURE, lostpointercapture);
889 }
890
891 /**
892 * Returns the {@code onstalled} event handler.
893 * @return the {@code onstalled} event handler
894 */
895 @JsxGetter
896 public Function getOnstalled() {
897 return getEventHandler(Event.TYPE_STALLED);
898 }
899
900 /**
901 * Sets the {@code onstalled} event handler.
902 * @param stalled the {@code onstalled} event handler
903 */
904 @JsxSetter
905 public void setOnstalled(final Object stalled) {
906 setEventHandler(Event.TYPE_STALLED, stalled);
907 }
908
909 /**
910 * Returns the {@code pointerover} event handler for this element.
911 * @return the {@code pointerover} event handler for this element
912 */
913 @JsxGetter({CHROME, EDGE})
914 public Function getOnpointerover() {
915 return getEventHandler(Event.TYPE_POINTEROVER);
916 }
917
918 /**
919 * Sets the {@code pointerover} event handler.
920 * @param pointerover the {@code pointerover} event handler
921 */
922 @JsxSetter({CHROME, EDGE})
923 public void setOnpointerover(final Object pointerover) {
924 setEventHandler(Event.TYPE_POINTEROVER, pointerover);
925 }
926
927 /**
928 * Returns the {@code onclose} event handler.
929 * @return the {@code onclose} event handler
930 */
931 @JsxGetter
932 public Function getOnclose() {
933 return getEventHandler(Event.TYPE_CLOSE);
934 }
935
936 /**
937 * Sets the {@code onclose} event handler.
938 * @param close the {@code onclose} event handler
939 */
940 @JsxSetter
941 public void setOnclose(final Object close) {
942 setEventHandler(Event.TYPE_CLOSE, close);
943 }
944
945 /**
946 * Returns the {@code ondragenter} event handler.
947 * @return the {@code ondragenter} event handler
948 */
949 @JsxGetter
950 public Function getOndragenter() {
951 return getEventHandler(Event.TYPE_DRAGENTER);
952 }
953
954 /**
955 * Sets the {@code ondragenter} event handler.
956 * @param dragenter the {@code ondragenter} event handler
957 */
958 @JsxSetter
959 public void setOndragenter(final Object dragenter) {
960 setEventHandler(Event.TYPE_DRAGENTER, dragenter);
961 }
962
963 /**
964 * Returns the {@code onmozfullscreenerror} event handler.
965 * @return the {@code onmozfullscreenerror} event handler
966 */
967 @JsxGetter({FF, FF_ESR})
968 public Function getOnmozfullscreenerror() {
969 return getEventHandler(Event.TYPE_MOZFULLSCREENERROR);
970 }
971
972 /**
973 * Sets the {@code onmozfullscreenerror} event handler.
974 * @param mozfullscreenerror the {@code onmozfullscreenerror} event handler
975 */
976 @JsxSetter({FF, FF_ESR})
977 public void setOnmozfullscreenerror(final Object mozfullscreenerror) {
978 setEventHandler(Event.TYPE_MOZFULLSCREENERROR, mozfullscreenerror);
979 }
980
981 /**
982 * Returns the {@code onsubmit} event handler.
983 * @return the {@code onsubmit} event handler
984 */
985 @JsxGetter
986 public Function getOnsubmit() {
987 return getEventHandler(Event.TYPE_SUBMIT);
988 }
989
990 /**
991 * Sets the {@code onsubmit} event handler.
992 * @param submit the {@code onsubmit} event handler
993 */
994 @JsxSetter
995 public void setOnsubmit(final Object submit) {
996 setEventHandler(Event.TYPE_SUBMIT, submit);
997 }
998
999 /**
1000 * Returns the {@code onmouseleave} event handler.
1001 * @return the {@code onmouseleave} event handler
1002 */
1003 @JsxGetter
1004 public Function getOnmouseleave() {
1005 return getEventHandler(Event.TYPE_MOUSELEAVE);
1006 }
1007
1008 /**
1009 * Sets the {@code onmouseleave} event handler.
1010 * @param mouseleave the {@code onmouseleave} event handler
1011 */
1012 @JsxSetter
1013 public void setOnmouseleave(final Object mouseleave) {
1014 setEventHandler(Event.TYPE_MOUSELEAVE, mouseleave);
1015 }
1016
1017 /**
1018 * Returns the {@code onmouseenter} event handler.
1019 * @return the {@code onmouseenter} event handler
1020 */
1021 @JsxGetter
1022 public Function getOnmouseenter() {
1023 return getEventHandler(Event.TYPE_MOUDEENTER);
1024 }
1025
1026 /**
1027 * Sets the {@code onmouseenter} event handler.
1028 * @param mouseenter the {@code onmouseenter} event handler
1029 */
1030 @JsxSetter
1031 public void setOnmouseenter(final Object mouseenter) {
1032 setEventHandler(Event.TYPE_MOUDEENTER, mouseenter);
1033 }
1034
1035 /**
1036 * Returns the {@code ondragleave} event handler.
1037 * @return the {@code ondragleave} event handler
1038 */
1039 @JsxGetter
1040 public Function getOndragleave() {
1041 return getEventHandler(Event.TYPE_DRAGLEAVE);
1042 }
1043
1044 /**
1045 * Sets the {@code ondragleave} event handler.
1046 * @param dragleave the {@code ondragleave} event handler
1047 */
1048 @JsxSetter
1049 public void setOndragleave(final Object dragleave) {
1050 setEventHandler(Event.TYPE_DRAGLEAVE, dragleave);
1051 }
1052
1053 /**
1054 * Returns the {@code onmousewheel} event handler.
1055 * @return the {@code onmousewheel} event handler
1056 */
1057 @JsxGetter({CHROME, EDGE})
1058 public Function getOnmousewheel() {
1059 return getEventHandler(Event.TYPE_MOUSEWHEEL);
1060 }
1061
1062 /**
1063 * Sets the {@code onmousewheel} event handler.
1064 * @param mousewheel the {@code onmousewheel} event handler
1065 */
1066 @JsxSetter({CHROME, EDGE})
1067 public void setOnmousewheel(final Object mousewheel) {
1068 setEventHandler(Event.TYPE_MOUSEWHEEL, mousewheel);
1069 }
1070
1071 /**
1072 * Returns the {@code pointerdown} event handler for this element.
1073 * @return the {@code pointerdown} event handler for this element
1074 */
1075 @JsxGetter({CHROME, EDGE})
1076 public Function getOnpointerdown() {
1077 return getEventHandler(Event.TYPE_POINTERDOWN);
1078 }
1079
1080 /**
1081 * Sets the {@code pointerdown} event handler.
1082 * @param pointerdown the {@code pointerdown} event handler
1083 */
1084 @JsxSetter({CHROME, EDGE})
1085 public void setOnpointerdown(final Object pointerdown) {
1086 setEventHandler(Event.TYPE_POINTERDOWN, pointerdown);
1087 }
1088
1089 /**
1090 * Returns the {@code onseeking} event handler.
1091 * @return the {@code onseeking} event handler
1092 */
1093 @JsxGetter
1094 public Function getOnseeking() {
1095 return getEventHandler(Event.TYPE_SEEKING);
1096 }
1097
1098 /**
1099 * Sets the {@code onseeking} event handler.
1100 * @param seeking the {@code onseeking} event handler
1101 */
1102 @JsxSetter
1103 public void setOnseeking(final Object seeking) {
1104 setEventHandler(Event.TYPE_SEEKING, seeking);
1105 }
1106
1107 /**
1108 * Returns the {@code onblur} event handler.
1109 * @return the {@code onblur} event handler
1110 */
1111 @JsxGetter
1112 public Function getOnblur() {
1113 return getEventHandler(Event.TYPE_BLUR);
1114 }
1115
1116 /**
1117 * Sets the {@code onblur} event handler.
1118 * @param blur the {@code onblur} event handler
1119 */
1120 @JsxSetter
1121 public void setOnblur(final Object blur) {
1122 setEventHandler(Event.TYPE_BLUR, blur);
1123 }
1124
1125 /**
1126 * Returns the {@code oncuechange} event handler.
1127 * @return the {@code oncuechange} event handler
1128 */
1129 @JsxGetter({CHROME, EDGE})
1130 public Function getOncuechange() {
1131 return getEventHandler(Event.TYPE_CUECHANGE);
1132 }
1133
1134 /**
1135 * Sets the {@code oncuechange} event handler.
1136 * @param cuechange the {@code oncuechange} event handler
1137 */
1138 @JsxSetter({CHROME, EDGE})
1139 public void setOncuechange(final Object cuechange) {
1140 setEventHandler(Event.TYPE_CUECHANGE, cuechange);
1141 }
1142
1143 /**
1144 * Returns the {@code ondrop} event handler.
1145 * @return the {@code ondrop} event handler
1146 */
1147 @JsxGetter
1148 public Function getOndrop() {
1149 return getEventHandler(Event.TYPE_DROP);
1150 }
1151
1152 /**
1153 * Sets the {@code ondrop} event handler.
1154 * @param drop the {@code ondrop} event handler
1155 */
1156 @JsxSetter
1157 public void setOndrop(final Object drop) {
1158 setEventHandler(Event.TYPE_DROP, drop);
1159 }
1160
1161 /**
1162 * Returns the {@code ondragstart} event handler.
1163 * @return the {@code ondragstart} event handler
1164 */
1165 @JsxGetter
1166 public Function getOndragstart() {
1167 return getEventHandler(Event.TYPE_DRAGSTART);
1168 }
1169
1170 /**
1171 * Sets the {@code ondragstart} event handler.
1172 * @param dragstart the {@code ondragstart} event handler
1173 */
1174 @JsxSetter
1175 public void setOndragstart(final Object dragstart) {
1176 setEventHandler(Event.TYPE_DRAGSTART, dragstart);
1177 }
1178
1179 /**
1180 * Returns the {@code onmozfullscreenchange} event handler.
1181 * @return the {@code onmozfullscreenchange} event handler
1182 */
1183 @JsxGetter({FF, FF_ESR})
1184 public Function getOnmozfullscreenchange() {
1185 return getEventHandler(Event.TYPE_MOZFULLSCREENCHANGE);
1186 }
1187
1188 /**
1189 * Sets the {@code onmozfullscreenchange} event handler.
1190 * @param mozfullscreenchange the {@code onmozfullscreenchange} event handler
1191 */
1192 @JsxSetter({FF, FF_ESR})
1193 public void setOnmozfullscreenchange(final Object mozfullscreenchange) {
1194 setEventHandler(Event.TYPE_MOZFULLSCREENCHANGE, mozfullscreenchange);
1195 }
1196
1197 /**
1198 * Returns the {@code ondurationchange} event handler.
1199 * @return the {@code ondurationchange} event handler
1200 */
1201 @JsxGetter
1202 public Function getOndurationchange() {
1203 return getEventHandler(Event.TYPE_DURATIONCHANGE);
1204 }
1205
1206 /**
1207 * Sets the {@code ondurationchange} event handler.
1208 * @param durationchange the {@code ondurationchange} event handler
1209 */
1210 @JsxSetter
1211 public void setOndurationchange(final Object durationchange) {
1212 setEventHandler(Event.TYPE_DURATIONCHANGE, durationchange);
1213 }
1214
1215 /**
1216 * Returns the {@code onplaying} event handler.
1217 * @return the {@code onplaying} event handler
1218 */
1219 @JsxGetter
1220 public Function getOnplaying() {
1221 return getEventHandler(Event.TYPE_PLAYING);
1222 }
1223
1224 /**
1225 * Sets the {@code onplaying} event handler.
1226 * @param playing the {@code onplaying} event handler
1227 */
1228 @JsxSetter
1229 public void setOnplaying(final Object playing) {
1230 setEventHandler(Event.TYPE_PLAYING, playing);
1231 }
1232
1233 /**
1234 * Returns the {@code onload} event handler.
1235 * @return the {@code onload} event handler
1236 */
1237 @JsxGetter
1238 public Function getOnload() {
1239 return getEventHandler(Event.TYPE_LOAD);
1240 }
1241
1242 /**
1243 * Sets the {@code onload} event handler.
1244 * @param load the {@code onload} event handler
1245 */
1246 @JsxSetter
1247 public void setOnload(final Object load) {
1248 setEventHandler(Event.TYPE_LOAD, load);
1249 }
1250
1251 /**
1252 * Returns the {@code onended} event handler.
1253 * @return the {@code onended} event handler
1254 */
1255 @JsxGetter
1256 public Function getOnended() {
1257 return getEventHandler(Event.TYPE_ENDED);
1258 }
1259
1260 /**
1261 * Sets the {@code onended} event handler.
1262 * @param ended the {@code onended} event handler
1263 */
1264 @JsxSetter
1265 public void setOnended(final Object ended) {
1266 setEventHandler(Event.TYPE_ENDED, ended);
1267 }
1268
1269 /**
1270 * Returns the {@code onloadeddata} event handler.
1271 * @return the {@code onloadeddata} event handler
1272 */
1273 @JsxGetter
1274 public Function getOnloadeddata() {
1275 return getEventHandler(Event.TYPE_LOADEDDATA);
1276 }
1277
1278 /**
1279 * Sets the {@code onloadeddata} event handler.
1280 * @param loadeddata the {@code onloadeddata} event handler
1281 */
1282 @JsxSetter
1283 public void setOnloadeddata(final Object loadeddata) {
1284 setEventHandler(Event.TYPE_LOADEDDATA, loadeddata);
1285 }
1286
1287 /**
1288 * Returns the {@code oncopy} event handler.
1289 * @return the {@code oncopy} event handler
1290 */
1291 @JsxGetter
1292 public Function getOncopy() {
1293 return getEventHandler(Event.TYPE_COPY);
1294 }
1295
1296 /**
1297 * Sets the {@code oncopy} event handler.
1298 * @param copy the {@code oncopy} event handler
1299 */
1300 @JsxSetter
1301 public void setOncopy(final Object copy) {
1302 setEventHandler(Event.TYPE_COPY, copy);
1303 }
1304
1305 /**
1306 * Returns the {@code onpaste} event handler.
1307 * @return the {@code onpaste} event handler
1308 */
1309 @JsxGetter
1310 public Function getOnpaste() {
1311 return getEventHandler(Event.TYPE_PASTE);
1312 }
1313
1314 /**
1315 * Sets the {@code onpaste} event handler.
1316 * @param paste the {@code onpaste} event handler
1317 */
1318 @JsxSetter
1319 public void setOnpaste(final Object paste) {
1320 setEventHandler(Event.TYPE_PASTE, paste);
1321 }
1322
1323 /**
1324 * Returns the {@code onmouseout} event handler.
1325 * @return the {@code onmouseout} event handler
1326 */
1327 @JsxGetter
1328 public Function getOnmouseout() {
1329 return getEventHandler(MouseEvent.TYPE_MOUSE_OUT);
1330 }
1331
1332 /**
1333 * Sets the {@code onmouseout} event handler.
1334 * @param mouseout the {@code onmouseout} event handler
1335 */
1336 @JsxSetter
1337 public void setOnmouseout(final Object mouseout) {
1338 setEventHandler(MouseEvent.TYPE_MOUSE_OUT, mouseout);
1339 }
1340
1341 /**
1342 * Returns the {@code onsuspend} event handler.
1343 * @return the {@code onsuspend} event handler
1344 */
1345 @JsxGetter
1346 public Function getOnsuspend() {
1347 return getEventHandler(Event.TYPE_SUSPEND);
1348 }
1349
1350 /**
1351 * Sets the {@code onsuspend} event handler.
1352 * @param suspend the {@code onsuspend} event handler
1353 */
1354 @JsxSetter
1355 public void setOnsuspend(final Object suspend) {
1356 setEventHandler(Event.TYPE_SUSPEND, suspend);
1357 }
1358
1359 /**
1360 * Returns the {@code onvolumechange} event handler.
1361 * @return the {@code onvolumechange} event handler
1362 */
1363 @JsxGetter
1364 public Function getOnvolumechange() {
1365 return getEventHandler(Event.TYPE_VOLUMECHANGE);
1366 }
1367
1368 /**
1369 * Sets the {@code onvolumechange} event handler.
1370 * @param volumechange the {@code onvolumechange} event handler
1371 */
1372 @JsxSetter
1373 public void setOnvolumechange(final Object volumechange) {
1374 setEventHandler(Event.TYPE_VOLUMECHANGE, volumechange);
1375 }
1376
1377 /**
1378 * Returns the {@code onwaiting} event handler.
1379 * @return the {@code onwaiting} event handler
1380 */
1381 @JsxGetter
1382 public Function getOnwaiting() {
1383 return getEventHandler(Event.TYPE_WAITING);
1384 }
1385
1386 /**
1387 * Sets the {@code onwaiting} event handler.
1388 * @param waiting the {@code onwaiting} event handler
1389 */
1390 @JsxSetter
1391 public void setOnwaiting(final Object waiting) {
1392 setEventHandler(Event.TYPE_WAITING, waiting);
1393 }
1394
1395 /**
1396 * Returns the {@code oncanplay} event handler.
1397 * @return the {@code oncanplay} event handler
1398 */
1399 @JsxGetter
1400 public Function getOncanplay() {
1401 return getEventHandler(Event.TYPE_CANPLAY);
1402 }
1403
1404 /**
1405 * Sets the {@code oncanplay} event handler.
1406 * @param canplay the {@code oncanplay} event handler
1407 */
1408 @JsxSetter
1409 public void setOncanplay(final Object canplay) {
1410 setEventHandler(Event.TYPE_CANPLAY, canplay);
1411 }
1412
1413 /**
1414 * Returns the {@code onmousedown} event handler.
1415 * @return the {@code onmousedown} event handler
1416 */
1417 @JsxGetter
1418 public Function getOnmousedown() {
1419 return getEventHandler(MouseEvent.TYPE_MOUSE_DOWN);
1420 }
1421
1422 /**
1423 * Sets the {@code onmousedown} event handler.
1424 * @param mousedown the {@code onmousedown} event handler
1425 */
1426 @JsxSetter
1427 public void setOnmousedown(final Object mousedown) {
1428 setEventHandler(MouseEvent.TYPE_MOUSE_DOWN, mousedown);
1429 }
1430
1431 /**
1432 * Returns the {@code onemptied} event handler.
1433 * @return the {@code onemptied} event handler
1434 */
1435 @JsxGetter
1436 public Function getOnemptied() {
1437 return getEventHandler(Event.TYPE_EMPTIED);
1438 }
1439
1440 /**
1441 * Sets the {@code onemptied} event handler.
1442 * @param emptied the {@code onemptied} event handler
1443 */
1444 @JsxSetter
1445 public void setOnemptied(final Object emptied) {
1446 setEventHandler(Event.TYPE_EMPTIED, emptied);
1447 }
1448
1449 /**
1450 * Returns the {@code gotpointercapture} event handler for this element.
1451 * @return the {@code gotpointercapture} event handler for this element
1452 */
1453 @JsxGetter({CHROME, EDGE})
1454 public Function getOngotpointercapture() {
1455 return getEventHandler(Event.TYPE_GOTPOINTERCAPTURE);
1456 }
1457
1458 /**
1459 * Sets the {@code gotpointercapture} event handler.
1460 * @param gotpointercapture the {@code gotpointercapture} event handler
1461 */
1462 @JsxSetter({CHROME, EDGE})
1463 public void setOngotpointercapture(final Object gotpointercapture) {
1464 setEventHandler(Event.TYPE_GOTPOINTERCAPTURE, gotpointercapture);
1465 }
1466
1467 /**
1468 * Returns the {@code onwheel} event handler for this element.
1469 * @return the {@code onwheel} event handler for this element
1470 */
1471 @JsxGetter({CHROME, EDGE})
1472 @Override
1473 public Function getOnwheel() {
1474 return getEventHandler(Event.TYPE_WHEEL);
1475 }
1476
1477 /**
1478 * Sets the {@code onwheel} event handler for this element.
1479 * @param onwheel the {@code onwheel} event handler for this element
1480 */
1481 @JsxSetter({CHROME, EDGE})
1482 @Override
1483 public void setOnwheel(final Object onwheel) {
1484 setEventHandler(Event.TYPE_WHEEL, onwheel);
1485 }
1486 }