mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-01 13:49:16 +00:00
LibWeb/CSS: Extract a CSSDescriptors base class
This holds the boilerplate that's needed by any CSSStyleDeclaration subclass that holds Descriptors. CSSFontFaceDescriptors now only has to worry about initialization and its own exposed properties.
This commit is contained in:
parent
6941b63890
commit
0925a32558
Notes:
github-actions[bot]
2025-05-08 15:22:53 +00:00
Author: https://github.com/AtkinsSJ
Commit: 0925a32558
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/4654
6 changed files with 313 additions and 267 deletions
48
Libraries/LibWeb/CSS/CSSDescriptors.h
Normal file
48
Libraries/LibWeb/CSS/CSSDescriptors.h
Normal file
|
@ -0,0 +1,48 @@
|
|||
/*
|
||||
* Copyright (c) 2025, Sam Atkins <sam@ladybird.org>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <LibWeb/CSS/CSSStyleDeclaration.h>
|
||||
#include <LibWeb/CSS/Descriptor.h>
|
||||
#include <LibWeb/CSS/DescriptorID.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
// A non-spec base class for descriptor-list classes
|
||||
class CSSDescriptors : public CSSStyleDeclaration {
|
||||
WEB_PLATFORM_OBJECT(CSSDescriptors, CSSStyleDeclaration);
|
||||
|
||||
public:
|
||||
virtual ~CSSDescriptors() override;
|
||||
|
||||
virtual size_t length() const override;
|
||||
virtual String item(size_t index) const override;
|
||||
virtual WebIDL::ExceptionOr<void> set_property(StringView property, StringView value, StringView priority) override;
|
||||
virtual WebIDL::ExceptionOr<String> remove_property(StringView property) override;
|
||||
virtual String get_property_value(StringView property) const override;
|
||||
virtual StringView get_property_priority(StringView property) const override;
|
||||
|
||||
Vector<Descriptor> const& descriptors() const { return m_descriptors; }
|
||||
RefPtr<CSSStyleValue const> descriptor(DescriptorID) const;
|
||||
RefPtr<CSSStyleValue const> descriptor_or_initial_value(DescriptorID) const;
|
||||
virtual String serialized() const override;
|
||||
|
||||
virtual WebIDL::ExceptionOr<void> set_css_text(StringView) override;
|
||||
|
||||
protected:
|
||||
CSSDescriptors(JS::Realm&, AtRuleID, Vector<Descriptor>);
|
||||
|
||||
private:
|
||||
bool set_a_css_declaration(DescriptorID, NonnullRefPtr<CSSStyleValue const>, Important);
|
||||
|
||||
virtual void visit_edges(Visitor&) override;
|
||||
|
||||
AtRuleID m_at_rule_id;
|
||||
Vector<Descriptor> m_descriptors;
|
||||
};
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue