
This is a monster patch that turns all EventTargets into GC-allocated PlatformObjects. Their C++ wrapper classes are removed, and the LibJS garbage collector is now responsible for their lifetimes. There's a fair amount of hacks and band-aids in this patch, and we'll have a lot of cleanup to do after this.
29 lines
849 B
C++
29 lines
849 B
C++
/*
|
|
* Copyright (c) 2020, the SerenityOS developers.
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibWeb/Bindings/HTMLLabelElementPrototype.h>
|
|
#include <LibWeb/DOM/Document.h>
|
|
#include <LibWeb/HTML/HTMLLabelElement.h>
|
|
#include <LibWeb/Layout/Label.h>
|
|
|
|
namespace Web::HTML {
|
|
|
|
HTMLLabelElement::HTMLLabelElement(DOM::Document& document, DOM::QualifiedName qualified_name)
|
|
: HTMLElement(document, move(qualified_name))
|
|
{
|
|
set_prototype(&window().ensure_web_prototype<Bindings::HTMLLabelElementPrototype>("HTMLLabelElement"));
|
|
}
|
|
|
|
HTMLLabelElement::~HTMLLabelElement() = default;
|
|
|
|
RefPtr<Layout::Node> HTMLLabelElement::create_layout_node(NonnullRefPtr<CSS::StyleProperties> style)
|
|
{
|
|
auto layout_node = adopt_ref(*new Layout::Label(document(), this, move(style)));
|
|
layout_node->set_inline(true);
|
|
return layout_node;
|
|
}
|
|
|
|
}
|