mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 23:37:36 +00:00
LibWeb: Implement RadioNodeList
This interface is used in the interface for HTMLFormControlsCollection as a live view over its matching elements. Currently the "value" attribute for this interface is left unimplemented.
This commit is contained in:
parent
c2bf391f81
commit
daefe744ba
7 changed files with 73 additions and 1 deletions
32
Userland/Libraries/LibWeb/DOM/RadioNodeList.cpp
Normal file
32
Userland/Libraries/LibWeb/DOM/RadioNodeList.cpp
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Shannon Booth <shannon@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#include <LibWeb/Bindings/Intrinsics.h>
|
||||
#include <LibWeb/Bindings/RadioNodeListPrototype.h>
|
||||
#include <LibWeb/DOM/Element.h>
|
||||
#include <LibWeb/DOM/RadioNodeList.h>
|
||||
|
||||
namespace Web::DOM {
|
||||
|
||||
JS::NonnullGCPtr<RadioNodeList> RadioNodeList::create(JS::Realm& realm, Node& root, Scope scope, Function<bool(Node const&)> filter)
|
||||
{
|
||||
return realm.heap().allocate<RadioNodeList>(realm, realm, root, scope, move(filter));
|
||||
}
|
||||
|
||||
RadioNodeList::RadioNodeList(JS::Realm& realm, Node& root, Scope scope, Function<bool(Node const&)> filter)
|
||||
: LiveNodeList(realm, root, scope, move(filter))
|
||||
{
|
||||
}
|
||||
|
||||
RadioNodeList::~RadioNodeList() = default;
|
||||
|
||||
void RadioNodeList::initialize(JS::Realm& realm)
|
||||
{
|
||||
Base::initialize(realm);
|
||||
set_prototype(&Bindings::ensure_web_prototype<Bindings::RadioNodeListPrototype>(realm, "RadioNodeList"));
|
||||
}
|
||||
|
||||
}
|
29
Userland/Libraries/LibWeb/DOM/RadioNodeList.h
Normal file
29
Userland/Libraries/LibWeb/DOM/RadioNodeList.h
Normal file
|
@ -0,0 +1,29 @@
|
|||
/*
|
||||
* Copyright (c) 2023, Shannon Booth <shannon@serenityos.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibWeb/DOM/LiveNodeList.h>
|
||||
|
||||
namespace Web::DOM {
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#radionodelist
|
||||
class RadioNodeList : public LiveNodeList {
|
||||
WEB_PLATFORM_OBJECT(RadioNodeList, LiveNodeList);
|
||||
|
||||
public:
|
||||
[[nodiscard]] static JS::NonnullGCPtr<RadioNodeList> create(JS::Realm& realm, Node& root, Scope scope, Function<bool(Node const&)> filter);
|
||||
|
||||
virtual ~RadioNodeList() override;
|
||||
|
||||
protected:
|
||||
virtual void initialize(JS::Realm&) override;
|
||||
|
||||
private:
|
||||
explicit RadioNodeList(JS::Realm& realm, Node& root, Scope scope, Function<bool(Node const&)> filter);
|
||||
};
|
||||
|
||||
}
|
7
Userland/Libraries/LibWeb/DOM/RadioNodeList.idl
Normal file
7
Userland/Libraries/LibWeb/DOM/RadioNodeList.idl
Normal file
|
@ -0,0 +1,7 @@
|
|||
#import <DOM/NodeList.idl>
|
||||
|
||||
// https://html.spec.whatwg.org/multipage/common-dom-interfaces.html#radionodelist
|
||||
[Exposed=Window, UseNewAKString]
|
||||
interface RadioNodeList : NodeList {
|
||||
// FIXME: attribute DOMString value;
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue