/src/serenity/Userland/Libraries/LibWeb/UIEvents/InputEvent.cpp
Line | Count | Source |
1 | | /* |
2 | | * Copyright (c) 2024, Jamie Mansfield <jmansfield@cadixdev.org> |
3 | | * |
4 | | * SPDX-License-Identifier: BSD-2-Clause |
5 | | */ |
6 | | |
7 | | #include <LibWeb/Bindings/InputEventPrototype.h> |
8 | | #include <LibWeb/Bindings/Intrinsics.h> |
9 | | #include <LibWeb/UIEvents/InputEvent.h> |
10 | | |
11 | | namespace Web::UIEvents { |
12 | | |
13 | | JS_DEFINE_ALLOCATOR(InputEvent); |
14 | | |
15 | | JS::NonnullGCPtr<InputEvent> InputEvent::create_from_platform_event(JS::Realm& realm, FlyString const& event_name, InputEventInit const& event_init) |
16 | 0 | { |
17 | 0 | auto event = realm.heap().allocate<InputEvent>(realm, realm, event_name, event_init); |
18 | 0 | event->set_bubbles(true); |
19 | 0 | if (event_name == "beforeinput"_fly_string) { |
20 | 0 | event->set_cancelable(true); |
21 | 0 | } |
22 | 0 | return event; |
23 | 0 | } |
24 | | |
25 | | WebIDL::ExceptionOr<JS::NonnullGCPtr<InputEvent>> InputEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, InputEventInit const& event_init) |
26 | 0 | { |
27 | 0 | return realm.heap().allocate<InputEvent>(realm, realm, event_name, event_init); |
28 | 0 | } |
29 | | |
30 | | InputEvent::InputEvent(JS::Realm& realm, FlyString const& event_name, InputEventInit const& event_init) |
31 | 0 | : UIEvent(realm, event_name, event_init) |
32 | 0 | , m_data(event_init.data) |
33 | 0 | , m_is_composing(event_init.is_composing) |
34 | 0 | , m_input_type(event_init.input_type) |
35 | 0 | { |
36 | 0 | } |
37 | | |
38 | 0 | InputEvent::~InputEvent() = default; |
39 | | |
40 | | void InputEvent::initialize(JS::Realm& realm) |
41 | 0 | { |
42 | 0 | Base::initialize(realm); |
43 | 0 | WEB_SET_PROTOTYPE_FOR_INTERFACE(InputEvent); |
44 | 0 | } |
45 | | |
46 | | Vector<DOM::StaticRange> InputEvent::get_target_ranges() const |
47 | 0 | { |
48 | 0 | dbgln("FIXME: Implement InputEvent::get_target_ranges()"); |
49 | 0 | return {}; |
50 | 0 | } |
51 | | |
52 | | } |