mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-13 03:29:49 +00:00
LibWeb: Add and implement CSSPropertyRule
IDL and bindings
This commit is contained in:
parent
648fac7215
commit
50d64b0fb7
Notes:
github-actions[bot]
2024-10-23 05:56:46 +00:00
Author: https://github.com/a-ungurianu 🔰
Commit: 50d64b0fb7
Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/1777
Reviewed-by: https://github.com/ADKaster
Reviewed-by: https://github.com/AtkinsSJ ✅
15 changed files with 160 additions and 1 deletions
50
Userland/Libraries/LibWeb/CSS/CSSPropertyRule.h
Normal file
50
Userland/Libraries/LibWeb/CSS/CSSPropertyRule.h
Normal file
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright (c) 2024, Alex Ungurianu <alex@ungurianu.com>
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-2-Clause
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <AK/FlyString.h>
|
||||
#include <AK/NonnullRefPtr.h>
|
||||
#include <AK/Optional.h>
|
||||
#include <AK/String.h>
|
||||
#include <LibWeb/CSS/CSSRule.h>
|
||||
#include <LibWeb/Forward.h>
|
||||
|
||||
namespace Web::CSS {
|
||||
|
||||
// https://drafts.css-houdini.org/css-properties-values-api/#the-css-property-rule-interface
|
||||
class CSSPropertyRule final : public CSSRule {
|
||||
WEB_PLATFORM_OBJECT(CSSPropertyRule, CSSRule);
|
||||
JS_DECLARE_ALLOCATOR(CSSPropertyRule);
|
||||
|
||||
public:
|
||||
static JS::NonnullGCPtr<CSSPropertyRule> create(JS::Realm&, FlyString name, FlyString syntax, bool inherits, Optional<String> initial_value);
|
||||
|
||||
virtual ~CSSPropertyRule() = default;
|
||||
|
||||
virtual Type type() const override { return Type::Property; }
|
||||
FlyString const& name() const { return m_name; }
|
||||
FlyString const& syntax() const { return m_syntax; }
|
||||
bool inherits() const { return m_inherits; }
|
||||
Optional<String> initial_value() const { return m_initial_value; }
|
||||
|
||||
private:
|
||||
CSSPropertyRule(JS::Realm&, FlyString name, FlyString syntax, bool inherits, Optional<String> initial_value);
|
||||
|
||||
virtual void initialize(JS::Realm&) override;
|
||||
virtual String serialized() const override;
|
||||
|
||||
FlyString m_name;
|
||||
FlyString m_syntax;
|
||||
bool m_inherits;
|
||||
// FIXME: This should hold an actual CSS value, matching the syntax
|
||||
Optional<String> m_initial_value;
|
||||
};
|
||||
|
||||
template<>
|
||||
inline bool CSSRule::fast_is<CSSPropertyRule>() const { return type() == CSSRule::Type::Property; }
|
||||
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue