diff options
author | Andreas Kling <kling@serenityos.org> | 2020-03-18 15:22:31 +0100 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-03-18 17:13:22 +0100 |
commit | f39e5352f05c86dfd499b18952692d0f97c36aac (patch) | |
tree | e3f9e0dade0d88cfd7c5172d3d2be98b728ca916 /Libraries/LibWeb/Bindings/NodeWrapper.h | |
parent | 97674da502903a19dd0cabaabf39b0191f978a03 (diff) | |
download | serenity-f39e5352f05c86dfd499b18952692d0f97c36aac.zip |
LibWeb: Start working on DOM event support
This patch adds the EventTarget class and makes Node inherit from it.
You can register event listeners on an EventTarget, and when you call
dispatch_event() on it, the event listeners will get invoked.
An event listener is basically a wrapper around a JS::Function*.
This is pretty far from how DOM events should eventually work, but it's
a place to start and we'll build more on top of this. :^)
Diffstat (limited to 'Libraries/LibWeb/Bindings/NodeWrapper.h')
-rw-r--r-- | Libraries/LibWeb/Bindings/NodeWrapper.h | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/Libraries/LibWeb/Bindings/NodeWrapper.h b/Libraries/LibWeb/Bindings/NodeWrapper.h index 3bb1990624..0d93b6870b 100644 --- a/Libraries/LibWeb/Bindings/NodeWrapper.h +++ b/Libraries/LibWeb/Bindings/NodeWrapper.h @@ -26,23 +26,21 @@ #pragma once -#include <LibWeb/Bindings/Wrapper.h> +#include <LibWeb/Bindings/EventTargetWrapper.h> namespace Web { namespace Bindings { -class NodeWrapper : public Wrapper { +class NodeWrapper : public EventTargetWrapper { public: explicit NodeWrapper(Node&); virtual ~NodeWrapper() override; - Node& node() { return *m_node; } - const Node& node() const { return *m_node; } + Node& node(); + const Node& node() const; private: - virtual const char* class_name() const override { return "Node"; } - - NonnullRefPtr<Node> m_node; + virtual const char* class_name() const override { return "NodeWrapper"; } }; } |