ladybird/Userland/Libraries/LibWeb/HTML/GlobalEventHandlers.h
Andreas Kling 824be02cb0 LibWeb: Move onfoo attribute handling to EventTarget
This logic was kept in the GlobalEventHandlers mixing for sharing
between Document and HTMLElement, but there are other interfaces who
need to support `onfoo` attribute event listeners as well.
2021-09-19 01:43:27 +02:00

98 lines
4.7 KiB
C++

/*
* Copyright (c) 2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
#include <AK/Forward.h>
#include <LibWeb/Forward.h>
#define ENUMERATE_GLOBAL_EVENT_HANDLERS(E) \
E(onabort, HTML::EventNames::abort) \
E(onauxclick, "auxclick") \
E(onblur, HTML::EventNames::blur) \
E(oncancel, HTML::EventNames::cancel) \
E(oncanplay, "canplay") \
E(oncanplaythrough, "canplaythrough") \
E(onchange, HTML::EventNames::change) \
E(onclick, UIEvents::EventNames::click) \
E(onclose, HTML::EventNames::close) \
E(oncontextmenu, HTML::EventNames::contextmenu) \
E(oncuechange, "cuechange") \
E(ondblclick, "dblclick") \
E(ondrag, "drag") \
E(ondragend, "dragend") \
E(ondragenter, "dragenter") \
E(ondragleave, "dragleave") \
E(ondragover, "dragover") \
E(ondragstart, "dragstart") \
E(ondrop, "drop") \
E(ondurationchange, "durationchange") \
E(onemptied, "emptied") \
E(onended, "ended") \
E(onerror, HTML::EventNames::error) \
E(onfocus, "focus") \
E(onformdata, "formdata") \
E(oninput, HTML::EventNames::input) \
E(oninvalid, HTML::EventNames::invalid) \
E(onkeydown, "keydown") \
E(onkeypress, "keypress") \
E(onkeyup, "keyup") \
E(onload, HTML::EventNames::load) \
E(onloadeddata, "loadeddata") \
E(onloadedmetadata, "loadedmetadata") \
E(onloadstart, "loadstart") \
E(onmousedown, UIEvents::EventNames::mousedown) \
E(onmouseenter, UIEvents::EventNames::mouseenter) \
E(onmouseleave, UIEvents::EventNames::mouseleave) \
E(onmousemove, UIEvents::EventNames::mousemove) \
E(onmouseout, UIEvents::EventNames::mouseout) \
E(onmouseover, UIEvents::EventNames::mouseover) \
E(onmouseup, UIEvents::EventNames::mouseup) \
E(onpause, "pause") \
E(onplay, "play") \
E(onplaying, "playing") \
E(onprogress, "progress") \
E(onratechange, "ratechange") \
E(onreset, "reset") \
E(onresize, "resize") \
E(onscroll, "scroll") \
E(onsecuritypolicyviolation, "securitypolicyviolation") \
E(onseeked, "seeked") \
E(onseeking, "seeking") \
E(onselect, HTML::EventNames::select) \
E(onslotchange, "slotchange") \
E(onstalled, "stalled") \
E(onsubmit, HTML::EventNames::submit) \
E(onsuspend, "suspend") \
E(ontimeupdate, "timeupdate") \
E(ontoggle, "toggle") \
E(onvolumechange, "volumechange") \
E(onwaiting, "waiting") \
E(onwebkitanimationend, "webkitanimationend") \
E(onwebkitanimationiteration, "webkitanimationiteration") \
E(onwebkitanimationstart, "webkitanimationstart") \
E(onwebkittransitionend, "webkittransitionend") \
E(onwheel, "wheel")
namespace Web::HTML {
class GlobalEventHandlers {
public:
virtual ~GlobalEventHandlers();
#undef __ENUMERATE
#define __ENUMERATE(attribute_name, event_name) \
void set_##attribute_name(HTML::EventHandler); \
HTML::EventHandler attribute_name();
ENUMERATE_GLOBAL_EVENT_HANDLERS(__ENUMERATE)
#undef __ENUMERATE
protected:
virtual DOM::EventTarget& global_event_handlers_to_event_target() = 0;
};
}